Modelul mental: un junior rapid și încrezător
Lectură estimată: 4 minute
Estimare pentru text, la un ritm de 180 de cuvinte pe minut. Timpul pentru analizarea codului, exerciții și proiecte se adaugă separat și depinde de ritmul tău.
Problema pe care o vei rezolva: Refactorizare cu acces interzis verificat
Aplicație fictivă: documentul 17 aparține utilizatorului A. B este autentificat, dar nu este proprietar. Formularul acceptă title, iar owner_id nu este modificabil. Titlul are între 1 și 120 de caractere.
Rezultatul urmărit
Pregătește testele pentru A cu titlu valid, A cu titlu gol, B cu titlu valid și A cu owner_id trimis suplimentar. Cere asistentului un patch mic și revizuiește diferența înainte de aplicare.
Cum recunoști o soluție corectă
A poate schimba titlul valid; cererea invalidă nu modifică baza; B primește refuz; owner_id rămâne al lui A. Nu este suficient să verifici numai codul HTTP dacă o scriere neautorizată tot a avut loc.
Parcurge lecțiile în ordine și păstrează exercițiile în registrul descărcabil. Ultima lecție include atelierul de 40 de minute în care combini conceptele și testezi o variație a situației inițiale. Exemplele comerciale sunt fictive; nu reprezintă rezultate ale unor clienți.
Modelul mental corect pentru un asistent AI de programare: un dezvoltator junior foarte rapid, care a citit enorm, scrie cod plauzibil în secunde, dar nu a rulat niciodată codul tău, nu cunoaște contextul proiectului și e la fel de sigur pe sine când greșește ca atunci când are dreptate. Tot ce urmează derivă din această imagine.
Ce face bine
- Cod „de plumbărie": parsare, transformări, formatare, boilerplate.
- Explică cod pe care nu îl înțelegi și traduce între limbaje.
- Generează teste pentru o funcție dată.
- Sugerează abordări și îți amintește API-uri.
- Găsește bug-uri evidente când îi dai eroarea și contextul.
Unde greșește
- Presupune versiuni de biblioteci sau API-uri care s-au schimbat.
- Inventează funcții sau parametri care „ar trebui" să existe.
- Ratează efecte secundare și cazuri-limită specifice codului tău.
- Îți dă cod care „arată bine" dar nu se integrează cu restul.
Consecința practică
Tratezi orice cod generat ca pe un pull request de la un junior: îl citești integral, îl rulezi, îi scrii sau verifici testele. Nu îl lipești în producție pentru că „pare corect". Viteza vine din a nu scrie de la zero, nu din a sări peste review.
Exercițiu
Cere-i o funcție mică într-un limbaj pe care îl cunoști bine. Citește-o linie cu linie și notează: câte linii sunt corecte, câte au probleme subtile, ce ai fi ratat dacă nu verificai.
Greșeli frecvente
- Lipești cod generat fără să-l citești integral.
- Presupui că folosește versiunea ta de bibliotecă.
- Nu rulezi codul înainte de a-l considera gata.
- Confunzi „compilează" cu „e corect".
De reținut
- Model mental: junior rapid, citit mult, zero context pe proiectul tău.
- Excelent la boilerplate, transformări, explicații, teste.
- Slab la integrare, efecte secundare, versiuni actuale.
- Codul generat = PR de junior: citește, rulează, testează.
Pe scurt
Un asistent de cod îți economisește tastarea, nu gândirea. Câștigul e real dacă păstrezi review-ul și rularea.
Asistent de cod evaluat prin comportament, nu prin încredere
Un asistent poate propune repede cod plauzibil și totuși poate greși contractul, dependențele sau permisiunile. Evită să tratezi metafora unui coleg drept dovadă de competență. Pentru un formular simplu, descrie comportamentul observabil și cere o schimbare mică. Revizuirea trebuie să urmărească intrări invalide, accesul la datele altui utilizator și efectele secundare. Explicația generată nu înlocuiește rularea testului.
Exemplu de lucru
Cerință: formularul acceptă email valid și mesaj 10–500 caractere.
Cazuri: email invalid; mesaj gol; mesaj prea lung; intrare validă.
Restricții: nu schimba schema bazei și nu trimite email real în test.
Livrabil: modificare minimă + teste + limitări declarate.Interpretarea rezultatului
O implementare este acceptată dacă toate cazurile sunt verificate și nu introduce expediere reală sau schimbări de schemă. „Ar trebui să funcționeze” este o ipoteză. Păstrează logul comenzii de test și diferența de cod pentru a putea reproduce verificarea.
Exercițiu de consolidare
Adaugă cerința ca mesajul să nu poată conține numai spații. Verifică dacă testul nou eșuează înaintea corecturii.
Aplicație practică
Sarcina
Cere unui asistent o funcție mică și verifică trei cazuri-limită.
Rezolvare orientativă și verificare
Pentru transformarea unui slug, testează diacritice, spații multiple și text gol. Acceptarea depinde de rezultate, nu de explicația asistentului.
Greșeală de evitat
Codul care arată plauzibil poate rata exact cazul folosit în producție.
Documentație și surse
- Prompt engineering overview — Anthropic
- OWASP Top 10 — OWASP
Materiale pentru această lecție
Ți-a plăcut lecția? Continuă cursul complet
Ai citit o lecție gratuită. Celelalte lecții, aplicațiile practice și materialele se deblochează odată cu cursul.
149 lei
Plată unică, acces pe viață la toate cele 7 lecții.
Vezi ce conține cursul →