Frameworks, wel of niet gebruiken?
Ik ben bezig met een redelijk groot project, wat heel wat mensen moet aantrekken. Ik gebruik het framework van CodeIgniter. Is dit wel slim om te gebruiken voor een groot project?
Gewijzigd op 01/01/1970 01:00:00 door Jorian
Met mod_rewrite kun je namelijk altijd je URL's "pimpen" e.d.
Wat is je échte reden om 1) gebruik te maken van CodeIgniter en 2) om uberhaupt een framework te gebruiken? Die redenen zijn net iets belangrijker dan dat je de URL's mooi vind ;)
Quote:
Spam verwijderd.
SanThe.
SanThe.
Gewijzigd op 01/01/1970 01:00:00 door - -
Bij de site waar ik aan werk, is het de bedoeling dat er heel veel leden tegelijk online moeten kunnen zijn, zonder dat het slomer word. Daarom programmeer ik het in CodeIgniter, want dat is volledig in classes geprogrammeerd, aangezien classes veel sneller zijn.
Aan je posts te horen heb je niet niet heel veel OOP-kennis, dus ik weet niet of het aan te raden is...
Waar denk jij aan te zien dat ik niet veel OOP kennis heb?
In je tweede post zeg je dat een framework (gebaseerd op classes) juist wel goed is voor een grote site.
Ik probeer er eigenlijk achter te komen of het slim is om een framework te gebruiken ipv alles zelf te maken.
Kijk eens aan, we komen ergens! Wellicht dat je je topic dus aan kunt passen naar "Frameworks, wel of niet gebruiken?". Verdiep je anders eerst eens in frameworks in het algemeen ;)
Ik heb de topicnaam veranderd. ;)
Want daar gaat het om bij het programmeren in objecten. Je wilt je code mooi hebben, op zo'n manier dat je het kan hergebruiken, herstructureren, uitbreiden, vervormen, knijpen, lief hebben, uitschelden en troosten. Je script wordt niet sneller, het uitbreiden en werken aan je script wordt sneller.
En dat doen frameworks eigenlijk ook voor je. Het uitwerken wordt sneller. Het script zelf wordt niet snel sneller, zeer waarschijnlijk wordt het zelfs langzamer omdat het framework redelijk algemeen is, en niet specifiek gemaakt voor jouw doel. Het heeft wat functies die jij niet gebruikt, het houdt rekening met dingen die in jouw situatie nooit zullen voorkomen. Er is overhead. Daar tegenover staat dat je niet zelf meer hoeft na te denken over bepaalde design-problemen waardoor je je site veel sneller de lucht in kan krijgen. En zeker wanneer je vrij weinig ervaring hebt met programmeren in objecten (en daarmee bedoel ik vooral het ordenen in objecten) is een framework een mooie kapstok je die mept wanneer je de foute kant op gaat. Het is een soort groot voorbeeld.
En nu de hamvraag: Moet ik een framework gebruiken? Moet je zelf weten. Een framework kan dienen als goed voorbeeld, als kapstok en kan je een heleboel denkwerk besparen (denk aan praten met database, ORM, MVC, routing, en "kleine dingetjes" als rekenen met datums of resultaten verdelen over pagina's) Daarentegen kan je datzelfde ook zien als een framework dat je regeltjes oplegt, al de fun uit het programmeren haalt. (daarom gebruik ik er niet een, juist ORM, MVC, en dat rekenen met datums programmeren vind ik leuk)
Samenvatting: kies niet een framework omdat je site er sneller van wordt, kies er een omdat je code er waarschijnlijk kwalitatief beter van wordt. En als je met meerdere mensen aan 1 site werkt, of je vermoed dat de site enorm zal gaan groeien, dan is kwalitatief goeie code echt iets waar je een moord voor pleegt. (En dat realiseer je je pas wanneer het je eraan ontbreekt ;) )
Kies een framework omdat je code er waarschijnlijk kwalitatief beter van word:
Je zegt een "groot" project. Dan wil je niet dat er rare dingen in je code voorkomen (ook wel "bugs" genoemd). Frameworks worden vaak tot in den treure getest (vaak zelfs gebouwd middels test-driven development). De kans dat er fouten in voorkomen is dus vrij klein. Er is ook nog eens een grote community die het framework onderhoud, dus een fout is ook snel gevonden. Eigenlijk staat het gebruik van een framework garant voor een goed getest platform dat dus goed geschikt is voor grote applicaties.
Wil je naar nieuwe versies van het framework kunnen upgraden, dan is het zaak dat je het framework zelf niet aanpast. in zend heb je bijvoorbeeld de map library/Zend. Deze map mag _absoluut_ niet gewijzigd worden als je het Zend framework ooit van een upgrade zou willen voorzien. In plaats van het wijzigen van de 'core' van het framework, zou je in dit geval een eigen namespace kunnen maken. Bijvoorbeeld library/Jorian. Zo hou je je geschreven classes compatible met eventuele volgende versies van je gekozen framework.
Met meerdere mensen in je project is een framework ook een goede keuze: veel documentatie op internet, vaak al voorkennis bij collega's, etc.
Let overigens wel goed op de performance impact van 'handige' dingen als autoloaders. Volgens de test op onderstaande URL, gaan het aantal requests/minuut met de factor 30 omhoog (hoger=beter) wanneer je geen autoloader gebruikt...
http://blog.digitalstruct.com/2007/12/23/zend-framework-performance-zend_loader/
Ik ben zelf alleen gespecialiseerd in Zend Framework in PHP, maar ik hoor wel goede dingen over CodeIgniter. Dus je bent goed bezig, niet twijfelen. Ik heb trouwens symfony en cakephp ook goed bestudeerd en dat zijn ook zeer goede opties.
Gewijzigd op 01/01/1970 01:00:00 door PHP erik