Context de cod: cât și cum lipești
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.
Calitatea răspunsurilor de cod depinde aproape complet de contextul pe care îl dai. Modelul nu vede repository-ul tău. Dacă ceri „adaugă validare la formularul de contact" fără să arăți formularul, controllerul și convențiile proiectului, primești cod generic care nu se potrivește.
Ce context contează
- Fișierul sau funcția pe care o modifici, integral.
- Fișierele adiacente care arată convențiile (cum se face validarea în altă parte).
- Versiunile: limbaj, framework, biblioteci relevante.
- Ce ai încercat și mesajul de eroare exact, dacă e cazul.
- Constrângeri: „nu adăuga dependențe noi", „păstrează stilul existent".
Cât lipești
Suficient cât modelul să înțeleagă tiparul, nu tot proiectul. Pentru o modificare într-un controller: controllerul, modelul implicat, un exemplu de controller similar deja scris. 3 fișiere bine alese bat 20 lipite la întâmplare.
Arată convențiile
Modelele imită. Dacă în proiectul tău validarea se face în Form Requests, arată un Form Request existent și spune „urmează exact acest tipar". Altfel îți va da validare inline în controller, „corectă" dar în afara stilului tău.
Erori: contextul complet
Când ceri ajutor la un bug, dă: codul relevant, mesajul de eroare integral (cu stack trace), ce ai încercat, și ce te aștepți să se întâmple vs. ce se întâmplă. Un „nu merge" fără astea produce ghicit.
Prompt bun pentru o modificare
„Proiect Laravel 11. Vreau să adaug validare la stocarea unui articol. Mai jos: ArticleController@store actual, și un exemplu de Form Request deja folosit în proiect (PostRequest). Scrie un ArticleRequest în exact același stil și modifică controllerul să-l folosească. Nu adăuga pachete."
Exercițiu
Ia o sarcină reală de cod. Scrie promptul o dată cu context minim, o dată cu fișierul complet + un exemplu de cod similar din proiect. Compară cât de aproape de „gata" e fiecare rezultat.
Greșeli frecvente
- Ceri o modificare fără să arăți codul care se modifică.
- Nu arăți un exemplu de cod similar, deci modelul ignoră convențiile tale.
- Dai „nu merge" fără mesajul de eroare complet.
- Lipești 30 de fișiere și îneci semnalul.
De reținut
- Modelul nu vede repo-ul; contextul e totul.
- 3 fișiere bine alese (țintă + model + adiacent) bat 20 la întâmplare.
- Arată convențiile printr-un exemplu existent.
- La bug-uri: cod + eroare completă + așteptat vs. actual.
Pe scurt
Dă modelului fereastra corectă spre proiectul tău: fișierul țintă, un exemplu de stil, versiunile și eroarea exactă. Restul e mult mai bun.
Context minim suficient pentru o modificare de cod
Nu lipi întregul proiect când problema este într-o funcție. Oferă semnătura, un apel reprezentativ, comportamentul actual și cel dorit. Păstrează numele tipurilor și versiunile relevante, dar înlocuiește secretele și datele clienților. Un fragment fără context poate produce un patch incompatibil; prea mult context poate ascunde informația decisivă. Arată și ceea ce nu trebuie modificat, mai ales contractele publice și limitele de autorizare.
Exemplu de lucru
Funcție: normalizeEmail(string $email): string
Actual: transformă în litere mici, păstrează spațiile.
Dorit: elimină spațiile de la capete și normalizează literele.
Apel: normalizeEmail(' ANA@EXAMPLE.TEST ')
Așteptat: ana@example.test
Nu modifica: formatul răspunsurilor API sau schema bazei.Interpretarea rezultatului
Contextul este suficient pentru a discuta transformarea și testul, fără a expune configurația de mail. Normalizarea nu înseamnă validare: un șir poate fi normalizat și totuși să nu fie adresă validă. Păstrează aceste responsabilități distincte în cod și teste.
Exercițiu de consolidare
Adaugă un șir gol și unul cu spații în interior. Stabilește ce ține de normalizare și ce ține de validarea formularului.
Aplicație practică
Sarcina
Pregătește un context minim de cod pentru depanarea unui formular.
Rezolvare orientativă și verificare
Include versiunea limbajului, funcția relevantă, intrarea anonimizată și eroarea. Elimină parolele și fișierele .env.
Greșeală de evitat
Un repository întreg nu este necesar pentru orice problemă.
Documentație și surse
- Prompt engineering overview — Anthropic
- OWASP Top 10 — OWASP
Ț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 →