Ruby on Railsを仕事にしていくための第一歩

最近仕事でRailsのコードレビューをする時間が長くって、いろいろ指摘するんですが、
Railsって「Railsチュートリアル」には書いていないのに覚えないと仕事にならないこと多すぎだなと気付かされます。
どこでどんなふうにすれば、プロになろうとしている人が最短距離で知識を獲得できるかはわからないですが、
今思っている特に大事だなと思うことつらつらと書いていきます。


プログラミングの重要な要素

まず、Railsの前にプログラミングで全般的に特に重要と思っている要素を紹介します。

- リーダブルなコード
  - ネーミングルールについて
  - 言語・フレームワークのルール
  - 変数のスコープについて
  - プロジェクトの設計思想
  - オブジェクト指向・コードの再利用性
- 正しいテストケースを作る

プロジェクトによって変わるので、すべては書きませんが、ぜひ意識してどこを学ぶべきかを考えてみてください。

ネーミングルールについて

  • 動詞・名詞を正しく使い分けてください(英語は慣れるまでたいへんですが、頑張ってください><)
  • 名前は「ほかのチームメンバーにも意味が分かる英語の名前」にしてください
  • プロジェクト内の周りのメソッド・変数がどんな意味を持っているか考えて見てください

コーディングガイドライン

Ruby/Railsの有名なコーディングガイドラインは世の中にたくさんあるので、ぜひ読んでください。

変数のスコープについて

変数のスコープにおいてプログラムの読みやすさはすごく大切です。
ローカル変数、インスタンス変数、クラス変数のスコープを理解して使い分けてください。
スコープの広い変数をむやみに使うとほかの人がコードを読みにくくなり、バグの温床になります。

オブジェクト指向について

そのほか必須で読んでほしい本・記事

書籍

記事

Rails/Ruby Tips

ここからは、細かめのTipsです。よく指摘するところを中心に書きます。

Active Record

Rails - View

  • 共通的に使う可能性のあるものは、 Decorator(ActiveDecorator等を利用) 側に書いてください
  • Viewのロジックはできる限り減らしてください
  • haml/slimは構造化しやすいという点で便利!

Rails - i18n

適材適所でi18nを活用してください。

N+1問題の対策 - Bullet

RailsのActive Record(findやwhere)は便利ですが、DB(SQL)の側から見ると
非効率的なクエリを発生させることがあります。
これを監視してくれるのが、『Gem Bullet』です。
このGemを入れておくと開発環境でN+1が発生した時に警告を出してくれます。

Profiler

Viewが遅い時にボトルネックを探すためのツールです。
速度改善をする場合はプロファイラか、ログを取ってボトルネックを計測して実施してください。

Ruby/Railsの細かいTips

参考書籍

そのほか読んでおくといいよって本です。

あとは『プログラマ歴12年の僕が選んだ「10年経っても役立つ技術書17選」 - give IT a try
にプログラマーが基礎を身につける上で役に立ちそうな本が紹介されています。こちらも良かったら読んでみてください^^

本当に初心者な人向けに

ちょっと上の内容がハードだなと思う人向けには拙著
ぼくのかんがえたさいきょうのRailsファースト・ガイド - 酒と泪とRubyとRailsと
をよかったら読んでみてください。

参考リンク