Open3

Googleのソフトウェアエンジニアリング―持続可能なプログラミングを支える技術、文化、プロセス

pofipofi

1章 ソフトウェアエンジニアリングとは何か?

プログラムにはどこかでアップグレードが重要となる分岐点がでてくる。
使い捨てプログラム、数十年存続するプロジェクト等

アップグレードは経験を必要とし、想定外のことが起こりやすいので苦行となる。
しかし、苦行を切り抜けるだけでなく、最新版に追随していけることがプログラムの長期的持続可能性で重要である。

pofipofi

時間の経過とともに起こる変化と保守では、Hyrumの法則を認識する必要がある。
システムに十分なユーザー数がいれば、軽微な変更ですらシステムに依存するものを破綻させる。
そのため、変更する場合は破綻の程度も調査する必要がある。

Hyrumの法則:APIの仕様に何が書かれているかが重要ではなく、システムから観察できるあらゆる挙動にユーザーは依存するようになる。

変更が必要なものを存続期間中に安全に変更できることが、組織のコードベースが持続可能といえる

インフラストラクチャーの変更が頻繁になるほど、実装の細部に依存しなくなり、変更が用意になる