Lapis Lazuli

technical blog for web developer

【感想】レガシーコードからの脱却

以前読んだ書籍、レガシーコードからの脱却。
一通り読んだので、アウトプットとしてまとめてみました。

この本は発売当初、書店では売り切れで無くて、しばらく入荷を待ったくらい売れたみたいです。
確か最初はブログかTwitterかで目にして以来、気になっていたので購入してみました。

ざっくりと本の内容

レガシーコードからの脱却というタイトルの通り、プロダクトをどうしたら効率的に開発し続けることが出来るか。を、全体的なテーマとして書かれています。
9つにまとめられたプラクティスで、著者が「こうしたらいいよ」と語りかけてくれるような内容になっています。

で、その9つをピックアップしてみると、

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

というテーマになっています。
全体的にそうですが、開発Howtoというよりはドリブンを示す形になっています。

特に印象に残った箇所

テスト駆動開発の事ですね。むしろこの事がインパクト大きくて後半もっていかれましたw
上の9つを見れば分かるのですが、6・7と、テストについての記述が続きます。
6でテストに対する誤解を解き、7でテストの有用性を書いている形です。
僕もそうだったんですが、「テストを書くのがめんどい」という意見を一刀両断しています。
テストがあるからこそ、後々記述量が増えたときに正当性を担保することが出来ると。
単に立ちふるまいが合っていればいいので、一つひとつのメソッドというよりは、ユニットごとの挙動をテストすることが重要だとも書かれていました。
僕はこれを読んだ時、単なるテストなんて・・・という考えが吹っ飛びましたw
また、テストカバレッジは100%じゃないと意味がない。とも・・・
Goではテストをちょくちょく書いていたのですが、外部に依存する難しい部分はすっ飛ばしてたなと・・・反省。

まとめ

オライリーの本だけあってかなり読むのに根気がいります。
が、書いてある事はとてもシンプルで、目からウロコの秘訣というよりは、当たり前の事をやっていきましょう。という形です。
個人的にはリーダブルコードのほうが断然身になるものがあったのですが、テストの重要性を知れただけでも十分価値はあったかな。と思いました。