改訂新版 良いコード/悪いコードで学ぶ設計入門 -保守しやすい 成長し続けるコードの書き方の表紙

改訂新版 良いコード/悪いコードで学ぶ設計入門 -保守しやすい 成長し続けるコードの書き方(カイテイシンパン イイコードワルイコードデマナブセッケイニュウモン ホシュシヤスイ セイチョウシツヅケルコードノカキカタ)

ソフトウェア工学・設計
著者:
仙塲 大也(センバ ダイヤ)
出版社:
技術評論社
出版日:
2024年12月25日頃
ISBN:
9784297146221
在庫:
在庫あり
4.8(5 件 / 楽天ブックス)
中級者向け
ソフトウェア設計コード品質可読性保守性設計パターン実務向け入門書ソフトウェアエンジニアリングコード改善設計原則

なぜ注目されているか

ソフトウェア工学・設計
6
総合18 4 ランクダウン 29 件の言及
言及数
171
出版前出版日05920222023202420252026

書籍紹介

本書は、より成長させやすいコードの書き方と設計を学ぶ入門書です。筆者の経験をふまえ構成や解説内容を見直し、より実践的な一冊になりました。
システム開発では、ソフトウェアの変更が難しくなる事態が頻発します。 コードの可読性が低く調査に時間がかかる、 コードの影響範囲が不明で変更すると動かなくなる、 新機能を追加したいがどこに実装すればいいかわからない......。

変更しづらいコードは、成長できないコードです。 ビジネスの進化への追随や、機能の改善が難しくなります。

成長できないコードの問題を、設計で解決します。

技書の森解説

動くコードは書ける。しかし数か月後に開き直すと読めず、変更すればどこかが壊れる。『改訂新版 良いコード/悪いコードで学ぶ設計入門』は、その状態から抜け出すための「変更容易性」の設計入門書です。著者は X (旧 Twitter) で「ミノ駆動」として知られるアプリケーションアーキテクトの仙塲大也氏。 2022 年刊行の初版はエンジニア投票で選ぶ IT エンジニア本大賞 2023 の技術書部門大賞を受賞しており、その改訂新版が 2024 年 12 月に技術評論社から刊行されました。 A5 判 408 ページ、全 18 章です。

Before/After で学ぶ全 18 章の構成

書名のとおり、悪いコードと良いコードを並べて見せる Before/After が本書の基本形です。意味不明な命名、深くネストした条件分岐、データと処理が泣き別れたデータクラスといった「悪しき構造」をまず知覚させ (第 1 章) 、命名・メソッド化・クラス化という設計の初歩から、カプセル化、不変の活用、値オブジェクト や完全コンストラクタといった実践パターンへ積み上げます。低凝集や密結合が招く不具合を「悪魔」と呼ぶ比喩のとおり語り口は軽妙ですが、扱っているのは凝集度・結合度・単一責任の原則という設計論の古典概念そのもので、それを現場のコードの言葉に翻訳してくれるのが本書の役割です。終盤はリファクタリングの進め方 (第 15 章) から、設計の意義、設計を妨げる開発の進め方との向き合い方、次に読むべき 設計技術書 の紹介 (第 18 章) まで踏み込みます。

『リーダブルコード』との違いと読む順番

「読みやすさ」ではなく「変更容易性」をゴールに据えている点は、類書との一番の違いです。定番の『リーダブルコード』 (オーム社、 2012 年) が命名やコメントなど読み手への伝わりやすさに焦点を当てるのに対し、本書は仕様変更に強い構造をどう作るかまで踏み込みます。コードは書く時間より読まれ変更される時間のほうが長く、ビジネスの変化に追随できないコードは資産ではなく負債になっていく。この前提を共有した上で、条件分岐の整理や不正値の混入防止といった毎日の実装判断レベルに設計を落とし込むので、「設計 = 上級者がやる別工程」という思い込みが解けていきます。読む順番としては、リーダブルコードの次の一冊 としてちょうど段差が合います。

改訂新版で変わった点

改訂新版は、版元の説明にあるとおり筆者の経験をふまえて構成や解説内容を見直した、より実践寄りの版です。コード例は Java を中心としつつ、異なる言語への応用を扱うコラムも収められているため、 C# や TypeScript など他のオブジェクト指向言語の読者でも考え方はそのまま持ち帰れます。これから買うなら旧版ではなくこの改訂新版を選べば間違いがありません。

向いている読者と本書の範囲外

効果が大きいのは、実務 1 〜 3 年目で「動くけれど直しにくいコード」を量産している自覚が出てきた人、レビューで「なんとなく読みにくい」以上の指摘語彙が欲しい人です。読み終えると、凝集度・結合度・不変・値オブジェクトといった概念で自分のコードの問題を名指しできるようになり、レビューコメントが感想から根拠に変わります。一方、マイクロサービスの分割やインフラ構成といったシステム全体のアーキテクチャ設計を期待する本ではなく、関数型スタイル中心の開発者にはオブジェクト指向前提の説明が遠回りに感じられるはずです。設計の学びを「いつか読む重厚な古典」から「今日のプルリクエストに効く判断基準」に変えたい人にとって、最初の一冊として堅実な投資になります。

言及 Qiita 記事 (16 件)

この本に興味がある方におすすめ

この本に関連

関連記事

関連用語

共有:Xはてブ