[Alg] Nieuw fysiek bestand | dynamisch

Pagina: 1
Acties:

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Vaak wanneer ik een applicatie, zelf altijd in PHP, programmeer zit ik met een vraag:
Wanneer maak je voor een nieuw stukje code een nieuw bestand aan, en wanneer
geneer je deze bestanden, of de content, dynamisch?

Je hebt al snel rond de 20 (kan oplopen lijkt me) bestanden met een beetje applicatie.
Dit is geeft ergens veel gemak, omdat het een heldere opdeling is.
Echter, het vergt wel meer menselijk handelingen ipv het automatiseren.

Ik vroeg me af hoe jullie daar over denken.

Wanneer een extra fysiek bestand en wanneer content uit DB? (of andere manier van dynamisch genereren)

(zelf dacht ik aan documentatie (kan ook weer met tool) als goed argument voor meerdere bestanden)

mijn naam slaat nergens op, althans niet op mij :P


  • RickyHeijnen
  • Registratie: Maart 2005
  • Laatst online: 30-04-2025
Bij het maken van een applicatie is het de bedoeling dat de code overzichtelijk blijft. Zowel voor jezelf als iemand die de code in de toekomst misschien moet bewerken. Ik zorg er zelf altijd voor dat een bestand niet meer dan 1500 regels bevat. Als ik merk dat ik daar ruimschoots overheen ga, ga ik kijken welk if()-blok veel regels bevat en deze zet ik dan in een apart bestand.

Daarnaast zijn er altijd stukken code die je vaker in een applicatie gebruikt. Vaak zijn dit functies, of grote groepen variabelen. Deze zet ik ook altijd in een gezamelijk bestand die op elke pagina geïnclude word, ook al heb ik deze functies/variabelen op die pagina niet eens nodig.

Bij applicaties zoals een CMS, forum, groot ledensysteem o.i.d. komen vaak grote forumulieren voor. Deze bevatten in mijn geval vaak grote stukken HTML-code. Uitgebreide HTML vind ik vaak erg storend tussen een groot stuk PHP-code. Ik probeer dan ook zoveel mogelijk HTML weg te laten door grote formulieren in een apart bestand te zetten en later te includen.

Nouja, dit is zo ongeveer mijn manier bij het maken van nieuwe bestanden. Maar let wel op... teveel bestanden kunnen de overzichtelijk ook erg naar beneden halen omdat je al snel niet meer weet in welk bestand je werkt of in welk bestand je moet werken omdat grote "herkenningspunten" bijvoorbeeld niet meer in het hoofd-bestand staan.

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Opdeling van bestanden is puur voor mensen. Een compiler / parser kan prima overweg met bestanen met 10k regels. Mensen kunnen dat niet. Er is geen vaste of beste manier om dit te doen. Enkele punten waar je op kan letten:

- Heeft de code in een bestand sterke cohesie (d.w.z. dient het een enkel doel)
- In een OO taal is vaak elke class een enkel bestand
- Kan ik later, over een paar maanden, met deze indeling snel een stukje code / functionaliteit terugvinden?
- Onderscheidt je de logica van de interface (dus functies van de HTML code)? Dit kan je in aparte bestanden opsplitsen. (Templates, e.d.)
- Heeft het bestand teveel regels om nog werkbaar te zijn (als je eerdere punten uitvoert zal dit vaak meevallen, ik vind zelf > 1000 regels al vrij veel, zeker voor een php script)
- Is duidelijk wat 'algemene' en herbruikbare code is, en wat specifieke applicatie code is?

20 bestanden lijkt nu misschien veel, maar het betaalt zich zeker terug bij het opsporen van bugs en onderhouden van de code later.
rheijnen schreef op zaterdag 11 juni 2005 @ 18:03:
Nouja, dit is zo ongeveer mijn manier bij het maken van nieuwe bestanden. Maar let wel op... teveel bestanden kunnen de overzichtelijk ook erg naar beneden halen omdat je al snel niet meer weet in welk bestand je werkt of in welk bestand je moet werken omdat grote "herkenningspunten" bijvoorbeeld niet meer in het hoofd-bestand staan.
Vaak is dit eerder een symptoom van een slecht ontwerp dan een probleem van teveel bestanden.

[ Voor 22% gewijzigd door Orphix op 11-06-2005 18:40 ]


  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Zeker als je de headers en footers en wellicht delen van de body automatisch laat generen door idd templates te gebruiken.
