Va provoc la un exercitiu.
Nu mai folositi debugger-ul timp de 1 saptamana sau 1 luna sau 3 luni. Inlocuiti-l cu test after, test first, respectiv tdd. Cautati si alte tehnici universal valabile.
Reveniti intre timp, sau doar la final, si scrieti aici experientele voastre.
Sa raspund si on-topic, la partea cu provocarea. Mai, eu clar nu mi-s asa curajoasa cat sa incerc. Dar nu inteleg exact “identitatea” (din lipsa unui cuvant mai bun) dintre testing si debugging. Adica nu mi se par intersanjabile cele doua.
As I see it, testing-ul e ca sa confirmi ca ceva se comporta intr-un fel; debugging-ul e ca sa vezi de ce anume ceva se comporta in acel fel. Si no, cu unit testing poti restrange aria de acoperire a potentialei probleme si s-o gasesti asa, dar nu e valabil in toate cazurile.
Daca ai o metoda de sa zicem 10 randuri (sau alege-ti tu nr de randuri preferat, dincolo de care ceva e prea mic sa-l tai in bucati) si tu astepti sa-ti vina de exemplu rezultatul 3, poti sa scrii un test care sa confirme ca nu-ti merge jucaria, si de fapt returneaza 2. Dar mai departe? (presupunand, bineinteles, ca ai o problema un pic mai complexa decat ce poti depista pur ochiometric)
PS In viata de programator clar sunt cazuri in care tre’ sa te descurci fara debugging (production, I am looking at you). Dar sa renunt de buna voie la un tool atat de util… no way
Ai ramane surprinsa cum dispare debugger-ul din viata ta dupa ce incepi TDD sau ma rog, testing in general. Eu am pornit debuggerul exact de 3 ori in ultimii 3 ani. Si atunci era nevoie de el ca sa faca ceva statistici de timp de procesare, atat.
Acum, eu nu zic ca ar trebui sa faca cineva asta, sa renunte la debugger forever. De aceea am ridicat aceasta provocare sa vad voi ce parere aveti. Renuntati la el fortat pentru o perioada de timp, inlocuiti-l cu TDD, sau testing, sau orice altceva gasiti voi util, si dupa aceea sa evaluati daca mai este neveoie sa reveniti la un debugger sau nu.
Si daca da, de ce? Ce poate face, concret, pe caz, debugger-ul pentru tine ce nu poate un test, sau orice a-ti folosi. Este o alta tehnologie / tehnica la fel de buna sau mai buna decat debugger-ul?
Sunt niste intrebari la care eu si colegii mei de la Syneto ne-am gasit raspuns. Iar provocarea mea este sa va puneti si voi aceste intrebari si sa va trageti propriile concluzii. Dupa aceea sa ni le impartasiti si noua, celorlalti.