RƏSƏDXANA

Həftə 10 · 19/23

«Hazırdır» sübut tələb edir

5 dəqiqəlik oxu

Həkim «yaxşısan» deyir. Soruşursan: nəyə əsasən? Analiz varmı, yoxsa mənzərəyə baxıb deyirsən? İkisi eyni şey deyil.

«Düzəltdim» bir iddiadır. Dəlil isə əvvəl uğursuz olub sonra keçən yoxlamadır. Build-in keçməsi yalnız kodun kompilyasiya olunduğunu deyir.

npm run check:votes   # FAIL  <- the bug is real
# ...fix...
npm run check:votes   # ok    <- and now it isn't
İki sətir arasındakı fərq dəlildir. Birinci sətir olmasa, ikincisi heç nə sübut etmir.

Çox deyilən söz: AI düzəltdiyini dedi, build keçir.

Build-in keçməsi kodun kompilyasiya olunduğunu sübut edir, başqa heç nəyi. Davranışın dəyişdiyinə dəlil lazımdır: əvvəl uğursuz olan, sonra keçən bir yoxlama; real serverə sorğu; real tətbiqdə keçid. «Düzəldildi» yazan commit mesajı sübut deyil, iddiadır.

Əvvəl qırmızı, sonra yaşıl

Xətanı təkrarlayan yoxlama köhnə kodda uğursuz olmalıdır. Olmursa, ya xəta həqiqi deyil, ya da yoxlama onu görmür.

Sən bunu istə

git stash                 # back to the old code
npm run check:votes       # FAIL — the bug is real
git stash pop             # the fix
npm run check:votes       # ok

Qonşuları yoxla

Eyni xəta adətən bir neçə yerdə olur. Düzəldilən naxışı bütün repoda axtar.

Sən bunu istə

grep -rn 'searchParams.get("voter' src workers
grep -rn "?? url.searchParams" src workers

Oxuya biləcəyin dəlil

AI-dan «keçdi» sözünü yox, çıxışın özünü istə: test nəticəsi, curl cavabı, ekran görüntüsü. Görmədiyin dəlil dəlil deyil.

Diff oxuyanda soruş: AI «hazırdır» deyəndə çıxışı istə: hansı yoxlama, hansı əmr, hansı nəticə? Görmədiyin dəlil dəlil deyil.

Terminlər

regression
Əvvəl işləyən bir şeyin yeni dəyişiklikdən sonra qırılması.
failing test first
Xətanı düzəltməzdən əvvəl onu təkrarlayan və uğursuz olan yoxlama yazmaq.
false green
Heç nəyi yoxlamadığı halda «keçdi» göstərən yoxlama.
end-to-end check
Real brauzerdə istifadəçi kimi bütün yolu keçən yoxlama.
sibling paths
Eyni xətanı yarada biləcək digər yollar: ehtiyat yollar, digər endpoint-lər, digər çağıranlar.

İndi sən yoxla

1AI deyir: «Düzəldildi, build keçir.» Xətanın düzəldiyinə sübut nədir?

2Commit deyir: «səslər artıq sessiyadan oxunur». Doğrudurmu?

const voter = session?.userId ?? url.searchParams.get("voter");

Hazır prompt

İngiliscədir, çünki terminlər ingiliscədir. Tərcümə etsən də terminləri saxla.

prompt
Before you fix <bug>:
1. Write a check that reproduces it, run it, and show me it fails.
2. Fix it.
3. Run the same check and show me it passes.
4. List every other code path that could produce the same bug —
   fallbacks, other endpoints, other callers — and check those too.

Do not tell me it is fixed until step 3 has output I can read.

Öz kodunda

  1. 1Son düzəltdiyin xətanı götür və AI-dan onu təkrarlayan yoxlama istə.
  2. 2git stash ilə köhnə koda qayıt və yoxlamanın orada uğursuz olduğunu gör.
  3. 3Yeni koda qayıt və keçdiyini gör.

Bunu görəndə bitib: Yoxlamanın əvvəl uğursuz olduğunu, sonra keçdiyini öz gözünlə görmüsən.

Daha dərinə

Oxumaq üçün

  • Beyond Vibe Coding: From Coder to AI-Era Developer · Addy Osmani, 2025 · AI kodunu yoxlamaq və test etmək
  • Vibe Coding: Building Production-Grade Software With GenAI, Chat, Agents, and Beyond · Gene Kim, Steve Yegge, 2025 · Doğrulama agentin işinin yarısıdır