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

第5章

「エラー処理が if/throw で破綻している」

執筆中

降ってくる要件

「バリデーション失敗・状態遷移違反・検査機関API障害が入り乱れ、try/catch のネストが手に負えない。エラー処理を整理したい」という要件が降ってきます。

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

git checkout step-05-start
pnpm test

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

本章は執筆中です。

何が痛いのか

throw の経路がコード上から追えず、どこで失敗が起きうるかが型に表れません。

どう直すか — 原則の紹介

本章で導入する原則:

  • Result 型
  • Railway Oriented Programming
  • ドメイン層からの throw 排除

リファクタを進める

本章は執筆中です。

章末の姿と次章への布石

次章では「ログにペットの病気の情報を出すことが法改正で禁止された」という規制起点の要件を起点に、Sensitive 型 + ログ redact による多層防御を導入します。