msksgm’s blog

msksgm’s blog

Webエンジニアです。日々の勉強記録、技術書感想、美術観賞感想を投稿します。

「レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める 9 つのプラクティス」感想

「レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める 9 つのプラクティス 」[David Scott Bernstein (著), 吉羽 龍太郎 (翻訳), 永瀬 美穂 (翻訳), 原田 騎郎 (翻訳), 有野 雅士 (翻訳) , 2019]を読みました。

感想について記述していきます。

感想

IT エンジニア本大賞 2020 の技術書部門大賞に選ばれていたので読みました。

タイトルの通り、レガシーコード(保守と管理に多大な労力が必要なコード)を作り出さないための9つのプラクティスについて記述された本になります。 ただ、タイトルと比較してコードを用いて説明するような内容(変数名の付け方、リファクタリングの方法、CLEAN なコードぐらい)ではありませんでした。 どちらかというと、開発に取り組むときの姿勢(小さなで作ったり、継続的に統合したり、ペアプロ、TDD or BDD?)などについて作者の働いていたときの経験やコンサルタントとして導入したときの経験を主に記述されています。 なので、「現場で役立つシステム設計の原則」や「入門リファクタリング」といった本というよりは、「達人プログラマー」や「プログラマが知るべき 97 のこと」のような本に近い印象でした。

この手の書籍だと「リファクタリングは重要だし、TDD とペアプロは最強の開発メソッド、設計はドメイン知識を持ちましょう、小さく CI/CD できる環境を持ちましょう」みたいな紹介がされがちな気がします。 でも、この本は「ふるまい」の重要性を述べていている(「ふるまい」が変わらなければテストを追加で記述する必要はない、とか)のが他の本当の違いを感じました。

ソースコード的な意味で実践的な内容を学びたいという目的で読むには向いていないかと思われます(逆にそれ以外であればよさそう)。 内容としてはどれも重要なものであり、ページ数も少ないのであらすじや序章を読んで気にいれば、とりあえず一読するのをおすすめします。 プラクティスに関連する書籍も紹介されているので、興味があるプラクティスの書籍を読むことで理解を深めて、知識を蓄えた後にもう一読すると理解が深まりそうでした。