Plausível mas errado: o problema da revisão de IA
Confiante e errado não são opostos
Um assistente de IA sugere uma validação, uma consulta ou uma action de controller inteira, e cada linha parece algo que um desenvolvedor Rails competente escreveria: indentação arrumada, os nomes de método certos, os idiomas de sempre do Rails. Nada disso diz se o código está certo. A fluência de um modelo de linguagem vem dos dados de treinamento, não do seu requisito específico, e as duas coisas não têm ligação necessária.
Por que este hábito não vem naturalmente
Lendo o pull request de outra pessoa, um desenvolvedor espera erros e lê na defensiva. Uma sugestão de IA dentro do seu editor, já nas suas convenções, parece mais o seu próprio código um minuto depois de escrito. E desenvolvedores passam os olhos no próprio código com muito menos crítica que no de um estranho. A IA não fez nada para despertar suspeita; escreveu Ruby limpo e idiomático. Esse é o problema.
Quatro perguntas, sempre
Este curso monta uma checklist repetível, aplicada a toda sugestão de IA antes de você aceitá-la:
- Faz o que foi pedido, ou só parece uma resposta?
- Introduz um problema de segurança, que uma sugestão plausível esconde fácil?
- Duplica uma lógica que já existe em algum lugar da app?
- Segue as convenções deste código, ou inventa uma nova que por acaso é Ruby válido?
Nenhuma das quatro exige rodar o código antes. Dá para responder todas lendo, do jeito que um desenvolvedor sênior revisa um pull request antes de baixar o branch.
O que este curso cobre
- Fazer o que foi pedido: uma validação que parece certa e confere a coisa errada.
- Uma checagem de segurança, ligada a mass assignment, o buraco que Parâmetros e segurança já fechou uma vez.
- Uma checagem de lógica duplicada, usando as regras de arquitetura desta app.
- Uma checagem de convenções, contra este código e não contra o "Rails correto" em geral.
- Um exemplo completo, do começo ao fim: um método plausível de
Articlee o raciocínio que pega o que está errado nele. - Um fechamento: o que a checklist significa quando vira hábito.
No fim, "parece certo" deixa de ser motivo para aceitar uma sugestão e vira motivo para ir devagar e conferir.
Continue com a aula 2
Ela faz o que foi pedido?
Uma validação de unicidade sem escopo bloqueia títulos repetidos entre autores; o scope: :author_id aplica a regra pedida.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.