酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

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

Profiler

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

Ruby/Railsの細かいTips

参考書籍

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

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

本当に初心者な人向けに

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


Special Thanks

おすすめの書籍