Exercici de revisió de codi · 8 min
Reviseu un canvi generat amb IA
Examineu un endpoint breu. Decidiu quines evidències necessiteu abans d'acceptar el canvi.
La situació
Un assistent d'IA proposa un endpoint de factures. Un usuari que ha iniciat sessió només ha de veure les factures de la seva pròpia organització. Reviseu el canvi abans que es pugui publicar.
Què cal fer
- Llegiu el codi i la seva explicació en llenguatge planer. No cal que l'executeu.
- Trieu totes les comprovacions necessàries abans de l'acceptació. Comproveu les respostes, llegiu els motius i torneu-ho a provar si falta alguna comprovació.
Reviseu aquesta PR. La funcionalitat només ha de retornar una factura a un usuari autenticat de la mateixa organització. El fragment és incomplet.
// Fictional, incomplete example. Do not deploy.
app.get('/invoices/:id', async (req, res) => {
const invoice = await db.invoice.findUnique({
where: { id: req.params.id }
});
console.log('Invoice response', invoice);
return res.json(invoice);
});Què fa el codi?
L'endpoint agafa un identificador de factura de la petició, recupera aquella factura, la registra sencera i la retorna. El fragment no mostra qui comprova el dret de l'usuari a accedir a aquesta factura.
L'autenticació comprova qui és l'usuari. L'autorització comprova què pot fer. El middleware és codi que processa la petició abans d'aquest endpoint. Pot contenir comprovacions que no apareixen en aquest fragment.
PER ACABAR
Una petició reeixida demostra que l'endpoint de factures és segur?
Compareu la vostra resposta amb l'explicació
No. Demostra que una petició ha funcionat. També necessiteu evidències que un usuari no pot llegir una factura d'una altra organització. Examineu el recorregut complet de la petició, el comportament quan falta el registre i els registres d'activitat. Una prova superada ha de cobrir el requisit que importa.
Apliqueu-ho a la feina
A la vostra pròxima revisió de PR, afegiu una prova d'una acció que s'hagi de denegar.
Tria un altre exercici