blog.smart-java.nl
Ordina J-Technologies – Java Blog

Archief ‘Methodologieën’ categorie




Boekbespreking: Code Complete, 2nd Edition

Door: Hedzer Westra, 21 January 2009

 

Auteur: Steve McConnell, publicatiejaar: 2004, pagina’s: 906, ISBN-13: 978-0735619678, website: http://www.cc2e.com/, Amazon rating: 5 sterren.

 

Code Complete was me jaren geleden aangeraden als hét boek (‘de bijbel’) om te leren nette code te produceren. Enige tijd geleden (!) is de tweede editie uitgekomen, wat me een goed moment leek om deze eens te bestuderen. Het viel me gelijk op dat deze dikke pil van Microsoft Press afkomstig is; auteur Steve McConnell komt uit de (Microsoft) wereld van C-programmeurs, maar beheerst vele andere talen.

 

Het boek geeft de lezer diverse praktische, aan de praktijk gestaafde, gedetailleerde tips en voorbeelden om op een juiste manier programmacode te maken. De meeste voorbeelden gaan uit van C++, Visual Basic, Java en C# (in die volgorde). Daar zit ’m wat mij betreft ook meteen een manco: ikzelf ben niet (meer) geïnteresseerd in allerlei tips om onder anderen netjes met pointers en globale variabelen om te gaan. Dat heeft Java netjes voor me afgeschermd… Wel krijg je een interessant kijkje in de keuken van C/C++, en wat extra respect voor programmeurs daarin, die zelfdiscipline nodig hebben, waar wij de taal Java hebben om dezelfde mate van noodzakelijke restrictie te krijgen.

 

De structuur, lay-out en leesbaarheid van het boek is zeer goed: er is op een prettig leesbare manier geschreven, hier en daar humoristisch en nergens flauw. Een uitgebreide inhoudsopgave, lijst van tabellen & figuren, referenties, leeslijst van tijdschriften en boeken, en index ontbreken niet. Elk hoofdstuk begint met een duidelijke inleiding van de inhoud, en eindigt met een checklist, samenvatting van de ‘key points’ en vele referenties naar extra leesvoer. Dat laatste is erg opvallend: Steve heeft ontzettend veel materiaal gebruikt bij het samenstellen van dit boek. In het voorwoord claimt hij dan ook dat zijn boek een samenvatting is van heel veel (zo niet alle) succesvolle ontwikkelingen en ontdekkingen op het gebied van softwareconstructie. Overal in het boek staan in de kantlijn referenties naar de ‘cc2e’ website met meer informatie, betekenisvolle quotes van bekende IT-goeroes en kruisverwijzingen. Naast verwijzingen naar onderzoeksresultaten van academici, veelal met statistische gegevens, put de auteur ook uit zijn eigen rijke ervaringen bij o.a. Microsoft, Boeing en NASA. Veel stukken code worden begeleid door een “coding horror” icoontje, om aan te geven hoe verschrikkelijk het desbetreffende antivoorbeeld is.

 

Het boek omvat 6 delen, onderverdeeld in 35 hoofdstukken, elk met hun eigen onderwerp. Teveel om allemaal te noemen, maar enkele sappige details & citaten wil ik je niet onthouden:

  • Software Construction is the only activity that is guaranteed to be done: dit is een stevig argument voor Agile werken – waarin documentatie een ondergeschikte rol krijgt toebedeeld ten gunste van productie van programmacode.
  • Program into, not in, a language: hiermee wil Steve je aanzetten om de mogelijkheden van je taal wijselijk te gebruiken, en niet blind alle mogelijkheden – al dan niet op een verkeerde wijze – toe te passen.
  • De sectie over complexiteit en het beperkte menselijke begripsvermogen is erg vermakelijk.
  • “Don’t optimise your code, unless a profiler or production problem forces you to.”
  • Als alternatief voor nette UML ontwerpen: neem foto’s van tekeningen op whiteboard, of bewaar flip-overs.
  • Itereer je design.
  • Gebruik tijdens ontwikkeling asserts of excepties die je programma hard doen crashen, maar zorg dat in de productieversie dezelfde fout netjes (liefst zonder interactie van, en overlast voor, de gebruiker) wordt afgehandeld. Dit wordt ook wel offensive vs. defensive programming genoemd.
  • Schrijf alles altijd uit in pseudo-code. Persoonlijk doe ik dit zeer zelden – en ik heb uit dit boek ook geen extra stimulans daarvoor gehaald, onder anderen door het detailniveau dat wordt aangeraden. 

Veel van de onderwerpen die beschreven worden – requirements, design, optimalisatie, naming convention, (unit) testing, Design Patterns, encapsulatie, factorisatie, assert vs. excepties vs. unit tests, continuous integration, comments vs. refactoring – waren eerlijk gezegd een samenvatting van wat ik al wist. Nuttig om hier en daar iets nieuws te horen, of om even opgefrist te worden, maar echt iets fundamenteels geleerd: nee.

 

Wat pijnlijk duidelijk wordt, is dat het boek geschreven is vlak voordat Java5 uitkwam – hier en daar wordt Java verweten enkele mogelijkheden te ontberen, terwijl we die al jaren tot onze beschikking hebben.

 

Concluderend: het boek maakt wat mij betreft zijn belofte slechts gedeeltelijk waar. Voor C++/C#/VB programmeurs is het vast en zeker erg bruikbaar, maar voor Java is het net iets te oud, en ligt er te weinig focus op problemen in Java. Als je junior of medior bent, of voor een breed scala aan onderwerpen in software constructie met één boek klaar wilt zijn, is het een goed boek, maar helaas geen uitstekend boek…

 

