何が起きたか
S5 の到達点 examples/session-07 では、診察開始の入力、業務上の失敗、出力イベント、保存、例外経路を分けました。最後の5分は、この5つの境界が参照実装でも保たれているかを確認します。
今回の完了条件: 技術要素の数ではなく、ユースケースを構成する5つの境界を説明できることです。
5分で境界を確認する
- 1分目: 入力境界
examples/final/src/adaptor/primary/web/routes/appointmentRoutes.tsで診察開始のHTTP入力を検証し、ユースケース入力へ変換する箇所を探します。 - 2分目: 業務上の失敗
examples/final/src/useCase/startExaminationUseCase.tsで、予約なし・状態不正・予約競合が型付きのErrとして残ることを確認します。 - 3分目: 出力イベント
examples/final/src/useCase/startExaminationUseCase.tsで、業務検証に成功した経路だけがイベント生成へ進むことを確認します。次に、examples/final/src/domain/appointment/appointment.tsのstartExaminationがExaminationStartedを作ることを確認します。 - 4分目: 副作用
examples/final/src/adaptor/secondary/sqlite/store/appointmentEventStore.tsで、予約状態と監査用イベントを同じ保存境界へ渡すことを確認します。 - 5分目: 例外境界
SQLite障害や破損データが業務Resultに入らず、examples/final/src/app.tsの共通境界で安全に記録され、詳細を含まない500応答になることを確認します。
自習では、検査結果の到着やフォローアップ依頼など、別のきっかけから始まるユースケースを1つ選び、同じ5項目を辿ってください。境界が見つからない箇所は、次に試す小さな改善候補です。