単体テストの考え方/使い方
観察可能な振る舞い
実装の詳細
協力者
プロセス外依存
不変
カプセル化
ドメインの保守性
コントローラの複雑さ
パフォーマンス
決定と指揮を分離する
YAGNI原則
現時点で必要でない機能について時間を費やすべきではない
将来的に追加される機能を予想して開発したり、既存のコードを修正したりするべきではない
現時点では必要ない機能を念の為に導入することは、コードベースの所有に対するコストを不必要に費やす(コード量は少ないほど良い)
わからないこと
簡素なオブジェクト
環境コンテキスト
結論
プロセス外依存
協力者を外側に出す
ドメインロジックとコラボレーションの指揮を分ける
純粋関数となるように
- 値を渡す
副作用を端に寄せる
- ヘキサゴンアーキテクチャ、ドメインロジックとプロセス外依存を分ける?
- 協力者オブジェクトも分けると、関数型アーキテクチャになる?
取得と計算を分ける
振る舞いと実装の詳細
参考