Kleurindicatie: Amber (2 op schaal van 3)

 

Hierbij nodig ik al mijn collega’s uit om ook boekbesprekingen te publiceren op de J-Tech blog, en tevens informatie te plaatsen op de Wiki (https://wiki.ordina.nl/confluence/display/GENBIEB/Alle+Boeken), zodat iedereen een goede keus kan maken uit de vele boeken waarmee je je vaardigheden en kennis kunt uitbreiden. Ikzelf hoop binnenkort te komen met een bespreking van “Programming in Scala,” het eerste boek over deze nieuwe en spannende programmeertaal.

Hedzer Westra




IBM RUP 7.0 certificering

Door: Hedzer Westra, 9 November 2008

In mei dit jaar heb ik twee interne cursusdagen RUP examentraining gevolgd, en in rap tempo het bijbehorende boek gelezen. Ik had – behalve RUP Op Maat 1 – weinig RUP kennis, en geen praktische ervaring. En toch had ik binnen 2 weken na de cursus het certificaat ‘IBM RUP 7.0′ op zak!

Wil je dat ook, lees dan verder.

Het was hard werken, en gaf flink wat irritatie vanwege de kwaliteit – of beter: gebrek daaraan – van van het leerboek, maar met de goede ondersteuning vanuit de cursus heb ik het gered met 88% score. Goed te doen, dus.

Je kunt goed merken dat de mensen van Rational – de originele bedenkers van RUP – van origine programmeurs zijn, die erg houden van modelleren. Het proces staat bol van de klassehiërarchieën, has-a referenties, sequence diagrammen, et cetera – als je hier tenminste op let; het studieboek ontbeert elke indicatie dat de auteurs dit inzicht hadden. Om de zaken goed voor mezelf te ordenen, en om te kunnen stampen voor het examen, heb ik één en ander samengevat in een 19 pagina’s tellend Word document. In klein lettertype. (Ja, het is toch niet zo compact geworden als ik had gehoopt – maar RUP is toch wel tamelijk groot, als je alle examenonderdelen wilt noemen.) Wat ik ook miste in het boek zijn verduidelijkende plaatjes. Dit heb ik gepoogd goed te maken in mijn samenvatting.

Cursusdocenten Hans en Remi-Armand hebben een Wiki-pagina gemaakt voor RUP certificering: https://wiki.ordina.nl > Dashboard > Methodiek Systeemontwikkeling > Home > RUP. Hierop hebben ze ook diverse bijlagen geplaatst met presentaties, artikelen en instructies. Instructies? Ja, Ordina krijgt kudos van IBM als er veel certificaten gehaald zijn. Zorg dus dat je na behalen van het certificaat, dit aan IBM laat weten! Da’s dan weer goed voor Ordina.

Mijn RUP samenvatting (‘RUP 7.0 certification summary.doc’) kun je sinds kort ook vinden op deze RUP pagina. Laat me weten wat je ervan vindt! Ik ben ervan overtuigd dat je een stuk sneller de componenten van RUP doorgrondt als je niet alle lappen tekst van het boek hoeft te herleiden tot de basis.

Wat ik ook toegevoegd heb, is een oefenexamen dat me tijdens de cursus verstrekt werd. Het is een JavaScript-gestuurde website die je meteen feedback geeft over je slagingskans.

Naast een proces – dat je kunt beschrijven in een leerboek, een samenvatting of een powerpointpresentatie – bestaat RUP ook uit een website, waarin je alle documentatie gestructureerd kunt terugvinden. En dan ook alle – het is een behoorlijke bak informatie. Het betreft een statische website (met Applet) die je lokaal kunt installeren – Hans & Remi-Armand kunnen je hem ter beschikking stellen (met 78MB past het niet op de Wiki). Erg nuttig om doorgebladerd te hebben voordat je aan het examen begint.

Het examen is zoals je dat waarschijnlijk ook gewend bent van de Sun certificeringen: in 75 minuten een flink aantal (52) meerkeuzevragen beantwoorden, achter een beeldscherm bij een Prometric testinstituut. Bij verlaten van de zaal weet je al of je geslaagd bent – of niet (62% oftewel 33 vragen is het minimum).

Als laatste een vijfstappenplan dat je gegarandeerd een certificaat oplevert:

  1. volg de cursus van Hans & Remi-Armand, of lees de ppt’s en zelfstudiegids door
  2. blader het boek door
  3. bestudeer & stamp mijn samenvatting
  4. klik door de RUP website heen
  5. doe het proefexamen

Heb je 75% of hoger gescoord, dan kun je met een gerust hart het examen gaan doen.

Cursus: “RUP Examentraining” van Hans Admiraal [M&C] en Remi-Armand Collaris [J-Tech]

Boek: “IBM Rational Unified Process Reference and Certification Guide” van Shuja en Krebs (ISBN 978-0131562929).

Examen: via JOOST, Test 839: Rational Unified Process v7.0. SR/SP opgeven.

Succes!

P.S.: je zult hebben gemerkt dat ik niet van het leerboek gecharmeerd was. Is er dan geen alternatief? Ik ben bang van niet. Je zult ’t ermee moeten doen…




Agile nieuws

Door: danny.van.bruggen, 22 April 2008

Een paar weken geleden is de Agile Holland groep opgericht – een soort van NLJUG, maar dan voor Agile. Hier is de doelstelling:

We zijn een onafhankelijke organisatie van en voor Agile practisanten in Nederland. Het is onze missie om het toepassen van Agile principes en praktijken te promoten.

Ben je geinteresseerd en enthousiast over Agile, Scrum, XP, of een andere techniek in de Agile geest, meld je dan aan via de site!