レガシーコード改善ガイド
本を読み始めたので、読みながら自分用のメモを書いていきます。
前書き
この本に「(古いコードが)質の向上するソフトに変える方法が書かれている」ことを前書きが教えてくれます。
(序)
- 人生を変えるほどのソフトウェアへの情熱
- プログラミングは楽しい、素晴らしい
- プログラマの心のなかで穢れのない水晶のように輝いていた設計
(破)
- ソフトウェアは、汚く滅茶苦茶になってしまう
- 顧客が要求を変えたから
- 要求の変更に耐えられない設計は、悪い設計
- 変更に耐えられる設計は、難しい
- 変更に耐えられず腐敗したコードを「レガシーコード」と言う
- レガシーコードって嫌だよね
- レガシーコードに取り組む苦痛のせいで、プログラミングの情熱の炎が消されてしまうかも
(急)
- コードがレガシーになることを「防ぐ」方法をさがしたけど、防ぐだけじゃ不十分
- コードがレガシーになることを「逆戻りさせる」必要がある。これが本書のテーマ
- 簡素できちんと構造化された優れた設計のシステムに変えていく
- 簡単ではない。時間がかかる。手間と忍耐力と慎重さが必要。魔法の弾丸ではない
- 本書には「規律」「概念」「姿勢」がかかれている。これらによって質の向上するソフトウェアに変えていくことができる
はじめに
- コンピューターで何かを動かすという純粋な喜びが、あなたをこの仕事に就かせた理由かな?
- でも、その喜びの中で仕事ができていますか?日常の中で埋もれていませんか?
- 頑張ってはいるものの、レガシーコードを書いてしまっています。
- スケジュールのプレッシャー
- 過去のしがらみ
- 見本となるすぐれたコードがない
レガシーコードとは
レガシーコードとはテストのないコードである
- テストがないコードは悪いコード
- 以下は無関係
- どれだけうまく書かれているか
- どれだけ美しく設計されているか
- オブジェクト指向かどうか
- カプセルかされているかどうか
- 以下は無関係
- テストがあれば検証しながらコードの動いを素早く変更することができる
- テストが無ければ、(コードを変更しても)良くなってるのか悪くなってるのか分からない
- 綺麗なコードのほうがいいけど。