Code Complete copre molti concetti senza tempo come:
- forte coesione
- accoppiamento lasco
- buoni nomi di routine
- programmazione difensiva
- codice auto-documentante
- recensioni di software
- test unitari
che sono certamente rilevanti oggi.
Alcuni dei concetti sostenuti in CC sono ora applicati sintatticamente in linguaggi più recenti, ad esempio C # non consente di definire variabili in sotto-ambiti in un modo che nasconde una definizione super-ambita.
Altri concetti, come la notazione ungherese per nomi di variabili, sono caduti ai margini della programmazione tradizionale (anche se chiunque lavori ancora con l'API Win32 sosterrà con veemenza che sono vivi e bene). Tuttavia, il vero concetto alla base della convenzione sulla denominazione variabile è quello di trasmettere il significato necessario e chiarire il codice, concetti che direi sono anche senza tempo.
Tutto sommato, da quello che posso ricordare (e una rapida occhiata alla mia venerabile copia di CC), direi che vale sicuramente la pena di rivederlo.
Non credo, tuttavia, che arrivi alla natura davvero senza tempo di The Mythical Man Month. MMM affronta i problemi di chi sta facendo il lavoro, come e perché lo stanno facendo; nonché i costi e la complessità delle comunicazioni (umane). MMM affronta questioni fondamentali per tutto ciò che facciamo. CC, in confronto, si concentra su questioni pratiche e pragmatiche di come lo facciamo. Detto in altro modo, se un progetto è in ritardo e un manager decide di aggiungere 100 persone al team, scrivere un codice comprensibile non farà davvero la differenza.
CC non affronta realmente problemi significativi che affliggono il nostro settore; ma fornisce una buona base per cercare il miglior risultato in una situazione spesso impossibile.
Li considererei sicuramente entrambi richiesti per chiunque si occupi dello sviluppo del software; e consiglierei di rileggere MM ogni volta che hai bisogno di un aggiornamento. CC vale la pena rileggere se stai guidando un team di sviluppo, stabilendo standard di gruppo o formando nuovi sviluppatori; al di fuori di ciò, trovo personalmente che da tempo ho interiorizzato il materiale in CC e lo pratico quotidianamente.
Speranze che aiutino. Sono sicuramente due dei miei preferiti.