Debugging Like a Pro
A jó hibakeresés megtanulható szokás. Valóban elromlott kódon dolgozunk — egy versenyhelyzeten, egy csendes típuskonverzión, egy memóriaszivárgáson — breakpointokkal, logokkal és felezéssel, végül megírjuk azt a tesztet, ami mindegyik hibát visszatartja.
Az útvonal
- 20 percOlvasd el a hibát, az egészet
Stack trace-ek, mit jelent valójában a legfelső frame, és hol nézz először.
Itt szállsz fel - 20 percHipotézis, aztán felezés
Szűkítés felezéssel találgatás helyett — a `git bisect`-tel együtt.
- 20 percA breakpoint jobb a printnél
Feltételes breakpointok, watch kifejezések, és léptetés úgy, hogy ne veszítsd el a fonalat.
- 20 percHagyj magad után egy tesztet
Ahogy a reprodukcióból az a regressziós teszt lesz, ami visszatartja a hibát.
Bepillantás a tanításba
Múlt kedden még működött. Találd meg az elrontó commitot úgy, hogy egyiket sem olvasod el.
git bisect start
git bisect bad # right now
git bisect good HEAD~40 # last Tuesday
# Let git drive: it checks out a midpoint, runs your command,
# and halves the range on the exit code. Six steps, not forty.
git bisect run npm test --silent
git bisect reset
Negyven commit hat kérdés. A `bisect run`-nal még válaszolnod sem kell rájuk — a kilépési kód válaszol, miközben kávét főzöl.
Ki vezet
Péter úgy magyaráz, ahogy egy jó kolléga a tábla előtt — nincs öncélú szakzsargon, és nincs semmi elrejtve az „ahogy látható” mögé.
Helykitöltő profil