Gisteravond ben ik, samen met meer dan dertig anderen, bij een zeer interessante Drupal bijeenkomst geweest in Rotterdam.
Dit was de eerste Drupal Tech Talk; een nieuwe soort bijeenkomsten voor hardcore Drupal developers die per meeting 2 technische ‘talks’ hebben, gescheiden door een (bezorg)diner. De bedoeling is om dit om deze TechTalks om maand te houden, telkens bij een ander bedrijf.
De gastheren waren voor deze eerste meeting: Triquanta & Hoppinger in het kantoor van Hoppinger.
De eerste Talk ging over module development en best practices en werd gegeven door Jur de Vries van Triquanta..
Wanneer je modules gaat ontwikkelen zijn er een aantal zaken die het development-proces erg vergemakkelijken: Gebruik een IDE met code-completion, documenteer je code meteen, zodat de IDE dit ook meteen oppikt, gebruik een debugger en bedenk eerst wat je gaat doen, voordat je direct begint te coden.
Omdat Drupal modules gebruik maken van hooks, zijn de meeste modules procedureel van opzet. Ook hierbij gelden een paar regels/best-practices: voorkom zeer lange functies, Houd de code leesbaar, laat functies maar 1 taak uitvoeren (tenzij deze functie enkele van deze kleine functies aanroept (een groeps-functie)), maak onderscheid tussen functies die alléén in deze module gebruikt worden en API functies(API functies moeten zo veel mogelijk gelijk blijven) en gebruik leesbare, beschrijvende functienamen.
Verder is er ingegaan op het gebruik van OO(Object Oriented) programming voor module-development. OO kan erg handig zijn bij bijvoorbeeld communicatie met services, fout afhandeling en de complexere code waarbij gebruik gemaakt wordt van Object-only features en design patterns. Nadeel hierbij kan wel weer zijn dat de communicatie tussen Drupal en het object soms wat moeilijker verloopt en hier soms wat noodgrepen voor nodig zijn. Wanneer je voor een OO oplossing gaat, moet het wel toegevoegde waarde hebben.
Na de gesponsorde Pizza break met drankjes gingen we verder met de tweede talk.
Dit ging over Voiture, een custom build release-manager voor Drupal projecten, die voor de developers van Hoppinger de grootste release problemen van Drupal wegnemen.
Het systeem is gebaseerd op linux/osx bash-scripts die met behulp van svn, drush, features, configuratie bestanden en basisdata, reproduceerbare development, test, staging,
en live omgevingen kan opzetten en updaten.
Alle wijzigingen worden in code gezet en dus ook in svn en zijn met het script uit te rollen, en ook weer terug te zetten, wanneer dit toch problemen oplevert.
Door de vele vragen en opmerkingen van de aanwezige developers bleek dat met Voiture wel een probleempunt van Drupal opgelost zou kunnen worden.
Omdat er zoveel positieve geluiden waren heeft Hoppinger ook aangegeven dat zij zullen proberen de code enigszins op te schonen, te documenteren en dan op GitHub te plaatsen, zodat anderen hier ook profijt van hebben.
Al met al een zeer geslaagde eerste Drupal Tech Talk. Ik ben nu al benieuwd naar de volgende!