壊れやすいシステムを育てる

第2章

「処方薬・所見・次回予約を診察に紐づけたい」

執筆中

降ってくる要件

「診察中の来院には担当獣医を、会計済みには診断名・処方薬・処置内容・次回予約日を紐づけたい」という要件が降ってきます。状態ごとに必要なデータが違うことが顕在化します。

既存コードを動かしてみる

git checkout step-02-start
pnpm test

素朴にエージェントに依頼してみる

本章は執筆中です。

何が痛いのか

オプショナルプロパティが増え続け、状態とデータの整合性をコメントとロジックで担保するしかなくなります。

どう直すか — 原則の紹介

本章で導入する原則:

  • Discriminated Union の各バリアントへの固有フィールド
  • Companion Object パターンによる状態に紐づくロジックの一体管理

リファクタを進める

本章は執筆中です。

章末の姿と次章への布石

次章では「外部の検査機関APIから検査結果を取り込みたい」という要件を起点に、Zod スキーマによる境界防御と Always-Valid Domain Model を導入します。