newで常に使いたい厳選・定番gemリスト(2017-2018年版)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。newで常に使いたい厳選・定番gemリスト(2017-2018年版)hachi8833&シェアツイートブックマークLINEこんにちは、hachi8833です。5を念頭に、BPSのWeb開発で厳選された定番gemリストをまとめました。この記事は今後も随時更新しますのでよろしくお願いします。LicenseFinderとRufoを追加しました。Annotate(AnnotateModels)を追加しました。5.1以降で不要であることを追記しました。rails_best_practicesを追加し、Rails5.2.1で検証しました。generateする前に「そうだ、あのgemとあのgemも追加しなきゃ」となることはよくあります。newするときからスリムに保っておきたいものです。Railsを始めて間もない人には特にgemを厳選することをおすすめします。newを頻繁に行うのでなければメンテナンスの手間に引き合わないのでやめました。rbenvでRubyをインストールして新規Rails開発環境を準備する』の方法でRuby/Rails環境を構築する前提です。定番gemリスト(プロジェクト非依存)案件や開発環境にかかわらず、常に追加・変更しておきたい厳選gemです。gem名のリンクをクリックすると記事後半の詳細に移動します。ファイル保存時のRSpec自動実行など、IDEでカバーできるgemは含めていません。RDBMSはデフォルトのSQLiteのままにしてあります。MySQLにするかPostgreSQLにするかについては別途設定してください。5.0.1の新品Gemfileに厳選gemのみを追加したものを参考までに貼ります。元のコメント行は削除してあります。newで使うのが前提なので、既存プロジェクトでは状況に合わせてGemfileに追記してください。installを実行すれば、厳選gemのインストールが完了します。追伸gem名のハイフンやアンダースコアが違っているとインストールできません。rubygems.orgで検索できる名前にする必要があります。better-errors、bettererrors、BetterErrors地味ですが割りと間違えやすいんですよね(間違えました)。概要にとどめていますので、詳細についてはリンク先をご覧ください。RuboCophttp://rubocop.readthedocs.io/en/latest/のスタイルにもとづいてコードのスタイルをチェックします。デフォルトのままだとうんざりするほどエラーが出力されるので、プロジェクトの状態やスタイルに合わせて.rubocop.ymlの設定をカスタマイズするのが普通です。手動でカスタマイズするのはかなり大変なので、後述の「急ぎの場合に使える設定方法」を使うとよいでしょう。以下同様)http://rubocop.readthedocs.io/en/latest/の解説についてはTechRachoの連載『Rubyスタイルガイドを読む』シリーズもどうぞ。急ぎの場合に使える設定方法プロジェクトによっては以下の方法で余分なエラーを効果的に抑制できます。--auto-gen-configを実行して.rubocop-todo.ymlを生成する.rubocop-todo.ymlを複製して.rubocop.ymlという名前にするこの方法で現在のプロジェクトのスタイルをすべて容認する.rubocop.ymlを作れます。その後で、検査したい項目を.rubocop.ymlから順次外すことで、1項目ずつチェックできます。brakemanコードに潜むセキュリティ問題をチェックします。brakemanを実行bundler-auditGemfile.lockのgemバージョンを調べてセキュリティ問題をチェックします。bundle-auditを実行コマンドはbundler-auditではなくbundle-auditです。factory_girlをfactory_botに更新しましたRailsで広く使われているテスティングフレームワークです。factory_bot_railsはテストデータをfactory_botで準備するのに使われます。RSpecとfactory_botは案件を問わず使うことになると思います。実行前に、RSpecやfactory_botの設定が必要です。RSpecと一緒に使うことの多いgem以下は主なものです。timecoprack-mini-profiler開発中にリクエストの所要時間などをブラウザ画面の隅に表示できます。クリックすると詳細が表示されます。インストールした環境でブラウザを開くだけでよいbetter_errorsとbinding_of_callerbetter_errorsはエラー時にリッチなデバッグ画面を表示します。binding_of_callerもインストールするとデバッグ画面でコードや変数の値を変更することもできます。https://github.com/banister/binding_of_callerbulletn+1問題を検出できます。gemがインストールされていれば、n+1問題検出時にダイアログが自動で表示されるLicenseFinder依存関係のあるライブラリのライセンスを一覧表示してくれます。Rubyに限定せず使えます。license_finderを実行することでライセンスが一覧表示されます。license_finderなどで実行します。テストやCIで実行するとよいでしょう。ファイル名で、最小限のフォーマット修正を行ってくれます。高速なのがありがたい点です。プロジェクトディレクトリでannotateを実行するとスキーマがコメントとして各種ファイルに追加されます。fixturesなどとすれば除外ディレクトリを指定できます。--deleteとすればスキーマを削除できます。SkipSchemaAnnotationsというマジックワードを書けます。annotate_modelsなどの方法でスキーマを追加することもできます。この場合、マイグレーションするとスキーマも自動で更新されます。'true',を設定します。generateコマンドを実行しても先に進まなくなってしまうことがあります。5で標準になったspringというプリローダーgemが動いたままになっている可能性があります。stopを実行してspringを止めるとgenerateできるようになります。.Railsのベストプラクティスをサジェスチョンするgemです。5.2.1では「問題なし」となります。さまざまな出力オプションがあります。コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。enno.jpを運営。実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。