境界づけられたコンテキストの中のコード構造
https://scrapbox.io/files/66909374566dc7001debbdee.png
コードを以下に分類する
データベース層
サービス層
API または UI 層(またはそれらの変形)
問題点
各層は「水平方向」に組み立てられているため、ワークフローの動作方法を変更すると、すべてのレイヤに手を入れる必要がある
「垂直方向」のスライスに切り替えるのが良い
https://scrapbox.io/files/669094bc3a2777001dc68aad.png
各ワークフローにはその仕事を遂行するすべてのコードが含まれている
要件が変更された場合、スライスのコードのみを変更すれば良い
ワークフローを横方向のパイプにする
https://scrapbox.io/files/6690952b54341d001c0debee.png
各層が複雑に絡み合っており、ロジックを理解する(テストをする)のが不必要に困難になっている
https://scrapbox.io/files/6690960a4edb40001c7d7b30.png
ドメインコードを中心に起き、その周りに他の側面を配置する
各層は内側の層にのみ依存し、外側の層には依存しない