OO
Herbruikbaarheid van code
Objecten, die niet of weinig afhankelijk zijn van andere objecten, kan je zonder veel moeite uit één applicatie te plukken en hergebruiken in een nieuwe applicatie.
Een duidelijke indeling van de code
C#
Theorie
Oefeningen
Filmpjes
Oefening Voorbeelden uitproberen uit Werken met gegevens
PHP
Een duidelijke indeling geeft een goed overzicht en is gewoon veel toegankelijker voor jezelf en voor andere programmeurs. Door de duidelijke indeling kun je sneller wegwijs worden in de (hoofdlijnen) van de applicatie. Door goede namespace-, klasse-, methode- en eigenschapnamen te kiezen moet je de achterliggende code niet meer lezen om te weten wat ze doet.
Gekoppeld aan analyse
Code die procedureel is geschreven is geschreven naar functionaliteit, of beter gezegd, naar een handeling of use case. Zo'n use case is bijvoorbeeld: het verwijderen van een bericht op een forum door een moderator. De code zal dan in grote lijnen het volgende doen:
- Controleren of de gebruiker is ingelogd.
- Controleren of de gebruiker een moderator is.
- Controleren of het bericht bestaat.
- Verwijderen van het bericht van het forum.
- De plaatser van het bericht inlichten dat zijn bericht is verwijderd.
- Aangeven dat het bericht verwijderd is.
Wanneer je OO (objectgeoriënteerd) programmeert kun je de afhankelijkheden van elkaar scheiden. Je kunt een module (klasse) maken die de autorisatie op zich neemt voor alle mogelijkheden in de applicatie, waardoor je dit allemaal op een centrale plek krijgt. Ook kun je het feitelijke sturen van een bericht loskoppelen van het verwijderen van een bericht op het forum.
Case study
Testbare code
Iedereen die met procedurele code werkt weet hoe lastig het is om die code goed te testen. Meestal wordt er een testscenario opgesteld met handelingen die op de website moeten worden uitgevoerd en de verwachte resultaten die daarop horen terug te komen. Na elke wijziging moet het hele scenario opnieuw worden afgelopen en omdat dat zo'n berg werk is worden de tests vaak rommelig uitgevoerd waardoor je uiteindelijk nog niet weet of alles klopt.
Als je OO programmeert kun je er voor kiezen unit tests te schrijven. Met unittests worden de afzonderlijke classes en methods van de classes getest om te zien of ze doen wat ze moeten doen. Immers; als alle onderdelen doen wat ze moeten doen dan doet het geheel ook wat het moet doen. Bijkomende voordelen hiervan zijn dat je per onderdeel een foutrapportage krijgt en dus eigenlijk meteen weet in welk onderdeel de fout zit, en dat de tests helemaal automatisch kunnen worden uitgevoerd. Aanzetten, koffie halen, rapport lezen.
Zeker wanneer je een applicatie schrijft die in een later staduim nog moet worden kunnen aan gepast, is unittesten erg interessant. Alles dat je ooit hebt bedacht om te testen kun je met een druk op de knop opnieuw testen. Unittesting maakt ook testdriven development mogelijk, maar dat valt buiten dit artikel.
Toegankelijkheid
Conclusie
Misschien lijkt het nutteloos om je code OO te schrijven, omdat het in eerste instantie meer werk lijkt. Dat is echter niet het geval. Wanneer je goed met je code omgaat, zullen er minder bugs in zitten, is het beter herbruikbaar en beter aan te passen.
Er is nog wel één probleem: niemand leert van vandaag op morgen goede OO code te schrijven. Je moet er dus wel tijd in steken voordat je er profijt van kunt hebben, maar als je objectgeoriënteerd hebt leren programmeren is er één garantie: je wilt nooit meer terug naar de oude manier van programma’s of webapplicaties schrijven.
Bronnen
Waarom object georiënteerd programmeren?