Questi programmatori quasi mai conoscono hanno capito bene, solo credono così. E la differenza potrebbe non essere facile da percepire.
Ricordo come ho programmato prima di apprendere i test unitari. E ricordo quella sensazione di fiducia e fiducia su un livello completamente diverso dopo che ho eseguito la mia prima suite di test unitari decenti. Non avevo mai conosciuto un tale livello di sicurezza nel mio codice prima d'ora.
Per qualcuno a cui manca questa esperienza, è impossibile spiegare la differenza. Quindi possono anche continuare a svilupparsi in modalità code-and-pray per tutta la loro vita, benevolmente (e ignoranti) credendo che stiano facendo del loro meglio considerando le circostanze.
Detto questo, ci possono essere dei grandi programmatori e casi eccezionali, quando uno riesce davvero a tenere tutto lo spazio problematico nella sua mente, in uno stato di flusso completo. Ho vissuto momenti rari come questo, quando sapevo perfettamente cosa scrivere, il codice mi è appena sfuggito senza sforzo, potevo prevedere tutti i casi speciali e le condizioni al contorno, e il codice risultante ha appena funzionato . Non ho dubbi che ci siano dei geni di programmazione là fuori che possono rimanere in tale stato di flusso per lunghi periodi o anche la maggior parte del loro tempo, e ciò che producono è un codice bellissimo, apparentemente senza sforzo. Immagino che tali persone non sentano il bisogno di scrivere dei test unitari per verificare cosa già conoscono . E se sei davvero un genio, potrebbe essere OK (anche se anche così, non sarai per sempre intorno a quel progetto, e dovresti pensare ai tuoi successori ...). Ma se non ...
E diciamocelo, è probabile che tu non lo sia. Io, per me stesso, so che non lo sono. Ho avuto alcuni rari momenti di flusso - e innumerevoli ore di dolore e dolore, di solito causati dai miei stessi errori. È meglio essere onesti e realistici. In effetti, credo che i più grandi programmatori siano pienamente consapevoli della propria fallibilità e degli errori del passato, quindi hanno consapevolmente sviluppato l'abitudine di ricontrollare le proprie assunzioni e scrivere quei piccoli test unitari, per tenersi al sicuro. ( "Non sono un grande programmatore - solo un buon programmatore con grandi abitudini." - Kent Beck.)