プロを目指す人のためのRuby入門を読んだ

読み切った。メタプログラミングRuby読む前にこっちを先に読むべきだった。

どんな本だったか

解説が丁寧

筆者の解説がとても丁寧に感じた。一つの項目に対して関連した情報を続けて文章で解説してくれていて、覚えやすいと思った。

テストを書くことを意識させられる

3章から「テスト自動化」を見出しにしていて驚いた。配列の前にテストを書く入門書は初めて見た。各章の例題でもテストを行うことを重点に置いていることがとても斬新で良かった。

Railsのこともフォローしている

Railsをやる前にRubyを知ろう みなさんが「Rubyをちゃんと理解しているRailsプログラマ」になれるように、Rubyの基礎知識から実践的な開発テクニックまで、丁寧に解説します。

と表紙にあるとおり、要所要所で、Railsの解説があるのが親切で良かった。名前空間のところであったり、例外処理のベストプラクティスであったり。特に付録AはRailsを扱う上で必要な情報や参考資料のリファレンスが一通りあってとても便利だと感じた。なにかあるたびに読み返すことになりそう。

思った

モジュールは気軽に組み込める

C+やC#をかじっていた身としてはModuleと聞くと、Interfaceやpartial Classが個人的に連想されたんだけども、全然そのようなことはなくて気軽にメソッドを組み込める機構であることを学んだ。

成果物は育てることができる

7章を読んで強く感じた。7章の「クラスを理解する」では駅間の改札のプログラムを例題にクラスの作り方を解説している。この改札機と駅名を私は「プロを目指すRailsエンジニアのための公開コードレビュー」という発表をしました #railsdm - give IT a try という企画で読んだことがあって既視感を覚えた。実際に、著者の解説を読むと、

ちなみにこの問題は2017年11月に発売予定の書籍「プロを目指す人のためのRuby入門」のために作った例題をRails向けにモディファイしたものです。

とあった。一度作った成果物はいろいろな場所でアウトプットしていって、そのたびに少しずつ変えたり、良くしたりするといいのだなという気持ちになれた。

DSLが読める

これはメタプログラミングRubyを読んだというのもあるのだけれども、Rakeタスクを始めとするDSLの記法が中の実装まで想像して読めるようになったのが嬉しい。

task :hoge do
  puts '何らかの処理'
end

とあったときに、「ハッシュとブロックを引数にとるtaskってメソッドが定義されているんだなー」とか

gem 'rails', '~> 5.2.0'

とあったときには「gem名とバージョンを引数にとる`gemってメソッドがあるんだなー、バージョン指定は内部でsplitしてるのかなー」とか想像しながら読めるようになって、ふわっとしていた書き方がきっちり理解できた感じ。

とても素敵な入門書でした。今後もお世話になりそう。