
A Philosophy of Software Design, 2nd Edition (English Edition)
John K. Ousterhout
この本について
開発していると、「このコード、なぜこんなに複雑なんだろう…」と手が止まる瞬間がけっこうあります。気になるところを直そうとすると別の場所まで巻き込まれたり、設計の“どこが悪いのか”がそもそも言語化できなかったり。自分もそのモヤモヤを抱えたまま仕事をしてきました。 この本は、その曖昧な違和感を「複雑さ」という軸で捉え直す視点をくれます。特に、複雑さを減らす方法は一つではなく、シンプルに削るか、見えないところに閉じ込めるかという二つのアプローチがある、という話が実感に近かったです。また、良い設計にも“やりすぎ”があるという前提で語られるので、極端な正解を押し付けられない安心感があります。さらに、コードレビューの場でどう使うと効果が出るのかが示されていて、抽象的な概念を日々の実務に落とし込みやすいのも助かりました。 「深いクラス」の考え方が腑に落ちたあたりで、自分がこれまで抱えていたユーザーインターフェイスと内部実装が妙に絡まり合う問題の理由がようやく言語化できました。作業の独立性が損なわれる理由を構造として理解できると、次にどこを直すべきかが見えてきます。 設計の判断で迷い続けているエンジニアには特に刺さる本だと思います。
読書インサイト
ハイライト密度
多くの読者は第2章に最もインサイトを感じており、全ハイライトの44%が集中しています。
読書の順序
この本の前に読まれた本
この本に似ている本
すべて見る arrow_right_alt
【電子合本版】Code Complete 第2版 完全なプログラミングを目指して
Steve McConnell

現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
増田 亨

良いコード/悪いコードで学ぶ設計入門―保守しやすい 成長し続けるコードの書き方
仙塲 大也

「実践ドメイン駆動設計」から学ぶDDDの実装入門 CodeZine Digital First
WINGSプロジェクト 青木淳夫 and 山田 祥寛

Game Programming Patterns ソフトウェア開発の問題解決メニュー impress top gearシリーズ
Robert Nystrom、武舎広幸、阿部和也、上西昌弘
書籍情報(出版社紹介・目次)expand_more
出版社による紹介
読んだ内容を、もう忘れない。
BookNotion Zなら、Kindleのハイライトを自動で保存・整理。Notionにエクスポートして、いつでも振り返れます。
クレジットカード不要