Toon posts:

[Alg/Web] Templates vanuit een database of filebased

Pagina: 1
Acties:
  • 128 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik zit hier nu al een tijdje over te denken. Wat levert de beste performance? Ik zou zelf denken filebased. Toch zijn er echter een aantal producten (denk aan vbulletin) die hun templates uit een db trekken. Vbulletin wordt toch gezien als een forum wat ook onder hoge belasting goed presteerd.

Wat gebruiken jullie zelf en waarom? Zelf neig ik naar filebased, maar mocht iemand me een goed punt kunnen noemen om database based te gaan werken dan is dat natuurlijk ook een optie ;)

Wellicht is een optie als mmCache of memcached ook wel leuk? Iemand hier nog ideeën over?

  • Cavorka
  • Registratie: April 2003
  • Laatst online: 27-03-2018

Cavorka

Internet Entrepreneur

Ik gebruik zelf files, omdat ik geen enkele reden zie om het in een database te stoppen. Meestal (hangt een beetje af van hoe je met je templates om gaat) heb je toch niet zo veel template files en is de belasting van een query (hoe klein ook) volgens mij niet de moeite.

Een database is handig voor het behandelen van veel (relationele) data, maar de enige reden die ik kan verzinnen om je templates in een DB te stoppen is om ze niet publiek te maken (directe aanroep van een template vanaf de server), maar dat kan het een Deny all ook oplossen.

Plus: hoe edit je templates in een DB? Het lijkt mij nogal vaag werken als je je templates in een DB hebt staan, want ik kan me niet voorstellen dat je met een textarea je templates gaat editten. UltraEdit (of elke andere editor) werkt toch 'iets' handiger. Highlighting, 'tig shorcuts. etc.

the-blueprints.com - The largest free blueprint collection on the internet: 50000+ drawings.


  • JHS
  • Registratie: Augustus 2003
  • Laatst online: 04-01 15:49

JHS

Splitting the thaum.

Cavorka:
Een database is handig voor het behandelen van veel (relationele) data, maar de enige reden die ik kan verzinnen om je templates in een DB te stoppen is om ze niet publiek te maken (directe aanroep van een template vanaf de server), maar dat kan het een Deny all ook oplossen.
Of beter: ze zoals het hoord buiten de webroot plaatsen :) .

Daarnaast ben ik het met je eens dat ik werkelijk geen enkele reden is om een database te gebruiken :) . En als je met high-performant forumsoftware wil vergelijken: React gebruikt ook file based templates :) .

DM!


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Voordeel van een DB is dat de informatie van de site gecentraliseerd is. Je kan bij wijze van spreken de huidige site weggooien, een nieuwe eroverheen kopieeren (met bugfixes) en zolang dezelfde database gebruikt wordt is er niks aan de hand. Daarnaast kan je qua rechten beheer wellicht meer geadvanceerde dingen doen ivm template bewerking, en dit ook online doen in plaats van via ftp.

Maar wat wijsheid is hangt af van het soort templates en de eisen van het systeem. Ik denk dat in beide gevallen de meeste snelheid te behalen valt door het cachen van de templates, en dan maakt de snelheid van de eerste keer ophalen ook niet veel uit.

Verwijderd

Verwijderd schreef op vrijdag 24 februari 2006 @ 12:39:
Ik zit hier nu al een tijdje over te denken. Wat levert de beste performance?
Voor de performance zouden beide oplossingen niet veel uit mogen maken, aangezien deze gewoon in-memory gecached moeten worden met een cache-dependency richting het filesystem of de database.

  • Otherside
  • Registratie: Juni 2005
  • Laatst online: 21-01-2024
Cavorka schreef op vrijdag 24 februari 2006 @ 14:16:
Plus: hoe edit je templates in een DB? Het lijkt mij nogal vaag werken als je je templates in een DB hebt staan, want ik kan me niet voorstellen dat je met een textarea je templates gaat editten. UltraEdit (of elke andere editor) werkt toch 'iets' handiger. Highlighting, 'tig shorcuts. etc.
Bij bepaalde systemen lijkt het me toch handig. Als je bijvoorbeeld je gebruikers/beheerder/admin buiten de files om (delen van) een template wilt laten editten.

