ブックマーク / techracho.bpsinc.jp (10)

  • 若手の多くて拡大途中の開発会社が腐らないための鉄則|TechRacho by BPS株式会社

    先日書いた「受託開発で失敗しないための鉄則」の続きです。前回は受託開発における「短期的な失敗」に焦点をあてて実体験に基づいた回避策を並べてみました。今回は、規模拡大の過程で経験する「中長期的な失敗」をどう回避するか、という目線で考えたことをまとめます。例えば、「人数は増えたけど、できることは全然増えない」や「人数は増えたけど収益自体はそこまで増えていない」などですね。 業務経験が少ない若手高学歴エンジニアが集まって受託開発しながら経営を試行錯誤しているところでも、多業種でそれなりに成功した成熟した人たちが経営しはじめたところでも目の当たりにするので、「それなりの確率で皆が経験するフェーズ」なのではないかと勝手に思ってます。特に役員や古参メンバの誰かが強い場合。でもこの状態になって長続きすると強い人達が抜けていくので対処しておきたいところですね。 そもそも、なぜ、成長が止まるのか? 序盤はい

    若手の多くて拡大途中の開発会社が腐らないための鉄則|TechRacho by BPS株式会社
    kent-where-the-light-is
    kent-where-the-light-is 2017/01/29
    “ちなみに、マーケティング、SEO、広告、お金、税金、法律、会計、経営などのほうを勉強するようになりました。分野はすこし変化したけれど、エンジニア時代の知識も生きています。そしてbabaさんの助けになってい(
  • 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)

    更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基的には変わらないと思います。リンクは可能なものについては日語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive

    肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)
    kent-where-the-light-is
    kent-where-the-light-is 2016/12/06
    ““app/concerns ディレクトリを使っているようなアプリケーションって、だいたい後から頭痛の種になる(=concerning)んだよね””
  • RubyのIRBやpryでメソッドの定義元をすっと調べる方法|TechRacho by BPS株式会社

    こんにちは、hachi8833です。 先週弊社で行われたコードリーディング勉強会で、講師のmorimorihogeさんが終盤で教えてくれたIRBやpry向けのテクニックをご紹介します。勉強会編も後日記事にいたしますのでご期待ください。 メソッドの定義元を調べる 任意のオブジェクトの#methodsメソッドを呼ぶと、以下の様にそのオブジェクトで使えるメソッド一覧のSymbol配列を取得できますが、そこで見つけたメソッドが実際にはどのクラスやモジュールで実装されているのかをその場で知りたいことがあります。 実は.method(:メソッド名).ownerで簡単に取得できます。Methodオブジェクトを取ってきて情報を参照しているだけです。 以上はRubyの場合ですが、RailsコンソールでももちろんOKです。 定義元は.ownerを付けなくてもわかる場合もありますが、以下のようにメッセージが長

    RubyのIRBやpryでメソッドの定義元をすっと調べる方法|TechRacho by BPS株式会社
    kent-where-the-light-is
    kent-where-the-light-is 2016/12/01
    “実は.method(:メソッド名).ownerで簡単に取得できます。”
  • [翻訳] Dockerについてよくある勘違い|TechRacho by BPS株式会社

    こんにちは、hachi8833です。今回は弊社システム管理者のyamasitaさん監修のもとで、Matt Jaynes氏のDocker Misconceptionsを翻訳いたしました。それなりに文言を最適化してあり、原文と一対一対応しているとは限りませんのでご了承ください。エラーがありましたらお知らせいただけると助かります。 Dockerについてよくある勘違い Matt Jaynes 元記事: Docker Misconceptions Dockerは最近のシステム管理業界で大変な脚光を浴びてます。これによるシステム管理の進歩ははかりしれないものがありますが、いくつか重要な点で勘違いしている人を見かけます。 分野を限定して語っているのでよろしく この記事で説明する内容は、主にWebサービスにおけるミッションクリティカルなシステムのマルチホストセットアップに限定しています。Dockerをそれ

    [翻訳] Dockerについてよくある勘違い|TechRacho by BPS株式会社
    kent-where-the-light-is
    kent-where-the-light-is 2016/10/05
    “現時点では、Dockerを使いこなすには相当なシステム管理の知識が必要です。知識が少なくて済むということはありません”
  • schemaをmodelに書き出してくれるgem annotate|TechRacho by BPS株式会社

    こんにちは、kikedaです。 今回は、gem annotateを紹介しようと思います。小ネタです。 rails appを開発していると頻繁に、rake routeでルーティングを確認したり、dbからtableのschemaを確認することは、多々あると思いますが、私は、こういった手間を省くのにannotateを利用しています。 ただ、サポートしているruby, railsのversionについて、READMEには記載されていないので、ruby, railsのversionを記載しておくと。 $ ruby -v # => 2.1.0-p0 $ rails -v # => 4.1.5 この環境で動作を確認しています。 gem annotate annotateは、各schemaの情報をファイルの先頭もしくは末尾にコメントをつけてくれるgemです。 schema、routingなどを直接ファイル

    schemaをmodelに書き出してくれるgem annotate|TechRacho by BPS株式会社
  • Rails: STI(Single Table Inheritance)でハマったところ|TechRacho by BPS株式会社

    最近Rails でSTI を使う機会があったのですが、幾つかハマるポイントがありました。 1. 親クラスを継承したクラスが読み込まれない 継承した子クラスのモデルを親クラスと同じファイルにまとめていると、エラーになる場合があります。 # app/models/user.rb class User < ActiveRecord::Base end class Admin < User end class Guest < User end # rails console で実行 irb(main):001:0> Admin.all NameError: uninitialized constant Admin この問題はRails の自動読み込みの仕組みに関連して起こるようです。 Rails の自動読み込みの話 読み込みされていないクラス/モジュールがあった場合、名前から読み込みするファイルを

    Rails: STI(Single Table Inheritance)でハマったところ|TechRacho by BPS株式会社
  • 最近知ったRailsの便利なメソッド

    最近になって知った Railsの便利なメソッドを紹介したいと思います。 pluck http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html#method-i-pluck User.select(:id).where("age >= ?", 20).map(&:id) こんなコードが User.where("age >= ?", 20).pluck(:id) こうなります Rails3系では指定できるカラムはひとつだけでしたが、Rails4から複数カラムを指定できるようになりました。 User.where("age >= ?", 20).pluck(:id, :name) #=> [[1, '太郎'], [2, '花子'], [3, '二郎']] Rails3系でもmultipluck というgemを使えば同じことが

    最近知ったRailsの便利なメソッド
    kent-where-the-light-is
    kent-where-the-light-is 2016/02/19
    “Active Record object がDB に保存済みかどうかを判定するメソッド です”
  • Railsのルーティングを極める (後編)|TechRacho by BPS株式会社

    更新情報 2014/03/03: 初版公開 2020/11/20: Rails 6で確認および更新 こんにちは、hachi8833です。「Railsのルーティングを極める」の後編です。今回はRails 4.0.3 + Ruby 2.1.1の環境で動作確認しています。 Railsのルーティングを極める(前編) ⚓ Railsのルーティング(routes)を極める 2012/03(baba) ⚓ resourcesとネスト Railsのルーティング記法の基は、複数形のresourcesメソッドと単数形のresourceメソッドです。また、Railsのルーティングにはネストを含む多くのオプションがあり、自由度が飛躍的に高まっています。 以下の2つのルーティングは、ネストしていないシンプルなresourcesルーティングです。prefecturesとarticlesは、いずれもコントローラに合わ

    Railsのルーティングを極める (後編)|TechRacho by BPS株式会社
    kent-where-the-light-is
    kent-where-the-light-is 2016/01/29
    collectionもmemberも指定せずに書いた場合はデフォルトで「member扱い」となります。
  • PHPとRubyを徹底比較!開発効率をあげて収益を増やす|TechRacho by BPS株式会社

    国内でWebシステム開発によく使われているPHPRubyを比較します。 Webシステムでは、サーバOSにはLinuxが、プログラミング言語には俗にLL(LightweightLanguage)と呼ばれるerl/PHP/Ruby/Pythonなどのスクリプト型言語が多く利用されます。サーバOSとしてWindowsServer、言語としてJavaなども利用されますが、一般的に開発工数が激増するため、スピード重視のWeb業界ではLinux+スクリプト言語が主流です。今回は、国内でWebシステム開発によく使われている、PHPRubyを比較してみることにします。Perlは新規開発での採用が減っていること、Pythonは研究用途を除くと国内での採用事例が比較的少ないことから、今回は対象外にしています。 関連記事もあわせてどうぞ ・Googleさんから読み取るPHPRuby on Rails開発の

    kent-where-the-light-is
    kent-where-the-light-is 2016/01/15
    “小規模システムを中心に、フレームワークを利用しない開発も広く行われています。デザイナーが制作したHTMLに、1ページだけ問い合わせフォームをつけるなどの用途には相変わらず有効です。”
  • Railsでフォームオブジェクトを使った検索を簡単に実装する方法|TechRacho by BPS株式会社

    RailsでFat ControllerになったらForm Classを作れ,という記事はあちこちで見るのですが,今一つ参考になるような実装があまり見つからなかったので記事にしてみました. Rails 3.2.13,Ruby 2.0.0系で動作確認済みです. Fat Controller問題 Railsで特に何も考えずに検索機能を作っていると,検索ロジックでcontrollerが膨らんできてしまうと思います(Fat Controller問題). 例えば,検索フォームの内容として最初は名前だけで検索するとのことで, HogeController < ApplicationController def index @hoges = Hoge.where("name LIKE ?", "%#{params[:name]}%") end end と書いていたのが,そのうちメールアドレスや住所でも絞

    Railsでフォームオブジェクトを使った検索を簡単に実装する方法|TechRacho by BPS株式会社
    kent-where-the-light-is
    kent-where-the-light-is 2015/09/17
    後で読む
  • 1