書籍
A Philosophy of Software Design, 2nd Edition
John Ousterhout
概要
ソフトウェアの複雑性をいかに管理するかという普遍的な設計哲学を説く。 「深いモジュール」や「複雑性の下流への押し下げ」といった概念は、 フロントエンドのコンポーネント設計にも直結する。
対象読者
- シニアエンジニア・テックリード
- ソフトウェア設計の原則を深く学びたい開発者
タグ
奥付
- 出版社
- Yaknyam Press
- ISBN
- 978-1732102217
- 出版日
- 2021年12月
この本を手に入れる
※ 上記は Amazon アソシエイトによる広告リンクです。関連書籍
前提となる書籍
- 推奨前提
Clean Architecture
達人に学ぶソフトウェアの構造と設計
Robert C. Martin
理由: 依存と境界の原則を得たら、その根底にある「複雑性をどう抑えるか」という普遍的な問いへ降りる。Ousterhout は深いモジュール・情報隠蔽という観点で複雑性管理を体系化する。
- 参考
Effective TypeScript 第2版
型システムの力を最大限に引き出す83項目
Dan Vanderkam
理由: 型を使って堅牢なコードを書けるようになると、より根源的な問い――複雑さそのものをどう抑えるか――に向き合いたくなる。A Philosophy of Software Design は深いモジュール・情報隠蔽といった原則で、型の前提にある「設計の良し悪し」を言語化する。
- 参考
マイクロフロントエンド
マイクロサービスアーキテクチャの概念をフロントエンドに拡張する
Luca Mezzalira
理由: フロントエンドを分割・合成する設計を経験すると、その判断の根っこにある「複雑さとどう向き合うか」という普遍的な問いに行き着く。A Philosophy of Software Design はモジュールの深さや認知負荷の観点から、分割の良し悪しを見極める言葉を与える。
- 参考
リファクタリング
既存のコードを安全に改善する 第2版
Martin Fowler
理由: 戦術的な改善手段を持ったら、「なぜ改善するのか」の戦略的視点=複雑性の正体へ視野を上げる。リファクタリングの判断基準に「複雑性を減らせているか」という軸が加わる。
次に読む書籍
- 参考
エリック・エヴァンスのドメイン駆動設計
Eric Evans
理由: 複雑性を抑える普遍原則を得たら、それをドメインの複雑性に特化して適用する。DDD はビジネスに内在する本質的な複雑性を、モデルとユビキタス言語で飼いならす。
- 参考
データ指向プログラミング
ソフトウェアがもつ複雑さの軽減に向けて
Yehonathan Sharvit
理由: 複雑性管理の一般原則を得たら、その具体的な処方の一つとして「データと振る舞いの分離・不変性」を掲げるデータ指向プログラミングを検討する。同じ目的に異なる道がある。