ok, thanx voor de tips.
Vraag me alleen af of veel mensen die probleem hebben, lijkt van niet.... :)

mijn naam slaat nergens op, althans niet op mij :P


  • whoami
  • Registratie: December 2000
  • Laatst online: 06-05 15:36
In C# (en ook in de Java wereld), zorg je ervoor dat iedere class in z'n eigen bestand zit. Dat maakt het gewoon overzichtelijker voor de mens.
Nu, in .NET 2.0, is het zelfs zo dat je je classes kan splitsen over verschillende files (partial classes). Dit is handig om de source die de IDE voor jou gegeneerd heeft, in een andere file te houden.

https://fgheysels.github.io/


Verwijderd

Orphix schreef op zaterdag 11 juni 2005 @ 18:39:
Opdeling van bestanden is puur voor mensen. Een compiler / parser kan prima overweg met bestanen met 10k regels.
Toch stiekem een keer gezien dat iemands java programma niet wilde compileren omdat hij over de 64k heen ging ;)

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
en als je nu 15 vragen aan een klant / persoon wil stellen, met max 2 vragen per pagina, dan ga je geen 8 of 9 bestanden voor maken lijkt me.
Hoe los je dat 'netjes' op dan?

Het aanmelden van een ADSL abbonement bij planet internet doet dat bijvoorbeeld.

maak je dan bijvoorbeeld een functie (evt in class) die de htmlcode voor de vraag opmaakt (want we hebben het hier over alle soorten formatributen) en de geposte-vars in een session oplsaat en in een keer verwerkt?
Zijn er andere manieren?

[ Voor 15% gewijzigd door Zoolander op 12-06-2005 16:36 ]

mijn naam slaat nergens op, althans niet op mij :P


  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 23:22

ripexx

bibs

Er si niets mis met veel bestanden, zolang ze duidleijk benamingen hebben en in een duidelijke folder structuur staan. De vraag of je een bepaald form moet opsplitsen in 1,2 of 10 bestanden in lang niet zo relevant. Kan je niet iets van een template parser oid gebruiken?


Zeker in PHP zijn er verschillende template engines (smarty of PHP zelf) die je een hoop werk uit handen kunnen nemen. Zeker als je geneste templates gaat gebruiken kan je vrij dynamische formulieren genereren. Immers is elk form element dan een eigen template. Dus dan heb je van begin af aan veel templates maar kan je heel veel verschillenden formulieren maken met de basis set.

buit is binnen sukkel


Verwijderd

Zoolander schreef op zaterdag 11 juni 2005 @ 17:22:
Vaak wanneer ik een applicatie, zelf altijd in PHP, programmeer zit ik met een vraag:
Wanneer maak je voor een nieuw stukje code een nieuw bestand aan, en wanneer
geneer je deze bestanden, of de content, dynamisch?

Je hebt al snel rond de 20 (kan oplopen lijkt me) bestanden met een beetje applicatie.
Dit is geeft ergens veel gemak, omdat het een heldere opdeling is.
Echter, het vergt wel meer menselijk handelingen ipv het automatiseren.

Ik vroeg me af hoe jullie daar over denken.

Wanneer een extra fysiek bestand en wanneer content uit DB? (of andere manier van dynamisch genereren)

(zelf dacht ik aan documentatie (kan ook weer met tool) als goed argument voor meerdere bestanden)
Ik moet zeggen dat ik de vraag niet helemaal begrijp. Mij lijkt de scheiding duidelijk:

Code gaat in bestanden, inhoud/layout wordt dynamisch gegenereerd (dus uit een database getrokken en gecombineerd met een template systeem -- misschien uit de database, maar liever van schijf).

Nu kun je praten over automatisch gegenereerde code maar in de PHP wereld is daar nog niet echt veel sprake van volgens mij.

  • Onno
  • Registratie: Juni 1999
  • Niet online
Verwijderd schreef op zondag 12 juni 2005 @ 13:18:
Toch stiekem een keer gezien dat iemands java programma niet wilde compileren omdat hij over de 64k heen ging ;)
Dat ging dan waarschijnlijk over de (gecompileerde) grootte van een enkele method. Niet over die van het hele bestand.

Waarom die limiet er trouwens in zit is me een raadsel, ik ben er ook wel eens tegenaan gelopen. Erg storend.

[ Voor 5% gewijzigd door Onno op 13-06-2005 12:27 ]

Pagina: 1