@hihihiroroのLog

ダラダラと。本ブログは、個人の意見であり、所属会社とは関係がありません。

「レガシーコードとどう付き合うか」を読んだ

薄くて読めそうだなと思ったので買って読んでみた。

目次。

CHAPTER-01 なぜレガシーコードが生まれやすいのか
CHAPTER-02 レガシーコードを改善するための道筋
CHAPTER-03 レガシーコードを読む力
CHAPTER-04 レガシーコードを改善するための準備
CHAPTER-05 レガシーコードを改善する

まずはレガシーコードとは何かから話が始まっている。本書では、創業期の資金不足や人材不足によって生じるコードの負債をレガシーコードと定義している。その説明の後、レガシーコードが生まれる背景として企業の資金調達フェーズの話などから生まれるべくして生まれる技術負債として説明されており、なるほどと思った。

レガシーコードを改善するために手を付けるキッカケとして経営的アプローチと開発的アプローチが紹介されている。開発的アプローチとしてはどのような観点で修正していくかを考えるための価値観について書かれていた。ここで書かれていたものは例えば以下のようなもの。

  • 変更容易性
  • 循環的複雑度(サイクロマティック複雑度、Cyclomatic Complexity)
  • テスタビリティ
  • 凝集度・結合度
  • DRY 原則
  • YAGNI・PAGNI
  • SOLID 原則

自分たちのシステムでも全然見たことがないものが多い。このあたりでいくつか簡単に見れるものもあるのでとりあえずどんなもんか見てみることをしてみようと思う。それによって実はこれ、レガシーコードじゃん!と思うものがあるのかもしれないので見つけてみたい。

自分の中ではCHAPTER-3 のコードを読む技術が面白かった。 コードにたくさん触れることしかできることはなく、仕事で触れるものだけではなくOSS のコードなど本当にたくさん触れていくのが良いのだと紹介されている。ここでたくさん触れることにより、時勢で流行っているものを理解することもできるらしい。これらを学ぶことによって、なぜこう行った記述なのかなどを考えれるようにもなる。そうするとリプレイスすべき箇所についても勘がきくようになるようなので、とりあえず使っているOSS あたりから読んでみることを試してみようと思った。

レガシーコードの改善方法としてもいくつか紹介されている。そのうちのいくつかは、ドキュメントを書く、チーム開発できる環境づくり、コーディングルールの整備、CI/CD 準備などがある。最初に紹介されているのがドキュメントを書くこと、また更新し続けることというのは確かにと思った。コードを読めば書いてあると言っても読むのは時間がかかるので、少しでも時間を省略できるようになっているのはとても役に立ちそう。ドキュメント無いものばかりだから、そこにも時間をかけないとな。

まとめ

  • 経営側の視点での説明が書かれているのは面白かった
  • 自分のところでやることは一杯だなと再認識
  • 自分でできることとしてコードを読む時間を作ろう