LoginSignup
2
1

More than 3 years have passed since last update.

クリーンアーキテクチャを読んだ所感

Posted at

はじめに

クリーンアーキテクチャ 達人に学ぶソフトウェアの構造と設計
難易度★★☆
優先度★★☆

読む価値のある本だったと思います。
アーキテクチャ(設計)という言葉の意味に深みができました。
今まで設計とは、上流であるというざっくりとしたイメージしかありませんでした。

内容を知るためには、書籍を読むこと。
参考のリンク先で簡潔にまとめられているので、振り返りによし。

ソフトウェアのアーキテクチャ(設計)とはなにか

なるべく長期間、選択肢をより多く残し続けること。
仕様要求は時間とともに変わっていく。
そのためにはモジュールを変更コスト・リスクが小さくなるように
モジュールを分割をしていかなければならない。

分野によってはこの志向をアーキテクチャと呼ぶには適しないかもしれないが、
この発想はいろんなところで応用できる気がします。

アーキテクト(設計士)の仕事は何か

アーキテクトはより有効なアーキテクチャを維持することに責任を持たなければならない。
DBをOracleかMySqlに決定することは、本筋ではない。
あとから使用するDBが変わっても、あるいはCsv読み取りに変わったとしても、
変更コストとリスクが小さくなるような設計が理想。
人月商売を売る側にとってはメリットが少ない。

管理を肥大化させない、未来の選択肢を残し続ける。
両方しないといけないのが、アーキテクトのつらいところだな。
覚悟はいいか?俺はできてる。

モジュール間の依存方向を意識し続けること

より固いもの(変わりにくいもの)が、より依存されるべきである。
一例としては、ViewがModelに依存するべきであって、逆は正しくない。

以前から似たような設計はできていたが、読んだら明確に判別ができるようになった。
血管の逆流防止弁とか、S字トラップとかのイメージ。

ファームウェア

ファームウェアはソフトウェアとハードウェアの中間に存在する。
ファームウェアも変わるため、ファームウェアに依存しないソフトウェア設計が理想。

参考

達人に学ぶソフトウェアの構造と設計

ソフトウェアアーキテクチャについての個人的なまとめ

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1