english English

Boek Review: Code Complete 2

Wat is een goede developer? Iemand de zijn programmeer- of scripttaal beheerst? Een mogelijk antwoord op deze vraag is JA maar dat is maar één zijde van de medaille. Een goede programmeur is zoveel meer. Maar wat precies was nog altijd een vraag voor mij. Daarom ging ik op zoek naar boeken die dieper in gingen op het niet technische aspect van programmeren. Via Stack Overflow kwam al ik snel terecht bij wat velen "The Programmer's Bible" noemen.

Code Complete 2 review

What it is and isn't

De tagline van dit boek is "A practical handbook of software construction" en het boek staat ook doorspekt met code voorbeelden maar echt veel praktische informatie ga je er niet uit halen. Het overgrote deel van de inhoud is theoretisch. Maar dat was net waar ik naar op zoek was dus dat is al een goed punt. Een klein nadeel is wel dat de meeste codevoorbeelden in Java, VB of C++ zijn geschreven. De code voorbeelden behandelen daarentegen wel vaak vrij simpele dingen of stellen ze simplistisch voor dus kan je daar zeker wel mee verder als je al wat ervaring hebt met programmeren.

Code Complete 2 is zeker ook geen page turner. Het is een boek waar je makkelijk door gefascineerd raakt maar je zal hem nooit van cover tot cover uitlezen. Er staat zo veel en complexe materie in dit boek dat je regelmatig een paar dagen moet nemen om alles te laten bezinken. CC2 is trouwens eerder een naslagwerk wat je tijdens je dagdagelijkse bezigheden als developer kan gebruiken dan een boek wat je gaat lezen in de zetel met wat rustige achtergrondmuziek op.

Waar gaat de boek eigenlijk over?

Dit boek puilt echt uit van de best practices. Van high level onderwerpen zoals Design Strategies, Planning en Analyse tot low level onderwerpen zoals Data Types, API's en Variable naming.

Er worden ook veel vragen beantwoord over vaak voorkomende problemen of zelfs dingen waar je voorheen nooit aan gedacht hebt. Waarom is nesting van if-statements bijvoorbeeld slecht en hoe kan je het beter uitvoeren? Waarom zou je versiecontrole gebruiken? Hoe ga je praktisch te werk bij deployment? Hoe beheer je je software versies? Waarom noem je een variabele bijvoorbeeld best $currentDate ipv $cDate? Welke data types gebruik je best in welke omstandigheden? Veel van deze technieken en best practices zijn terug te leiden tot de basis van goed programmeren en kan je in eender welke taal die je schrijft toepassen. Als je hier naar op zoek bent is dit boek goud waard.

Ook wordt er veel aandacht besteed aan de opvolging van alles wat er voor en na ontwikkeling komt zoals tools, class layout, API's, debugging, issue tracking, testing, refactoring, etc. Zoals je merkt behandelt dit boek zoveel onderwerpen dat het onbegonnen werk is om ze hier allemaal op te lijsten.

Checklists

Erg handig zijn ook de checklists die bij elk hoofdstuk zijn gevoegd. Na elk hoofdstuk vind je namelijk een checklist die je kan hanteren om te zien of je de aangehaalde best practices wel beheerst en toepast op je projecten. Zo kan je vaak de "Debugging checklist" en "Refactoring checklist" gebruiken om te zien of je wel goed bezig bent en waar je kan bijsturen.

Website

Het hele boek staat ook vol met referenties naar cc2e.com, de website die bij dit boek hoort en waar extra checklists, links, artikels, etc te vinden zijn over dit boek. De zoekfunctie op de website is ook een onmisbare tool die je tijdens je dagdagelijkse bezigheden als ontwikkelaar regelmatig kan raadplegen.

Conclusie

Laat me duidelijk zijn, Code Complete 2 is één van de meest hulpzame en beste boeken over programmeren die ik gelezen heb, maar ik ben wel een illusie armer. Ik zal nooit alles wat in dit boek staat onder de knie hebben. Niet omdat het niet allemaal toepasbaar is op mijn job als LAMP developer maar wel omdat dit boek de perfecte programmeur omschrijft en die bestaat niet. Wel heb ik er een super handig naslagwerk bij en een doel om naar te streven. Wie weet mag ik over een paar jaren opnieuw een blogpost schrijven waarin ik moet verwijzen naar deze dat ik ongelijk had, dat de perfecte programmeur wel bestaat, en hopelijk ben ik dat dan. Dit boek helpt me in ieder geval wel een heel eind op weg!

RSS reacties feed

7 reacties tot nu toe

Pascal Wevers

Pascal Wevers zei 2 jaar geleden:

Goede revieuw, zelf had ik Rapid Development van Steve McConnell al eens gelezen en was meer dan de moeite waard, misschien dit boek de volgende keer ook bestellen als we nog een nieuwe lading boeken laten overkomen.
Frank

Frank zei 2 jaar geleden:

Zelf ook gelezen, een aanrader!
Tom Schuermans

Tom Schuermans zei 2 jaar geleden:

Lijkt me wel een interessant boek om een keer door te nemen :)
Wordt TDD (Test Driven Development) er ook in behandeld?
Chris Ramakers

Chris Ramakers zei 2 jaar geleden:

@Tom
TDD zelf wordt niet besproken maar software testing wel. Hetzij vrij algemeen.
Michael

Michael zei 2 jaar geleden:

Goed geschreven blogpost @Chris, heb het boek op mijn wishlist gezet.
Tom Schuermans

Tom Schuermans zei 2 jaar geleden:

@Chris
Ken je zelf nog een aanrader ivm TDD?
Chris Ramakers

Chris Ramakers zei 2 jaar geleden:

@Tom
Sorry, ik ben geen TDD aanhanger dus daar kan ik je niet mee helpen. Maar mss dat je hier iets vindt. StackOverflow is een goudmijn voor developers :)
http://stackoverflow.com/questions/tagged/tdd

Reageer op dit artikel

Toegelaten tags: <a href="" title=""> <code> <em> <strong>

RSS Feed

Bekijk alle tags

Laatste reacties

  • Fabio Maggio: @Tom Claus: bedankt!
  • Tom Claus: @Filip Bedankt voor de tip, CouchDB gaan we zeker even mee bekijken. @Fabio Deze...
  • Fabio Maggio: Is die presentatie van Masterizing PHP Data Structure ook nog ergens te bekijken?
  • Tom Hermans: Thx Tom, schone samenvatting en een massa interessante links, ideaal voor mensen die die dag...
  • Filip Stas: Als MongoDb je al boeit zeker ook eens kijken naar couchbase ook zeker de moeite!