Object-georiënteerd ontwerpen en programmeren

Cursusduur:3 dagen
Data/Locaties: zie het cursusoverzicht
Kosten: € 1425,– (exclusief BTW)
Inclusief: alle cursusmateriaal, lunch, koffie, thee, frisdrank en snacks
Inschrijving: Online inschrijvingsformulier

Deze cursus kan ook in-house worden gegeven. Neem contact met ons op voor meer informatie.

Doelgroep

U bent programmeur of software-architect met minimaal één jaar ervaring in een taal die object-oriëntatie ondersteunt, zoals Delphi, Java, C++ of C#. U begrijpt de basisconcepten van object-oriëntatie en u bent bekend met de basale OO-ondersteunende mechanismen in uw favoriete programmeertaal.

Desalniettemin bent u erachter gekomen dat het in de praktijk lastig kan zijn om een systeem op een goede manier op te delen in een verzameling classes. Waar moet welke data komen? Waar laten we de functies? Er zijn zoveel alternatieven, maar welke keuze is de juiste? Wat is de samenhang tussen de verschillende classes? Hoe werken ze samen? Misschien vraagt u zich soms zelfs af of object-oriëntatie software-ontwikkeling niet ingewikkelder maakt, in plaats van minder complex. U heeft misschien een aantal erg grote classes geschreven die veel te veel doen. Of een aantal kleine classes die haast niets doen. Of allebei. Hoe dan ook, u heeft lang niet altijd het gevoel dat u de complexiteit van de systemen waar u aan werkt helemaal onder controle hebt. Misschien heeft u af en toe wat “dirty tricks” gebruikt, zoals het toegang geven tot de interne data van de ene class aan een andere class op één of andere “slimme” manier, zodat u in elk geval voor elkaar kreeg wat u wilde bereiken—maar het zat u niet helemaal lekker. U heeft het vermoeden dat object-georiënteerd ontwerpen en programmeren ook anders en beter zouden moeten kunnen, maar u ziet niet helemaal hoe dat dan precies zou moeten.

Maakt u zich geen zorgen; dit is een natuurlijke ontwikkeling. In feite is het erg waardevol om, gebaseerd op praktische ervaringen, in te zien dat dergelijke problemen nu eenmaal voorkomen. Het betekent dat u er klaar voor bent om naar een hoger niveau van software-ontwikkeling te gaan. U hebt alleen wat concrete richtlijnen en heuristieken nodig om object-oriëntatie op een nuttige manier te kunnen gebruiken in uw dagelijks werk (dat overigens voor de meeste software-ontwikkelaars toch echt wel iets ingewikkelder is dan het uitgekauwde schoolvoorbeeld van de geldautomaat met niet meer dan de drie functies `check_balance()', `withdraw()', and `deposit()', dat we zo vaak terug zien in cursussen en boeken over object-oriëntatie).

Neem contact met ons op als u erover twijfelt of dit de juiste cursus voor u is.

Wat u zult leren

U zult concrete heuristieken leren, toepasbaar op realistische problemen, voor maken van een goede opdeling van een systeem in een verzameling classes en voor het kiezen van de juiste mechanismen om deze classes samen te laten werken. U zult het belang van interfaces inzien en u zult leren deze coherent en zo klein als maar mogelijk is te houden—maar niet kleiner. U zult begrijpen dat hergebruik van code weliswaar een goed streven is, maar dat inheritance doorgaans niet het beste mechanisme is voor hergebruik van implementatie. En uiteraard zult u ook zien voor welke vormen van hergebruik inheritance dan wél geschikt is. U zult leren hoe polymorfisme helpt om uw ontwerp flexibel te maken en het zelfs mogelijk maakt om run-time te schakelen tussen alternatieve implementaties. U zult leren hoe u de afhankelijkheden tussen classes minimaal houdt, zodat ook de impact van veranderingen in de requirements of de omgeving geminimaliseerd wordt. Uw ervaring dat de kwaliteit van een systeemontwerp de neiging heeft om achteruit te gaan als het systeem groeit zal worden bevestigd, maar u zult ook leren de symptomen van ontwerpproblemen in een vroegtijdig stadium te herkennen en uw ontwerp door middel van refactoring weer op de rails te krijgen.

Cursusopzet

De verhouding tussen theorie en praktijk in deze cursus is ongeveer 70%–30%. We zullen geen programmeeropgaven doen tijdens de cursus, aangezien de tijd die u besteedt aan niet-triviale programma's zich niet terugbetaalt bij cursussen van dit niveau. In plaats daarvan wordt u in de praktische opdrachten gevraagd om ontwerpbeslissingen te maken—precies het soort beslissingen dat u in de praktijk tegenkomt—en om uw keuze te motiveren, gebaseerd op wat u in het theoretische deel heeft geleerd. Sommige opdrachten worden individueel gedaan, andere in paren.

De groep bestaat uit maximaal 12 personen, zodat we kunnen inspelen op de individuele wensen en doelen van alle deelnemers.

Als alle deelnemers Nederlands spreken zal de cursus in het Nederlands worden gegeven; zo niet, dan wordt de cursus in het Engels gegeven. Al het cursusmateriaal is Engelstalig.

Net als alle andere cursussen van 59bits is deze cursus intensief en van hoog tempo, maar met voldoende kortere en langere pauzes om even op adem te komen en om u in staat te stellen om al het geleerde te verwerken en te onthouden.

Leest u vooral ook onze algemene cursusinformatie.

Cursusonderwerpen en kernbegrippen

De onderstaande lijst is niet volledig en is slechts bedoeld om u een indruk te geven van wat u kunt verwachten: