3月に読んだ本の感想を簡単にまとめていきます。
メタプログラミングRuby(リベンジ)
1年半ほど前に読んでみたのですが、当時の私には難しく挫折しました。
今回は、以下の点に気をつけて読みました。
- どれだけ理解に時間がかかっても、わからないまま次に進まない。
- なるべく手元で動かしながらゆっくり進める
その結果、無事理解をしながら最後まで読み切ることができました。
正直、メタプログラミングできるか、と言われると怪しいですが、コードを読む上での心理的ハードルはかなり下がったのかなと思います。
個人的には、10章のActiveSupport::Concernが一番難しかったですが、なんとか読み切ることができました。
リーダブルコード
言わずと知れた名著だと思いますが、これもきちんとすべて読んでなかったので読みました。
- 変数の寿命を意識すること
- 明確な命名をすること
- タスクを分割すること
など、基本的かつ重要な考え方を総復習できました。
10章の「プロジェクト固有のコードから汎用コードを分離する」というのは意識として足りてなかった気がするので、今後意識していこうと思います。
プログラムはなぜ動くのか
2年弱前に買って積読になっていた本をようやく読みました。
プログラムが動く仕組みを、メモリ・レジスタという部分から解説をしてくれます。この辺りの知識を体系的に学べていなかったので、とても勉強になりました。
この本では、何度か「プログラムが動く仕組みをきちんと理解していないような、高水準言語の書き方しかわからないプログラマではいけない」という趣旨の記述があり、そうだよなあと胸に刺さりながら読んでいました。