書評「Tidy First?」
こんにちは。虎の穴ラボのmwです。今回はオライリー・ジャパンより2024年12月25日に出版された「Tidy First?― 個人で実践する経験主義的ソフトウェア設計 ―」を読みましたので、内容をご紹介させていただきます。
書籍情報
| 項目 | 内容 |
|---|---|
| 著者 | Kent Beck |
| 訳者 | 吉羽 龍太郎 / 永瀬 美穂 / 細澤 あゆみ |
| 発行所 | 株式会社オライリー・ジャパン |
| 発行日 | 2024年12月25日 |
| ISBN | 978-4-8144-0091-1 |
| ページ数 | 164 |
| 価格 | 2,640円(税込) |
https://www.oreilly.co.jp/books/9784814400911/
読み始めたきっかけ
既存のプロジェクトに取り組む際、コードの理解に時間がかかることがしばしばありました。時間をかけて読み進めていくうちに内容を理解し、整理しながら次のようなことを考えていました。
- コードを改善して可読性を上げたほうが今後の改修がしやすくなるが、それは今行うべきか?
- 改善するにしてもどこまでの範囲を行うべきか?
そのような判断を行うための学びを得たいと考えていたところ、本書の紹介文を読んで内容がとてもマッチしていたため手に取って読み始めました。
書籍の内容と感想
全3部構成で、各部が細かく章立てされています。具体的な手法から抽象的な理論へと進む構成になっています。
第I部 整頓:具体的な手法の紹介
本書では、整頓を「小さなリファクタリング」と定義しています。 この章ではコードを整頓していく具体的な例について解説しています。状況に応じた手法の使い分けを詳細に解説しています。 こちらで説明されている整頓の手法は1-2ページで説明が終わるようなとてもミニマムなものなので、学べば即実践できる内容でした。 「コードの最大のコストは、コードを書くことではない。コードを読んで理解することだ。」という言葉が印象に残りました。生成AIを利用して実装することが増えている今こそ、読みやすく理解しやすいコードの重要性が、かつてないほど高まっていると感じます。
第II部 管理術:整頓をいつ、どこまで行うか
開発のワークフローに整頓を組み込む方法について解説しています。整頓の開始と終了のタイミング、振る舞いの変更と整頓をどのように組み合わせるかの解説を行っています。 第I部は「何をやるか」、第II部は「いつ、どこまでやるか」を主題としています。 特に印象に残っているのは整頓の承認ワークフローです。 整頓と振る舞いの変更を同一のPull Requestに盛り込むとレビューに時間がかかり、大変になります。別個にすることでそれぞれの変更点は明確になりレビューは早くなりますが、その分、数が増えるというデメリットがあります。 レビューのコストを減らす発想の一つとして、整頓にレビューが不要になるまでチーム内で信頼関係を築くということにはとても驚かされました。容易ではありませんが、挑戦しがいのある取り組みだと感じています。
第III部 理論:なぜ整頓が価値を生むのか
最後の章は「なぜ」整頓するかについてフォーカスを当てています。 整頓を行うことの作用機序について理論立てて説明されています。 システムの価値を高めるために行えることはシステムの振る舞いを変更する(≒追加機能の開発を行う)だけでなく、次にできることの選択肢を増やす(≒整頓して追加開発しやすくする)という表現は整頓を行うことのメリットを強く示唆しています。
まとめ
整頓をするべきか、どのタイミングで行うかについて適切に言語化されていると感じました。整頓はよく後回しにされがちだからこそ行うメリット・デメリットを適切に把握し、推進していく必要性を強く感じました。 本書はソフトウェアの設計をテーマとする全3冊のシリーズの最初の書籍です。2作目「Tidy Together?」も原書が今年の1月に発売されていますが、そちらではチーム開発に焦点を当てているとのことなので、2作目も読んでみようと思います。 結論として、本書は整頓のメリット・デメリットを適切に判断し、推進するための指針となる一冊でした。
とらのあな通販開発採用情報
虎の穴ラボでは、一緒とらのあな通販を開発していく仲間を募集中です! この記事を読んで、興味を持っていただけた方はぜひ弊社の採用情報をご覧ください。 Java経験がある方は、ぜひ通販開発エンジニアへ応募下さい! toranoana-lab.co.jp
Discussion in the ATmosphere