あっさりと

ソフトウェアや技術話など諸々

Clean Architecture 達人に学ぶソフトウェアの構造と設計 を読んで

全体の感想

事前の予想ではもっとテクニカルな内容かと思っていたが、大部分は筆者の50年に及ぶ経験(!)に基づく良いアーキテクチャの原則が語られている。
ちょっと昔話が多い気もするが体験談形式なので技術面のハードルが高い訳ではなく読みやすい。

・重要なビジネスロジックを上位の方針として分離しそれを中心に開発する
・フレームワークやDB入出力を含む実装は下位レベルの詳細として上位ロジックに依存させる
・依存性の方向をコントロールする
・コンポーネントの境界を意識する 


大部分は上記の様なクリーンアーキテクチャの基本原則を様々なプロジェクトの成功や失敗の体験談を通して語っている。

技術面

技術的原則で触れられていたのは以下辺り。*1

・単一責任の原則
・オープン、クローズドの原則
・リスコフの置換原則
・インターフェース分離の原則
・依存性関係逆転の原則 

・閉鎖性共通の原則
・再利用、リリース等価の原則
・全再利用の原則
・非循環依存関係の原則
・安定依存の原則
・安定度、抽象度等価の原則


おすすめ読者層

  • 良いソフトウェア設計とは何かを学びたい人

  • 局所的なコーディング業務しか携わっていないが全体のアーキテクチャに対して理解を深めたい人

  • Web系開発に限定されず組み込み開発や他の分野のソフトウェアエンジニア

印象に残った内容

  • プログラミングパラダイムは構造化、オブジェクト指向、関数型の3つのみ

  • 1966年に関数呼び出しスタックをヒープに移動出来る事を発見した事がオブジェクト指向の原理に繋がっている

  • アーキテクチャは叫んでいるか?(上位のビジネスロジックが中心となった構造をしているか?)

  • 抽象に依存せよ(依存と抽象度のグラフ等)

  • 1960年代の38インチ ストレージ ディスクがもし緩んで飛び出すと壁を突き破る可能性が有ったw

雑感

  • 設計力は急に伸びないので常に意識して積み上げる必要が有る

  • DDDも読まないと。。

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

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

*1:色々な所で語られている基本原則