モノラルログ

マツオ ( @matsuoshi / monaural.net ) のざっくりしたブログです

書籍「レガシーコードからの脱却」を読んだ

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

オライリー本。

タイトルの時点でかなり興味深いのですが、翻訳者のひとり Ryuzee さんによりますと

著者が強調するのは、そのレガシーコードへの対応としていちばん大事なのは「最初からレガシーコードを作らない」という点です。 あとから品質を上げるのは、最初から品質を高く保つのに比べて何倍ものコストがかかるので、後からレガシーコードを直さなくて済むようにする。 そのためにどうすれば良いのかに紙面の多くを割いています。

何それめっちゃ気になる。つまり「レガシーコードを修正する本」ではないと。いかにして「レガシーコードを作らないようにするか」って話だと。ということで読みました。

アジャイルの本でしたね

前半は、なぜレガシーコードが生み出されるのか、という観点。

いわゆるウォーターフォール的なやり方だと、途中変更のたびにレガシー感が増えてくるよね、アジャイルな考えでやっていかないとね、という感じ。最初に目次を見た段階では、ここまでアジャイル推しな内容になってるとは思わなかったなー

そういえばこの本、序文をウォード・カニンガムが書いてるんですよね。Wiki の生みの親。アジャイルマニフェストの17人のメンバーのうちの一人。

ja.wikipedia.org

なるほどなるほど。

9つのプラクティスは納得感が高い

で、実際のプラクティスの部分も。読んでいて、まあそりゃそうだよな、という納得感が非常に高い。感覚としてなんとなく分かってた、という話がきれいに言語化されている感じ。

  • やり方より先に目的、理由、誰のためかを伝える
  • 小さなバッチで作る
  • 継続的に統合する
  • 協力しあう
  • 「CLEAN」コードを作る
  • まずテストを書く
  • テストでふるまいを明示する
  • 設計は最後に行う
  • レガシーコードをリファクタリングする

めちゃくちゃ目新しい話はないです。他の書籍でも見るようなプラクティスが上手くまとまっている。ただ、それらを丁寧に実践することはラクなことではないし、実践されているであろうからこその、納得感の高い言語化

ええ本でした。

www.ryuzee.com