このルールに違反している場合は適切なエラーハンドリングを行っていないことを意味す m 公式で紹介されているmdbetancourt/eslint-plugin-neverthrowはeslintのflatConfig非対応なの で最新のeslintを使う場合はフォーク版の@bufferings/eslint-plugin-neverthrowを利用する
数字などのプリミティブ型からuuidだったりbase64文字 列のような特定ユースケースで使えるものまで存y Ü 独自のジェネレータも容易に定義できÐ Ü 失敗したテストを最小限のテストケースにして反例を見つけ る縮小(Shrink)に対応 テストフレームワーク中s Ü あくまでプロパティに基づいたテストケースを生成すること に特 Ü アサーションを行う部分は他のテストフレームワークを使う のでJestでもVitestでもなんでも使用可能 豊富な実 Ü react、jestやjs-yamlなどライブラリ開発で活用されバグの発 見に貢献している
y 一番質を保ちたいDomain層のみをResult型にしてアプリケーションサー ビス層(ユースケース)でResult型を例外に変えてしまB y 例外とHTTPレスポンスの対応はフレームワークに任せ y インフラ層(ORM)の例外をResultにするのも辛 y 重要なビジネスロジックが集中するドメイン層で、エラー状態を明示的 に表現することで品質向上につながる 規模の大きなアプリケーションに適用す y 小規模なアプリケーションではビジネスロジックも限られており、Result 型とPBTによる堅牢性向上よりも、実装工数の増加による負の面が大き y 大規模アプリケーションでは、複雑な状態遷移や例外的なケースが増え るため、Result型の利点が活き y チーム開発において、エラー処理の一貫性とコード品質の標準化に役立 つのでチームを啓蒙しながら適用していく PBTにこだわりすぎなä y 事例ベースにテストで十分な場合も多いは§ y 様々なパターンを網羅的に検証すると大変みたいなものからPBTの適用を 始めるべき (B2Bの帳票はこの特徴を満たす£ y どうしても独自のジェネレータは慣れるまで工数増につながる上、テス トオラクル問題を産 y 入力値に対して期待値をどうやって作るかの問 y PBTでは入力値がランダムなのでともすればテストコードで実装と同 じコードを書くような無意味なテストを生みかねない 全てのドメインに適用しなä y 理想的には全てのドメインに適用した方が統一的かつ品質的にも望まし いがとくに重要で複雑なビジネスロジックを持つドメインから適用を始 めて効果を検証するのが現実 y CRUDベースの単純なドメインよりも、複雑な状態管理や計算ロジックを 持つドメインを優先する