Was sind die wichtigsten Punkte von Code Complete? [geschlossen]

72

Ich habe viele Leute gehört, die Code Complete als ein Buch erwähnt haben, das es wert ist, gelesen zu werden. Leider bin ich so beschäftigt, dass ich keine Zeit habe, es zu lesen. Kann mir jemand sagen, worauf es in diesem Buch ankommt?

Casebash
quelle
49
Der entscheidende Punkt auf Seite 824 von Code Complete 2 ist, dass Sie tatsächlich Programmierbücher lesen sollten!
Azheglov
@azheglov: Ist dies 2 wie in der 2. Ausgabe oder 2 wie in Code Complete 2, was nach Code Complete gelesen werden sollte?
Chris
@ Chris, fast 4 Jahre später: es ist 2 wie in der 2. Auflage, überarbeitet und aktualisiert. Und ich hoffe, Sie haben es in der Zwischenzeit gelesen :-)
Streppel

Antworten:

83

Code Complete handelt von Software-Handwerkskunst. Es ist ein Buch für fortgeschrittene Anfänger und Fortgeschrittene, das für den arbeitenden Programmierer geschrieben wurde, aber für jemanden, der seit mindestens einem Jahr programmiert, immer noch sehr nützlich ist.

Daher sind die wichtigsten Punkte von Code Complete (2. Aufl.) In Kapitel 34, Themen in Software Craftsmanship, gut zusammengefasst. Wie aus meinen Notizen hervorgeht:

  1. Komplexität überwinden : Reduzieren Sie die kognitive Belastung Ihres Geistes durch Disziplin, Konventionen und Abstraktion.
  2. Wählen Sie Ihren Prozess : Seien Sie sich der Qualität von Anfang (Anforderungen) bis Ende (Bereitstellung) und darüber hinaus (Wartung) bewusst.
  3. Schreiben Sie Programme zuerst für Menschen, dann für Computer : Die Lesbarkeit von Code ist für die Verständlichkeit, Überprüfbarkeit, Fehlerrate, Fehlerkorrektur, Modifizierbarkeit und die daraus resultierende Entwicklungszeit und -qualität von enormer Bedeutung.
  4. Programmieren Sie in Ihre Sprache, nicht in Ihre Sprache : Denken Sie an das Was? und warum? vor dem Wie?
  5. Konzentrieren Sie Ihre Aufmerksamkeit mithilfe von Konventionen : Konventionen verwalten die Komplexität, indem sie die Struktur dort bereitstellen, wo sie benötigt wird, damit die ultimative Ressource - Ihre Aufmerksamkeit - effektiv genutzt werden kann.
  6. Programm im Hinblick auf den Problembereich : Arbeiten auf höchstmöglicher Abstraktionsebene; Code der obersten Ebene sollte das zu lösende Problem beschreiben. Unterscheiden Sie Betriebssystemebene, Programmiersprachenebene, Implementierungsstrukturen auf niedriger Ebene, Problemdomänenbegriffe auf niedriger Ebene und schließlich Problemdomänenbegriffe auf hoher Ebene, die für den (Nicht-Codierer-) Benutzer insgesamt sinnvoll wären.
  7. Achten Sie auf fallende Steine: Da beim Programmieren Kunst und Wissenschaft verschmelzen, ist ein gutes Urteilsvermögen von entscheidender Bedeutung, einschließlich der Beachtung von Warnzeichen.
  8. Iterieren Sie immer wieder : Iterieren Sie Anforderungen, Design, Schätzungen, Code und Code-Optimierung.
  9. Du sollst Software und Religion trennen : Sei vielseitig und experimentierfreudig. Sei kein unflexibler Eiferer, es schließt Neugier und Lernen aus. Lassen Sie nicht nur einen Hammer in Ihrem Werkzeugkasten.

Aber die wichtigsten Take-Aways sind in Kapitel 33, persönliche Charakter : wenn Sie bewusst suchen als Coder zu verbessern, Sie können und werden. Der schnellste Weg, dies zu tun, besteht darin, die Einstellungen von Master-Programmierern (Demut, Neugier, intellektuelle Ehrlichkeit, Disziplin, Kreativität) zu übernehmen und gleichzeitig ihre Gewohnheiten zu üben (viele gute Gewohnheiten sind im Buch aufgeführt, z. B. die Auswahl einer guten Variablen / eines guten Werts) Namen).

Das Buch macht auch deutlich, dass die Kluft zwischen durchschnittlich und exzellent in der Software immens ist ; allein diese Tatsache sollte den gewissenhaften Kodierer dazu bringen, sich zu verbessern.

Das ist das Ende; die lange version ist im buch. :) Ich kann dir auch meine nicht so langen, nicht so kurzen Notizen schicken, wenn du mehr Details willst. Aber das Buch ist sicherlich gut angelegtes Geld und Zeit, auch wenn der Schreibstil manchmal mühsam ist.

Abgesehen von Code Complete kann ich The Pragmatic Programmer nur empfehlen . Es ist für fortgeschrittene Programmierer gedacht, gut geschrieben und eine großartige Mischung aus Ratschlägen auf hohem, mittlerem und niedrigem Niveau.

Limist
quelle
Sind Sie sicher, dass dies ein Buch für Fortgeschrittene ist? Es scheint ziemlich einfach zu sein, mit Ratschlägen wie "Denken Sie daran, nicht verwendete Variablennamen zu entfernen" - ideal für jemanden im ersten oder zweiten Studienjahr, aber nicht für Fortgeschrittene (IMO).
Colen
1
@Colen: danke für deinen Kommentar, ich hätte ihn für fortgeschrittene Anfänger / fortgeschrittene Programmierer spezifizieren sollen.
Limist
10
@Colen: Obwohl Code Complete einige einfache Themen behandelt, die mit den komplexen gemischt sind, ist es definitiv nichts für Anfänger. Ziemlich jeder Entwickler auf jeder Ebene kann davon profitieren, wenn er es liest. Sie wären überrascht, wie wenig "Senior" -Entwickler tatsächlich über die Grundlagen Bescheid wissen, insbesondere wenn sie während ihrer gesamten Karriere nur in einer Sprache programmiert oder für ein Unternehmen gearbeitet haben.
Steve Hill
1
Der vollständige IMO-Code ist unnötig ausführlich - passen Sie also auf den Käufer auf!
BKSpurgeon
Dies ist eine gute Zusammenfassung der Themen im Buch. Können Sie uns bitte Ihre nicht so langen, nicht so kurzen Notizen mitteilen?
Akshay Khot
18

Es ist ein Buch für Fortgeschrittene, ein Potpourri von Best Practices für die Softwareentwicklung.

Wenn Sie ein Anfänger sind, werden Sie nicht viel von dem Material verstehen, und wenn Sie Erfahrung haben, wird das Buch nur bestätigen, was Sie bereits wissen. Aus diesem Grund ist das Buch möglicherweise für fortgeschrittene Programmierer von größtem Wert, die bereits über Programmierkenntnisse verfügen, jedoch ein Buch mit bewährten Methoden benötigen, um alles miteinander zu verknüpfen.

Es werden mehrere Seiten für die Formatierung von Codeblöcken und die relativen Vorzüge jedes Ansatzes aufgewendet. Persönlich denke ich, dass die große Debatte darüber, wo Sie Ihre geschweiften Klammern setzen, vorbei ist. (oder ist es?)

Robert Harvey
quelle
4
Dein Klammerarzt hat dir eine Gegenstimme eingebracht. : p
Nathan Taylor
Wo soll ich geschweifte Klammern setzen?
Petah