#software-design
- 後からよい設計が見つかっても当初の判断が誤りだったとは限らない
- 抽象化は複雑さを隠すが下位層の性質までは消せない
- AIを使った開発では受け継いだ設計を具体的に明示する
- 可逆性の異なる変更は概念境界の手がかりになる
- 共通性は同じ理由で変わるという仮説である
- コンポジションは実装の再利用とサブタイプ関係を分離する
- コンセプトの振る舞いがドメインモデルに含める情報を絞る
- コンセプトの境界は利用者の理解にも関わる
- コンセプトの粒度は独立して果たせる一つの目的から考える
- コンセプトの状態は振る舞いに必要な関係を記録する
- コンセプト間の接続規則は合成時の同期に置く
- コンセプトはデータの名前より振る舞いから見つける
- コンセプトは個々のオブジェクトをまたぐ関係を所有できる
- コンセプトは発明された仕組みとして改良される
- 概念設計は予見できない変更をなくすのではなく局所化する
- デザインのコンセプトはメンタルモデルの根拠になる
- 設計パターンの適用判断は具体的な変更を当てて確かめる
- 設計の記録には選択を見直す条件を残す
- 設計の振り返りでは当時の費用に見合う情報の得方を探す
- 汎用的なコンセプトは対象を変えても同じ振る舞いを保つ
- リスコフの置換原則は同じ結果ではなく上位型の契約を保つことを求める
- 副作用を境界へ集めると業務判断を純粋な関数にできる
- ドメインモデルの純粋性を守るために業務ルールの分散を許容できる
- ソフトウェアの設計パターンはアレグザンダーの生成過程を部分的に継承した
- Template Methodは処理手順を共通の契約として固定する