Sotto l'intestazione di " etc. " arriva qualcosa che può facilmente richiedere il 50% o più del tuo tempo.
Scopri come eseguire il debug.
Questo significa imparare il metodo scientifico . Intendo davvero per impararlo. E poi applicandolo con brutale auto-onestà . Impara come dichiarare esattamente ciò che sai è vero, ciò che sai è non vero, e quelle cose che non conosci. Ogni volta che assegni un articolo alla categoria sbagliata, hai reso la vita un lotto più difficile.
Impara a dire "I think" invece di "I know". Puoi solo dire "Lo so" quando "pensi" che qualcosa è vero (o falso), e poi lo dimostri!
Molti bug sono banali, ma possono essere difficili da vedere perché "sai" quale dovrebbe essere il codice ... tranne che non lo è. Trova un amico per spiegarlo. Chiedi loro di essere un "esperto idiota": qualcuno che non conosce il tuo codice, ma chi conosci non può ignorare BS. don
essere sorpreso se nel bel mezzo di descriverlo a loro improvvisamente si fermano e dicono: "e così puoi ... vedere ... vedere ... sh * t. Grazie."
I bug non banali richiedono un arsenale di tecniche. Un classico che può rapidamente mettere in luce la maggior parte dei bug non correlati alla temporizzazione è Wolf Fence in Alaska. C'è un lupo da qualche parte in Alaska; costruire una recinzione che taglia lo stato a metà. Da che parte sta il lupo? Taglia quel lato a metà. Mescolare, sciacquare, ripetere. Facendo questo 20 volte in posti ben scelti nel codice si riduce l'area in cui il bug (lupo) può essere a 1/1048576. Uccidi quel lupo.
Suggerimento: cerca handwaves -physical, mental o qualsiasi altro tipo. Non appena tu (o il tuo collega) indietreggi / dividi / riduci l'attenzione su una parte del codice, vai totalmente rabbioso . Perché l'area in cui conosci non può essere il bug, anche se hai passato ore / giorni a cercare la cosa d * mn e ancora non riesci a trovarla ... è la più alta posizione di probabilità per l'errore. Nessuno riceve un 'ciao' , nessuno (compresi la macchina, il sistema operativo, il compilatore o tu ) ottiene ogni sorta di "dovuto rispetto". C'è un bug Periodo. Fine della frase Ora vai a uccidere la cosa d * mn.
Non conosco nessuna scuola che insegna il debug come soggetto a se stesso. IMNSHO, questa potrebbe essere la prova più clamorosa che essi (università / professori) non ti stanno insegnando a diventare programmatori, invece, ti stanno insegnando ad essere ... come loro? Harsh? Forse. Vero? Fatti un'idea. Ora provalo.