KADOKAWA出版のクリーンアーキテクチャを読む機会があったので、これらの内容とこれまでの実体験がどのようにリンクできるのかちょっとメモをしておく。
本の感想も含む
第1部 イントロダクション
1章 設計とアーキテクチャ
優れたソフトウェアの設計の目的
- ソフトウェアアーキテクチャの目的は、求められるシステムを構築・保守するために必要な人材を最小限に抑えることである。
- 実際問題、設計がグダグダたとちょっとした変更しようものならいろんなバグを引き起こす。
- かなりしんどかったイメージしかない
- それを防ぐために、設計をキレイにしておかないと、あとあと大変なことになってしまう
- 実際問題、設計がグダグダたとちょっとした変更しようものならいろんなバグを引き起こす。
- 人員を増やしたところで開発速度は比例するのではなく、漸近線にしたがっていく
ソフトウェアが大きくなるにつれて
- エンジニア視点からはどんどん生産性がひくくなっていく
- 経営者視点からは給与が高くなっていく
- コストと生産性が反相関関係
短期的にも長期的にもむやみに書いたコードだと速度があがらない(らしい)(短期的には本当かな??長期的にはむやみに書いたコードは地獄を見ることを経験済み)
2章 2つの価値のお話
ソフトウェアという名前通りに簡単に変更できるようにしておかないといけない
- ビジネス的にはソフトウェアが動けば重要
- エンジニア的には動かなくても変更が簡単なプログラムのほうが重要
そのうち変更するコストが高くなり、変更が事実上できなくなるシステムができあがる
緊急と重要の2種類の問題がある。緊急と重要は違う。重要なことが緊急になるわけではない。
-
- 個人的な理解としてエラーコードを吐いているのでそれを取りのぞくことが重要ではあるが、アプリケーションの動作自体には問題を与えないので緊急ではないこともある。それが、バグ潰しにおける取捨選択になってきたりするのかも
- 設計を後回しにしておくと、システムの開発コストが格段に上がり、変更不可能になるコードがでてきていてもおかしくない。
- 間違いない。設計を完璧にしなくても、ちゃんとクラスを細々と切っていったりテストコードが記述されていれば全然いいんだけど・・・まぁそれができない人もいることは事実