Tidy First? : 個人で実践する経験主義的ソフトウェア設計の表紙

Tidy First? : 個人で実践する経験主義的ソフトウェア設計

プログラミング
著者:
KentBeck 吉羽龍太郎 永瀬美穂 細澤あゆみ
出版社:
オーム社
出版日:
不明
ISBN:
9784814400911

なぜ注目されているか

総合5位 3 件の言及

技書の森解説

読みにくいコードを前にして、機能を足す前に少し片付けるべきか、それとも先に機能を仕上げるべきかを判断する考え方を、1 人の開発者の手の届く範囲から解いた設計の本です。『Tidy First?』 (Kent Beck 著、吉羽 龍太郎、永瀬 美穂、細澤 あゆみ 訳、オライリー・ジャパン、2024 年 12 月刊) は、副題に「個人で実践する経験主義的ソフトウェア設計」と掲げ、版元の紹介によれば、エクストリームプログラミングの考案者でソフトウェアパターンの先駆者である著者が、システム全体の構造を念頭に置きながら、いつどこでコードを整頓するのがよいかを解説しています。

整頓の技法から理論まで、3 部 33 章の構成

第 I 部の整頓は 15 の章で、ガード節、デッドコード、シンメトリーを揃える、新しいインターフェイスと古い実装、読む順番と凝集の順番、変数宣言と初期化を一緒の場所に移す、説明変数と説明定数、明示的なパラメーター、ステートメントの小分け、ヘルパーの抽出、説明コメントと冗長なコメントの削除といった、小さく安全に試せる整頓の技法を並べています。第 II 部の管理術では、整頓を分けて扱うこと、連鎖、バッチサイズ、リズム、絡まりのほどき方を扱い、先に整頓するか、あとにするか、改めて整頓するか、整頓しないかの判断までを論じます。第 III 部の理論は、構造と振る舞いの区別、時間価値とオプショナリティから見た経済性、可逆的な構造変更、結合と凝集を扱い、付録に読書リストと参考文献を収めています。

振る舞いの変更と構造の変更を分ける意味

版元の紹介が学べることの 1 つに挙げ、第 III 部にも章のある論点が、プログラムが何をするかを変える振る舞いの変更と、同じ動作のままコードの形を変える構造の変更の違いです。構造の変更は リファクタリング と呼ばれる作業に近く、振る舞いを変えないぶん元に戻しやすいのに対し、振る舞いの変更は利用者に影響が及ぶため慎重さが求められます。2 つを 1 回の変更に混ぜると、レビューする人はどこが動作に関わるのかを見分けにくくなり、問題が起きた時に原因を切り分けるのも難しくなります。設計の良し悪しを測る物差しとして長く使われてきたのが、部品どうしの依存の強さを示す 結合 と、1 つの部品の中の要素がどれだけ同じ目的にまとまっているかを示す 凝集 です。版元の紹介によれば、本書はこれらに加えて、ディスカウントキャッシュフローやオプショナリティといったソフトウェアシステムの経済的価値の考え方も解説しており、整頓に時間をかけるかどうかを、好みではなく費用と選択肢の価値で考える手がかりを示しています。

個人の手の届く範囲から始める設計

副題のとおり、本書は 1 人の開発者が日々のコードの変更の中で実践することを出発点にしており、版元の紹介でも、整頓のしかたを一気に習得するのではなく、少しずつ試しながら自分の課題の解決につなげる進め方を挙げています。第 I 部の技法は章題を見る限りどれも関数やステートメントの単位の小さな変更なので、関数の読みにくさに悩んだ経験がある人なら入り口に立ちやすい構成です。一方で、サービスの分割やアーキテクチャの様式を比較する本ではなく、話の中心は日々のコードに近い粒度にあるため、システム全体の構成を決める手法を学びたい人は別の本と組み合わせるほうが目的に合います。設計の学び方全体を見渡すなら、設計とアーキテクチャの本の選び方 がコードとモジュールとシステムの段階ごとに本を探す手がかりになります。

散らかったコードに手を入れるたびに、片付けを先にするべきか迷い、結局どちらも中途半端になってしまう人にとって、本書はその判断に名前と理由を与えてくれる 1 冊です。小さな整頓の手札を増やしながら、設計の理論にも足場を持ちたい開発者が手元に置くと、毎日の変更の進め方そのものを見直すきっかけになります。

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

この本に関連

関連記事

関連用語

共有: