*** Dit is een "herstart" voor Webdesign, de zin en onzin van frameworks.. Gelieve 't deze keer een beetje netjes te houden. Dank u
***
Hoi, sorry voor de late reactie. Ik zal ook proberen deze keer wat duidelijker te zijn en het topic goed te volgen.
Eerst een stukje achtergrond: ik ben programmeur van beroep, en heb de afgelopen 15 jaar heel wat websites gemaakt, vooral intranet sites.
In het begin had je eigenlijk alleen wat html pagina's en een stukje navigatie om die af te beelden. De pagina's waren statisch. Leuk en nieuw, maar beperkt.
Mijn eerste forum, uit de tijd dat mensen nog niet wisten wat dat was, was een CGI (Perl) script, dat rechtstreeks de html pagina ging zitten te verbouwen (!). Een nieuwe reactie werd dus rechtstreeks (met zoek-en-vervang) in de html pagina op de server gestopt.
Natuurlijk is dat een heel gepruts, en dynamisch je pagina's opbouwen op de server een grote verbetering. En als je dat een beetje generiek opzet, heb je net een framework gemaakt. Ik ben een groot voorstander van deze nieuwe manier van websites maken.
Maar, in de afgelopen 10 jaar zijn die frameworks flink gegroeid, en is alles zoveel mogelijk geabstraheerd. Op zich is dat heel goed, als het het ook makkelijker maakt om een website op te zetten. En de meeste frameworks maken het inderdaad een stuk makkelijker om snel wat in elkaar te zetten.
Het begint echter lastiger te worden, als de klant komt met moeilijke vragen voor nieuwe functionaliteit waar je geen rekening mee hebt gehouden. Voor je het weet, moet je je in allerlei bochten wringen om die functionaliteit mogelijk te maken, het framework aanpassen of "nee" zeggen.
Een klant kan hele onschuldige vragen stellen, die heel veel werk met zich meebrengen.
Als je samen met een team werkt aan een succesvolle website, en vooral als je datzelfde concept ook wilt gaan uitrollen voor andere klanten, zie je twee dingen:
1. Daar iedereen zo zijn eigen idee heeft hoe dingen moeten werken, treed er wildgroei op.
2. Om die wildgroei in te perken, word het framework (of je eigen tussenlaag) steeds complexer en de regels waar je je aan moet houden steeds strikter.
En op die manier wordt het steeds moeilijker om aan de eisen van de klant te voldoen.
Of neem nu het fixen van bugs: als je een aanvraag moet indienen voor een wijziging aan het framework, of er snel iets omheen kunt hacken, dan is voor veel programmeurs en managers de keuze snel gemaakt.
Ook is het heel verleidelijk om voor additionele functionaliteit een extern pakket te gebruikenn dat dat voor je doet. Rapportages, controls, een DAL, etc. En alhoewel die dingen je op korte termijn veel werk besparen (je hebt na een paar dagen prutsen een functionele demo), leveren ze vaak op langere termijn heel wat hoofdbrekens op, zodra de klant dingen gaat vragen die niet standaard aanwezig zijn.
Vandaar: KISS, ga voor iedere pagina/control rechtstreeks de gegevens ophalen, gebruik daarvoor zoveel mogelijk generieke containers en bouw alleen wat je ook nodig hebt. Besteed daar ook tijd aan, en doe het goed. Hoe minder lagen en hoe simpeler ze in elkaar zitten, hoe beter de levensverwachting van je applicatie.
Ook vind ik het zeer belangrijk dat je applicatie zo leesbaar en begrijpelijk mogelijk is. Niet door goede documentatie te eisen, want dat gebeurt in de praktijk toch nooit. Gewoon door dingen zo duidelijk en logisch mogelijk op te zetten. Je kunt achteraf altijd profilen om die paar functies die alle tijd kosten te optimaliseren.
Dat betekent dus, dat je de dingen niet onnodig abstraheert. Net voldoende om het makkelijker te maken. En dat je wel zoveel mogelijk dingen generiek maakt, maar ze niet afdwingt. Het moet gewoon makkelijker te zijn om ze te gebruiken, dan het is om het zelf opnieuw te doen.
MVVM en WPF (XAML !) schieten hier echt te ver door. Het bos is groot, en de bomen heel variabel. Ik heb vaak geen idee wat ik aan het doen ben. En de event-handling en databinding voor custom controls is vaak echt niet te volgen.
Maar zoiets heb je al snel, met een project waar al jaren aan gewerkt wordt door een team.
En ik ben hier vast niet de enige programmeur die dat zo heeft ervaren.
Tussen haakjes (dynamisch opbouwen van de DOM via JavaScript): ik heb het getest, en Google gaat wel degelijk eerst je pagina renderen. Dus de meeste inhoud wordt ge-indexed. Maar heel diepgaand is het niet (lees: zodra ze een vreemde constructie tegenkomen stopt het), dus moet je inderdaad eerst een beschrijving en zo in je body stoppen voordat je hem leegmaakt.
Is dit een betere topic start?
[ Voor 1% gewijzigd door RobIII op 12-11-2012 21:02 ]