Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

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

これは何?

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つの本で学んだことと被るところが多いが、かなりの良本。
    • 登場する具体例が自転車なので、自転車好きなら良いかも。個人的には特に興味も知識もないので、オブジェクトの例としてギアとかそういうの出てきてもピンとこなくてちょっとつらかった。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
2
Help us understand the problem. What are the problem?