~/VibeHandbook
無料 PDF

08 · 02

入力、出力、エッジケースを指定する

タスクはその境界が定義されるまで定義されていない。シニアエンジニアは「何が入り、何が出て、物事がうまくいかないとき何が起きるか」という観点で考える。それをプロンプトに焼き込もう。

日付文字列をパースする関数を書いて。
parseDate(input: string): Date | null という関数を書いてください。

入力: ISO 8601 文字列 ("2026-06-14", "2026-06-14T10:30:00Z")。
出力: Date オブジェクト、文字列が不正なら null。

処理すべきエッジケース:
- 空文字列または空白 -> null
- フォーマットは有効だがあり得ない日付 (2026-02-30) -> null
- 末尾にゴミ ("2026-06-14xyz") -> null

throw しないこと。不正な入力はすべて null を返す。

エッジケースを名指しすれば、AIはそれらを処理する。名指ししなければ、ハッピーパスを書き、あなたはプロダクションで抜け穴を発見する。同じ規律は純粋関数の外にも当てはまる。エンドポイントなら、成功レスポンスに加えてエラーレスポンスも指定せよ(重複したメールにはどのステータスコード? 不正なボディには?)。UIコンポーネントなら、埋まった状態だけでなく、空の状態とローディング状態も指定せよ。ほとんどのソフトウェアの興味深い挙動はその縁に住んでいる。だからそこにこそ、あなたのプロンプトは言葉を費やすべきだ。

エッジケースが何か分からないなら、まずAIに尋ねよ。「日付パーサーはどんなエッジケースを処理すべき?」——そしてその答えを制約としてフィードバックする。これはモデルをコードジェネレーターからチェックリストジェネレーターに変える。そしてチェックリストをレビューする方が、忘れたケースをデバッグするより速い。

オフラインでも読みたい?

本編まるごとを PDF または EPUB で無料ダウンロード。