[ Voor 3% gewijzigd door Otherside op 24-02-2006 16:33 ]


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Cavorka schreef op vrijdag 24 februari 2006 @ 14:16:
Plus: hoe edit je templates in een DB? Het lijkt mij nogal vaag werken als je je templates in een DB hebt staan, want ik kan me niet voorstellen dat je met een textarea je templates gaat editten. UltraEdit (of elke andere editor) werkt toch 'iets' handiger. Highlighting, 'tig shorcuts. etc.
Dat vind ik zelf wel een vrij belangrijk argument. De textarea als code editor zuigt aarsch.

Rustacean


  • Civil
  • Registratie: Oktober 2002
  • Laatst online: 08-04 22:56
Zoals eerder aangehaald zou ik vanuit edit overwegingen voor fysieke files gaan. Deze zijn toch beter te editten in je favoriete texteditor. Als je zoals vele webapplicaties/templateparsers doen een complete php versie van je template maakt, dan is het ophalen van de template uiteindelijk één read actie naar je filesysteem.

Wat je natuurlijk ook kunt doen is de vaak losse files van de templates naar de database schrijven als php versie. Zoals je dus vaak ziet maar dan naar een file toe.

Ik denk dat je het ophalen van 1 grote template file uit de database of het ophalen van 1 file uit het filesysteem zou moeten benchmarken om te kijken wat sneller is. De database zal uiteindelijk de template files gaan cachen in het geheugen, maar ook de fysieke files zullen in het geheugen gecached worden lijkt mij. Geen idee wat ik dat geval sneller is ?

  • flowerp
  • Registratie: September 2003
  • Laatst online: 04-02 02:01
Bijna iedereen zegt het al, maar ga voor fysieke files. Het edit aspect is het grootste dillema waar je mee zit. Een van de web projecten waar ik op zat draaide helemaal door in dingen in de DB zetten. Zelfs de SQL queries stonden in de DB, zodat je dus eerst een query moest doen om je query op te halen die je dan kon executen |:(

Het editten is dus zeer problematisch. Als we alleen kijken naar template files dan zie je dat daar zeer goede editors voor zijn. JSP syntax highlighting, error checking terwijl je types, automatisch neerzetten van imports boven aan je pagina als je code completion gebruikt etc etc. Alle editors die dit kunnen verwachten een file. Het gaat hier dan om de meest profesionele editors. Als templates in DB stoppen een serieuze optie was dan hadden deze editors hier toch wel support voor gehad?

Tevens gaan heel veel dingen niet goed meer als templates uit de DB moeten komen. Stel dat je een simpele <jsp:include> tag op je pagina zet. Hoe ga je die code dan wijsmaken dat de te includen pagina uit de DB moet komen? Zelfde met redirect actions in servlets (JSF/ Struts, etc). Die zou je allemaal moeten gaan aanpassen om requests te resolven naar een DB toe. Lijkt me onbegonnen werk.

Een ander groot probleem met templates in de DB is versie controlle. Als je file based werkt kun je via CVS, SVN etc precies zien wie wat en wanneer veranderd heeft en eventueel snel een oud stukje terughalen. Als je je templates in de DB stopt werkt dit ook al niet meer.

Nog een andere probleem is dat je in verreweg de meeste situaties 1 centrale DB hebt, maar meerdere web applicatie bakken hebt staan. Met file bases templates heb je automatisch op deze manier al een hele basale vorm van clustering (namelijk, elke bak laadt en cached z'n eigen files). M.a.w. de scalability met file based in veel groter.

Zoals ook al gezegd, kwa access moet je content die niet van buitenaf beschikbaar mag zijn gewoon buiten je webroot houden. De WEB-INF directory is daarvoor de standaard plek.

Nadelen zijn dus editing, lib support, versie controlle en scalability. Voordelen zijn niet bestaand. De conclusie lijkt me daardoor heel erg voor de hand liggend.

It's shocking to find how many people do not believe they can learn, and how many more believe learning to be difficult.

Pagina: 1