Tentukan Input, Output, dan Kasus Tepi (Edge Cases)
Sebuah tugas belum terdefinisi sampai batasannya jelas. Insinyur senior berpikir dalam kerangka "apa yang masuk, apa yang keluar, dan apa yang terjadi ketika ada yang salah." Sematkan itu ke dalam Anda.
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.
Ketika Anda menyebutkan kasus-kasus tepinya, AI akan menanganinya. Ketika Anda tidak menyebutkannya, AI hanya menulis jalur yang mulus (happy path) dan Anda baru menemukan celahnya di produksi. Disiplin yang sama berlaku di luar fungsi murni: untuk sebuah , tentukan respons sukses dan respons error (kode status apa untuk email duplikat? untuk body yang salah format?). Untuk komponen UI, tentukan keadaan kosong dan keadaan loading, bukan hanya keadaan terisi. Perilaku menarik dari sebagian besar perangkat lunak ada di bagian tepinya, jadi di situlah prompt Anda seharusnya menghabiskan kata-katanya.
Jika Anda tidak yakin apa saja kasus tepinya, tanyakan dulu ke AI: "Kasus tepi apa saja yang harus ditangani oleh parser tanggal?" — lalu masukkan jawabannya kembali sebagai batasan. Ini mengubah model dari generator kode menjadi generator daftar periksa, dan meninjau daftar periksa lebih cepat daripada men-debug kasus yang terlupa.