Codice completo copre molti concetti senza tempo come:
- strong coesione
- accoppiamento lento
- buoni nomi di routine
- programmazione difensiva
- codice auto-documentale
- recensioni di software
- test delle unità
che sono certamente rilevanti oggi.
Alcuni concetti sostenuti in CC sono ora applicati in modo sintattico nei linguaggi più recenti, ad esempio C # non consente la definizione della variabile in sotto-ambiti in modo da nascondere una definizione super-spettrale.
Altri concetti, come la notazione ungherese per i nomi di variabili, sono caduti nel dimenticatoio della programmazione mainstream (sebbene chiunque stia ancora lavorando con l'API Win32 sosterrà con veemenza di essere vivi e vivi). Ciononostante, il vero concetto alla base della convenzione di denominazione delle variabili è quello di trasmettere significato necessario e chiarire il codice, concetti che anch'io sosterrei sono anche senza tempo.
Tutto sommato, da quello che posso ricordare (e una rapida occhiata nella mia veneranda copia di CC), direi che vale sicuramente la pena di rivederlo.
Non penso, tuttavia, che salga alla natura veramente senza tempo del Mese di Mythical Man. MMM affronta i problemi di chi sta facendo il lavoro, come e perché lo stanno facendo; così come i costi e la complessità delle comunicazioni (umane). MMM affronta questioni che sono fondamentali per tutto ciò che facciamo. CC, in confronto, si concentra su questioni pratiche e pragmatiche su come lo facciamo. In altre parole, se un progetto è in ritardo sulla pianificazione e un manager decide di aggiungere 100 persone al team, scrivere un codice comprensibile non farà davvero la differenza.
CC in realtà non affronta problemi significativi che affliggono il nostro settore; ma fornisce una buona base per cercare il miglior risultato in una situazione spesso impossibile.
Sicuramente li considererei entrambi obbligati a leggere per chiunque abbia a cuore lo sviluppo del software; e raccomanderei 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 questo, personalmente scopro di aver interiorizzato molto tempo fa il materiale in CC e di praticarlo quotidianamente.
Le speranze aiutano. Sono sicuramente due dei miei preferiti.