OOP vs Linair

  • Beste CriminalsPoint leden,


    Ik wil graag een discussie starten. Weliswaar eentje die feitelijk al lang is gevoerd, maar tenslotte niet op CP!


    Eerst even de definities:
    OOP: Object Geörienteerd programmeren. Je denkt in objecten, in plaats van lineair: Alles wat achter mekaar moet gebeuren programmeer je gewoon achter mekaar.
    Lineair: Programmeren zoals we het allemaal ooit hebben geleerd. Je schijft alles achter elkaar wat achter elkaar moet gebeuren. Vervolgens breng je structuur aan met if- en else-lusjes.


    Ik zal beginnen met de voordelen van OOP:
    - De code is makkelijker te hergebruiken: Classes kun je objectief houden, waardoor ze makkelijker in andere projecten passen.
    - De code is overzichtelijker: Je kunt veel overzichtelijker programmeren.
    - De code is makkelijker te snappen: Je hoeft niet te weten wat er binnen methoden gebeurd, als je maar weet wat de invoer en uitvoer is.


    Maar OOP kent ook nadelen:
    - Om hetzelfde te bereiken als in lineaire code, heb je vaak meer regels code nodig.
    - Het is moeilijk om OOP (goed) toe te passen.


    Graag hoor ik van jullie naar deze objectieve inleiding wat jullie zwaarder vinden wegen: De voor- of nadelen van OOP. Natuurlijk onderbouw je je mening zo goed mogelijk.


    Ps. Iedereens mening geld, maar is en blijft een mening. Een mening is geen feit, maar houd enkel in wat iemand er van vind. Respecteer elkaars mening, en weersla ze met tegenargumenten, niet met scheldwoorden.


    Hopelijk wordt dit een goede en nette discussie.

  • Dit is nog een mooie dicussie !


    Eigenlijk zijn beide zeer goede manieren van programmeren alleen gaat mijn voorkeur naar OOP en dan meer gericht op MVC/framework. In het begin is OOP nogal moeilijk omdat er veel bij komt kijken maar na wat oefenen heb je het zo onder de knie.


    Stel nu: je bouwt een huis. Je tekent het eerst helemaal uit en besteld alle benodigdheden. Je bent dus goed voorbereid. Dit werkt toch makkelijker dan eerst een pakketje stenen te gaan halen en dan die op elkaar te zetten en dan de ramen te gaan enzovoorts? Dat is nou net een groot voordeel van OOP, eenmaal je alle stukjes in elkaar hebt in je hoofd kun je makkelijk een applicatie scripten.


    Ook is OOP rapper aangepast. Alles zit mooi geordend en je vind alles direct terug. Bij lineair programmeren begin je eraan en dan denk je van: jeetje dit kon veel beter en moet je heropnieuw beginnen. (Heb ik vroeger vaak gehad xD)

  • Mooi een reactie!


    "Eigenlijk zijn beide zeer goede manieren van programmeren alleen gaat mijn voorkeur naar OOP en dan meer gericht op MVC/framework."
    Een beetje dubbel antwoord natuurlijk. Misschien kun je beter onderbouwen wanneer je lineair programmeren de voorkeur geeft? En wanneer object geörienteerd programmeren?


    Ik zie je punt over het 'bouw-een-huis' stukje. Echter vind ik dat jou voorbeeld vooral te maken heeft met de voorbereiding. Maar goed: Object geörienteerde code kun je beter voorbereiden.


    Daarnaast wil ik je uitnodigen een topic te starten over het MVC model. Ik dacht dat dit de hoog gegrepen zou zijn, maar misschien toch niet. Ik zou het leuk vinden als je wat probeert!

  • Zal ik later wel eens doen !


    Lineair programmeren is het beste om te leren programmeren. OOP gebruik je voor grote applicaties en voor iets kleins maak je dan gebruik van een kleine klasse zodat je die eventueel later kunt hergebruiken in een grotere applicatie in OOP.

  • Ik hanteer maar 1 enkele zeer simpele regel:
    Voor kleine websites, 1 enkel bedrijfje, waar niets in herhaald wordt, gebruik ik geen classes en zelden functies.


    (Uiterlijk wordt natuurlijk wel via .tpl gescheiden van de code - en dat achterliggende systeem heeft wel classes en functies, maar verder is dit niet nodig.)


    Wanneer nodig:
    - Grote projecten
    - Projecten waar veel herhaald wordt
    - Als je meerdere talen moet ondersteunen
    - Als je met template parsers werkt


    Kleine websites kunnen gewoon zo gemaakt worden, zonder hele schema's uit te tekenen.


    Verder vind ik UML een must voor ingewikkelde systemen, zoals waar er betalingen bij aan te pas komen.
    (Callback-url's, emails, verwittigingen, origin-controles, inlogcontroles, betaalwijzes, ...)


    Ps: UML = Unified modelling Language
    Dit is een manier om schema's te tekenen voor programma's, net zoals een architect plannen tekent voor een huis.

  • UML is totaal verschillend met MVC. UML is een manier om je programma's te ontwerpen.


    Ik ben het er niet mee eens dat kleine websites gewoon lineair gescript kunnen worden. Wanneer je op een goede manier je andere applicaties hebt opgebouwd, kun je de classes ook hergebruiken in kleine projecten.


    Overigens neemt dat niet weg dat object ge?rienteerd programmeren heel iets anders is als enkel werken met classes en functies!

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!