手数料無料キャンペーン中!で、少し前に新卒2年目氏がチームに加わったので「これ読んどくと良いよ」という本をチーム内で共有しようと思っていたのですが、クローズドな場所に書く理由も無いですし、せっかくなのでブログに書こうかと思いました。動くコードは書けるようになった、という人が次に遭遇するであろう問題とそれを解決してくれる本をまとめます。紹介する順番には、特に「この順番で読むべき」という意図はないです。手続き型なコードから抜け出せない。最大の長所は「テストを書きながら実装を進めていく」ところだと思うのですが、これをやり終えてもなお、なかなかテストが書けない、書くのに時間がかかるというのは、あると思います。テスト書けない」という声を聞いたら、とりあえず「これ一択」と言って薦めています。配置したら良いのか分からない。分割したいのだけれど、どう分割したら良いのか分からない。的に正しいやり方なのかな?」と不安になる。便利機能があってそれを使えば良いのに、車輪の再発明をしてしまったり。突っ込んだところまで解説してくれる、中級者向けの本です。エンジニアが抱えていると思うので、まさに待ち望まれていた内容の本だと思います。2回この商品を含むブログを見るタイトルのとおり、初心者のうちは、まあ、こういうのやっちゃうよね、というアンチパターンと、それに対する改善策が書かれています。言語仕様がよく分かっていない。出てきたらウッと詰まるとか。言語仕様を解説した本は他にも多数ありますが、一番「実践的な」本だと思います。実務でよく使うよねというライブラリやツールの解説にも結構ページが割かれています。ライブラリのコードを読んでも意味が分からない何かライブラリを使っていて、思っていた挙動と違っていたり、ドキュメント読んでも意味不明だったり、そういうときライブラリのコードを読むんだけど、ますますイミフ。いうときはだいたいメタプログラミングしている箇所で何をやっているのか分からなくて迷子になっている可能性が高いと思います。Ruby』でもメタプログラミングに相当数のページが割かれているのですが、この本はまるまる1冊メタプログラミングの本。本の表紙も黒だし、まさしく黒魔術書。どのようにメタプログラミングを利用しているのかという章もあって、そこまで読んでようやく理解できました。内部でどう動いているのかが分かっていないと、なかなか手が出せなかったり、良いものがつくれなかったりします。拡張しながら詳しく解説してくれている本です。手続き型なコードから抜け出せない。手続き型っぽい書き方をしていて、オブジェクト指向脳になるのに苦労しました。コードがまさに自分が書いていたコードで、泣けました。この本のおかげでオブジェクト指向で読みやすいコードを書けるようになったし、オブジェクト指向だけではなく、どうしたらもっと読みやすくできるか、テストが書きやすいコードになるかという情報が満載の本です。エディション』を読んだら、ある程度、適切に然るべきクラスの抽出、メソッドの抽出ができるようになると思うのですが、それでもなお、このクラス設計で良いのかな?と迷うことはしばしば。見るチームのメンバーが薦めてくれました。blog実務で遭遇しそうな問題を題材に、クラス設計を解説してくれていて読みやすかったです。おわりに以上、いろいろ挙げましたが、この中でさらに時間対効果が高いものを厳選するとしたら、次の3冊ですかねー。エディション梅雨入りして雨の日が続いているので、この機会にぜひ読んでみてください。