Especifique Entradas, Saídas e Casos de Borda
Uma tarefa só está definida quando seus limites estão definidos. Engenheiros experientes pensam em termos de "o que entra, o que sai, e o que acontece quando algo dá errado". Incorpore isso ao .
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.
Quando você nomeia os casos de borda, a IA os trata. Quando você não nomeia, ela escreve o caminho feliz e você descobre as lacunas em produção. A mesma disciplina se aplica além de funções puras: para um , especifique a resposta de sucesso e as respostas de erro (qual código de status em caso de e-mail duplicado? em caso de corpo malformado?). Para um componente de interface, especifique o estado vazio e o estado de carregamento, não só o estado populado. O comportamento interessante da maioria dos softwares vive nas bordas, então é ali que seu prompt deve gastar suas palavras.
Se você não tiver certeza de quais são os casos de borda, pergunte primeiro à IA: "What cases should a date parser handle?" — e depois devolva a resposta como restrições. Isso transforma o modelo de um gerador de código em um gerador de checklist, e revisar uma checklist é mais rápido do que depurar os casos que você esqueceu.