~/VibeHandbook
$39

03 · 02

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

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

Write a function to parse a date string.
Write a function parseDate(input: string): Date | null.

Inputs: ISO 8601 strings ("2026-06-14", "2026-06-14T10:30:00Z").
Output: a Date object, or null if the string is invalid.

Edge cases to handle:
- empty string or whitespace -> null
- valid format but impossible date (2026-02-30) -> null
- trailing garbage ("2026-06-14xyz") -> null

Do not throw. Return null for all invalid input.

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

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

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

PDF + EPUB + ダウンロード可能なプロンプトライブラリ + バージョンアップデートを入手しよう。

$ PDFを入手 — $39