TL;DR
- 要件が変わったら、必ず最初にドメインモデルを見直す。
- 型駆動設計のおかげで、変更によって壊れた箇所はコンパイルエラーとして見つかる。
内容
要件が変わったときは、コードより先にドメインモデルを見直す。
型駆動設計で作ったシステムは、変更に強い。ドメインオブジェクトを変更すると、影響する箇所でコンパイルエラーが出るので、誤って壊す心配がない。ワークフローに依存関係を追加したときも、同じようにコンパイルエラーが出る。
ワークフローに新しいステップを追加するときは、他のステップに手を加える必要がない。これはオープン・クローズドの原則に沿っている。また、入力と出力の型が同じであれば、互換性を保ったまま関数の中身を変更できる。