レガシーコード改善ガイドという本を読みました。
良い本だったので、自分が特に参考になった部分をメモとして残したいと思います。
この本を読むきっかけや読み進める上での参考になれば幸いです。
→書籍情報(Amazon.co.jp)
なぜ読んだのか、何を得られたのか。
なぜ読んだのか
- 自分が業務で扱っているソースコードがとても汚く、モチベーションが下がっていた。
- 古いバージョンの言語、フレームワークを使用しており、テストコードは動かないことが多かった。
- その状態を改善することができていない自分自身に苛立っていた。
何を得られたのか
- レガシーコードに対する考え方。
- レガシーコードに対する具体的な戦法。
- 自分の仕事に対する姿勢を考え直すきっかけ。
レガシーコードに対する考え方
レガシーコードとは単にテストのないコードのことである。
- テストがあれば検証しながらコードを良くしていくことができる。
- テストがなければ、コードが良くなっているのか悪くなっているのかが本当にはわからない。
編集して祈るか、テストで保護して変更するか。
- 見た目は醜悪でも、数々のデバッグを乗り越えてきたソースコード。
レガシーコードに対する具体的な戦法
依存関係を排除する。
- レガシーコードにテストを入れる方法は意外とたくさんある。
- 最初に小さなリファクタリングをしてからテストを入れるとスムーズ。
- 依存関係を排除しテストを実装していくことで自然と読みやすいコードになっていく。
自分の仕事に対する姿勢を考え直すきっかけ
隣の新規開発の芝は実はそれほど青くはない。
- 仕事にやりがいを持てるのかどうかは、レガシーコードであるかどうかに関係ない。
- 仕事へのモチベーションは仕事に対する姿勢で決まる。
- 試しに最も醜悪なクラスをテストで保護してみたらどうか。
まとめ
- テストがないなら入れよう。
- テストを入れることで依存関係の少ない設計になっていく。
- 依存関係が原因でテストができないなら、最初に小さなリファクタリングをしてテストを入れよう。
- 今の仕事をやりがいのあるものに変えられるかどうかは、自分にかかっている。