LoginSignup
4
2

More than 3 years have passed since last update.

Ruby、Rails を学ぶ上でのおすすめの本まとめ

Last updated at Posted at 2019-10-09

これは何?

Ruby、Rails に関して何によってどう学んできましたか?というのをよく聞かれるので、まとめた。
あくまで個人の経験に基づく感想です。

(書籍へのリンクはアフィリエイトではありません)

対象

とりあえず Ruby でちょっとしたスクリプトは書けるし、Rails も軽く触ったことはあるよ、という方。
(全くRuby触ったことない人向けではないと思います)

Rubyの言語仕様を学ぶ

効能

  • Ruby っぽい書き方ってどんな書き方なんだろう?を学べる(map 使うとか)。
  • Rails を読む上でのおまじないが減る。
    • なぜ attr_accessor を書くとセッター/ゲッターが生えるのかとか、モデルがActiveRecord を継承していることの意味とかがわかるようになり不安が減る。

紹介

  • Effective Ruby
    • リファレンス的な本ではなく、もっと現実的に使われる文脈を意識して書かれているように感じた。読みやすかった。
    • 写経しやすいのが良い。書いて身につけることができる。
  • メタプログラミングRuby第2版
    • メタプログラミングという切り口で Ruby の言語仕様を教えてくれる本だと思った。
    • クラス定義の話(継承ツリーとか特異クラスとかinclude/extendとかの話)はこの本が一番分かりやすかった。
    • 「ブロックがクロージャである」という表現を直感的に理解できるようになった。

設計力を高める

効能

  • 以下のような疑問に対する自分なりの意見を持てるようになる。
    • model/controller/view 以外にも app ディレクトリ以下に service とか作ることがあるっぽいけど、どこに何を書くのが美しいの?
    • controller/model が肥大化してしまってつらいんだけどどうすればいいの?
  • 実装に関して戦略レベルで大きなヘマをすることが減る。したがってコードレビューで大きくちゃぶ台返しされることが減る。

注意事項

  • ちょっと読んでみて「難しくてほとんど全部よくわからん、」「言っている意味はわかるがこれを学んでなにか意味があるの?」となったら今読むべきではないと考えたほうが良いかもしれません。
    • 知識というか考え方を学ぶ本だと私は解釈しており、理解できていない状態で読んでもほとんど学びはないのではないか?となっている。
    • 具体的に開発を通じて悩んだ経験があると、「なるほどこういうふうに書けるのね!」となりやすいが、経験があまりないとピンとこないので記憶に残らない、ということもありそう。

紹介

  • リファクタリング:Rubyエディション
    • 神本。しかし絶版っぽい? 復刊したようだ!!(2020/09/15 update)
    • 写経しやすいのが良い。書いて身につけることができる。
    • リファクタリングの本なので、before の状態から after の状態に帰る方法としてどのような方法があるのかを学ぶことができる。
    • before の状態を見てその問題点を列挙する力、after の候補を列挙する力、after の候補から最も良いものを選び出す力、を身につけるとアウトプットの質が大幅に改善される。
  • Ruby によるデザインパターン
    • 絶版っぽい?
    • デザインパターンを Ruby で実装してみた、みたいなもの。
    • 『リファクタリング:Ruby』 でしっかり学んでいると、だいたい「まぁそうだよね」、となるかもしれない。
    • 「デザインパターンって言葉よく聞くけど何なのだろう?ちょっと学んでみたいな」みたいな人には特に向いているかと思う。
  • オブジェクト指向設計実践ガイド―Rubyでわかる進化しつづける柔軟なアプリケーションの育て方(サンディメッツ本)
    • 絶版じゃない!!!
    • 上の2つの本で学んだことと被るところが多いが、かなりの良本。
    • 登場する具体例が自転車なので、自転車好きなら良いかも。個人的には特に興味も知識もないので、オブジェクトの例としてギアとかそういうの出てきてもピンとこなくてちょっとつらかった。
4
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2