Gearchiveerde post van sintax.be
Programmeerstijlen in PHP
De laatste tijd ben ik het belang gaan inzien van gestructureerde code bij het programmeren van webapplicaties. Doorheen de maanden (en jaren) ben ik geëvolueerd op vlak van programmeerstijl. Daarom hier mijn bevindingen en frustraties.
Wat is voor mij een goeie programmeerstijl. Wel eerst en vooral moet de code duidelijk “leesbaar” zijn. Dit is vooral belangrijk wanneer je na verloop van tijd wijzigingen wil aanbrengen. Dus voorzie best de nodige commentaarregels bij niet voor de hand liggende functies.
Meng geen HTML en PHP code. Wat zeg ik hier nu? Wel, ik begin meer en meer te geloven in een scheiding van code en structuur. Wanneer je HTML tags en PHP gaat mengen, wordt het in de meeste gevallen een mengelmoes van code, waar je kop nog staart kan aanknopen. Iedereen die al eens de code van iemand anders heeft moeten wijzigen kent dat gevoel wel. Als er PHP en HTML door elkaar staan dan zie je vlug dingen over het hoofd. Tot vijfmaal toe over dezelfde code moeten scrollen alvorens iets terug te vinden, is geen uitzondering.
Maar hoe kan je nu precies HTML en PHP code scheiden? Over een van deze methoden heb ik net een hoofdstuk gelezen in het boek Professional PHP5. Daarin wordt gesproken over het design pattern “Model, View, Controller”. Door deze drie componenten bij een webapplicatie van elkaar te scheiden kan je makkelijker overzicht bewaren. Het is namelijk veel beter om kleinere componenten te ontwikkelen die samen één geheel vormen, dan enkele enorm grote bestanden die tot de nok gevuld zijn met onleesbare code. Voor de uitgebreidere uitleg hierover ben ik al bezig aan een andere post, maar daaraan is nog wat werk.
Iets wat ik iedereen kan aanraden is eens de code van anderen te bekijken. Het lijkt tegenstrijdig met wat ik hierboven zeg, want daar vermelde ik de gruwel die je daar soms aantreft, maar je kan ook leren uit andermans fouten, of net uit de goeie dingen die ze produceren. En probeer eens te code te bemachtingen van een groter en uitdagender project. Want bij kleinere projecten mag je wel al eens de “quick and dirty” manier toepassen, maar wanneer je met de serieuzere applicaties van start gaat kan je maar beter van bij het begin de nodige zelfdicipline aan de dag leggen. Wat daar draait het hem net allemaal rond.
Probeer zeker ook een aantal veel gebruikte functies (of classes als je objectgeoriënteerd werkt) in aparte bestanden te bewaren, die je als toolkit kan herbruiken in elk project dat je maakt. Je zal zien, dat zal de boel een heel stuk vergemakkelijken en vooral het debuggen en updaten van die basiscode vergemakkelijken.
Zelf geloof ik meer en meer in het objectgeoriënteerd programmeren. Echte praktijkkennis ben ik er nog mee aan het opbouwen, want de meeste projecten waaraan ik werk zijn gemaakt in PHP4, waar de OOP ondersteuning vrij gering is. Toch denk ik dat het vrijwel noodzakelijk is dat elke zelf respecterende webprogrammeur de moeite neemt om de voordelen (en nadelen) van OOP te onderzoeken. Ik wil jullie alvast daarmee de komende weken helpen door mijn eigen ervaringen te delen.