Shimmy
naoya7076
複数のバリデーションが1つの巨大な関数に詰め込まれ、フラグで状態管理し、UIへの反映と判定ロジックが混在している
そんなコードに出会ったことはありませんか?
この問題を解決するのが「Railway Oriented Programming(ROP)」と「Result型」です。
ROPはエラーをthrowせず「値」として返すことで、副作用のない純粋関数としてバリデーションを記述できます。
fp-tsやneverthrowもありますが、限られたスコープではシンプルな自前実装が「ちょうどいい」選択になることも多いです。
本セッションでは、以下のブログをベースに、ROPの概念と自前実装の設計判断を加えてお話しします。
https://kaminashi-developer.hatenablog.jp/entry/typescript-rop-result-validation-design