Quali sono i punti chiave di Code Complete? [chiuso]


72

Ho sentito molte persone menzionare Code Complete come un libro che vale la pena leggere. Sfortunatamente, sono così impegnato che non ho tempo di leggerlo, quindi qualcuno può dirmi quali sono i punti chiave del libro?


49
Il punto chiave della pagina 824 di Code Complete 2 è che dovresti effettivamente leggere libri di programmazione!
Azheglov,

@azheglov: questo è 2 come nella 2a edizione o 2 come nel Codice completo 2 che dovrebbe essere letto dopo il Codice completo?
Chris,

@Chris, quasi 4 anni dopo: è 2 come nella 2a edizione, rivisto e aggiornato. E spero che tu l'abbia letto nel frattempo :-)
streppel

Risposte:


83

Il codice completo riguarda l'arte del software; è un libro per principianti avanzati / di livello intermedio, scritto per il programmatore che lavora, ma sarebbe comunque molto utile per qualcuno che sta programmando da almeno un anno.

Quindi i punti chiave di Code Complete (2a edizione) sono ben riassunti nel suo capitolo 34, Temi nell'artigianato software. Come parafrasato dai miei appunti:

  1. Conquista la complessità : riduci il carico cognitivo nella tua mente attraverso disciplina, convenzioni e astrazione.
  2. Scegli il tuo processo : sii consapevole della qualità dall'inizio (requisiti) alla fine (distribuzione) e oltre (manutenzione).
  3. Scrivi i programmi per le persone in primo luogo, i computer in secondo luogo : la leggibilità del codice è estremamente importante per la comprensibilità, la capacità di revisione, il tasso di errore, la correzione degli errori, la modificabilità e il conseguente tempo di sviluppo e qualità.
  4. Programma nella tua lingua, non in essa : pensa al Cosa? e perché? prima del come?
  5. Focalizza la tua attenzione con l'aiuto delle convenzioni : le convenzioni gestiscono la complessità fornendo la struttura dove è necessaria, in modo che la risorsa finale - la tua attenzione - possa essere utilizzata in modo efficace.
  6. Programma in termini di dominio del problema : lavorare al massimo livello di astrazione possibile; il codice di livello superiore dovrebbe descrivere il problema da risolvere. Distinguere il livello del sistema operativo, il livello del linguaggio di programmazione, le strutture di implementazione di basso livello, i termini del dominio problematico di basso livello e, infine, i termini del dominio problematico di alto livello che avrebbero perfettamente senso per l'utente (non programmatore).
  7. Guarda Falling Rocks : poiché la programmazione fonde arte e scienza, il buon senso è vitale, compresi i segnali di avvertimento.
  8. Iterate, ripetutamente, ancora e ancora : iterare requisiti, progettazione, stime, codice, messa a punto del codice.
  9. Renderai Software e Religione Asunder : sii eclettico e disposto a sperimentare. Non essere un fanatico inflessibile, preclude la curiosità e l'apprendimento. Vai oltre con solo un martello nella tua cassetta degli attrezzi.

Ma le cose più importanti sono nel capitolo 33, Personaggio personale : una volta che cerchi consapevolmente di migliorare come programmatore, puoi e lo farai. Il modo più veloce per farlo è quello di assumere gli atteggiamenti dei maestri programmatori (umiltà, curiosità, onestà intellettuale, disciplina, creatività), praticando anche le loro abitudini (molte buone abitudini sono elencate nel libro, ad esempio scegliendo una buona variabile / valore nomi).

Inoltre, il libro chiarisce che il divario tra media e eccellente nel software è immenso ; quel fatto da solo dovrebbe spingere il programmatore coscienzioso a migliorare se stesso.

Questo è il corto; la versione lunga è nel libro. :) Posso anche inviarti le mie note non così lunghe, non così brevi se vuoi maggiori dettagli. Ma il libro è sicuramente denaro e tempo ben spesi, anche se lo stile di scrittura è noioso a volte.

Oltre il codice completo, consiglio vivamente il programmatore pragmatico . È per programmatori di livello intermedio, ben scritti e un ottimo mix di consigli di alto, medio e basso livello.


Sei sicuro che si tratti di un libro di livello intermedio? Sembra piuttosto semplice, con consigli come "ricordati di rimuovere i nomi delle variabili non utilizzati" - ottimo per qualcuno nel primo o secondo anno di college forse, ma non (livello intermedio IMO).
Colen,

1
@Colen: grazie per il tuo commento, avrei dovuto specificare che è per programmatori principianti / intermedi avanzati.
limist

10
@Colen: Sebbene Code Complete affronti alcuni argomenti semplici mescolati con quelli complessi, non è sicuramente per i principianti. Praticamente qualsiasi sviluppatore di qualsiasi livello può trarre vantaggio dalla sua lettura; rimarrai sorpreso dal fatto che pochi sviluppatori "senior" conoscano effettivamente le basi, soprattutto se hanno mai programmato in una sola lingua o lavorato per un'azienda per tutta la loro carriera.
Steve Hill,

1
Il codice IMO completo è inutile, quindi fai attenzione!
BKSpurgeon,

Questo è un buon riassunto dei temi del libro. Puoi per favore condividere le tue note non così lunghe, non così brevi?
Akshay Khot

18

È un libro intermedio, un pot-pourri di migliori pratiche di sviluppo software.

Se sei un programmatore principiante, non capirai molto del materiale e, se sei esperto, il libro confermerà solo ciò che già conosci. Di conseguenza, il libro potrebbe essere di grande valore per i programmatori intermedi, che hanno già un po 'di conoscenza della programmazione, ma hanno bisogno di un libro delle migliori pratiche per legare tutto insieme.

Vengono spese diverse pagine su come formattare i blocchi di codice e i meriti relativi di ciascun approccio. Personalmente, penso che il grande dibattito su dove posizionare le parentesi graffe sia finito. (o è?)


4
Il tuo parentetico ti ha fatto guadagnare un voto. : p
Nathan Taylor,

Dove devo mettere le parentesi graffe?
Petah,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.