Drupal tech talk succes
Op 19 mei 2011 was de eerste Drupal Tech talk georganiseerd door Triquanta en Hoppinger. Ik kan wel zeggen dat het een groot succes was. We gingen er van uit dat er ongeveer 15 mensen zouden inschrijven omdat we aangekondigd hadden dat de onderwerpen zeer technisch van aard zouden zijn. Er waren maar liefst 36 inschrijvingen dus dat overtrof onze stoutste verwachting.
Module architectuur
Als eerste gaf Jur van Triquanta een presentatie over module architectuur. Hij deelde zijn ervaringen op het gebied van keuzes in het ontwikkelproces van een Drupal module. Wat zijn simpele dingen die je kan doen om het ontwikkelproces te versnellen zoals het gebruik van een IDE en debugger en het goed documenteren van je code op het moment dat je het schrijft. Daarna ging hij in op de beslissing op object geörienteerd te werken of de procedurele aanpak. Dit laatste is vaak aanlokkelijk omdat Drupal zelf niet OO is opgezet. Als de state belangrijk is, kan het vaak toch heel handig zijn om OO te gaan werken. Het bewaren van de state van een object wordt bijvoorbeeld gebruikt in de "Advanced Search" module voor Apache Solr die gebouwd is voor de Nationale Ombudsman. Als je procudureel werkt zorg er dan voor dat een functie altijd maar één taak heeft. Dit houdt de code overzichtelijk en begrijpbaar voor andere developers maar ook voor jezelf op een later tijdstip. Zorg er ook voor dat je API functgies definieert die niet (snel) veranderen. Op die manier behoud je flexibilieteit. Als voorbeeld kan je denken aan een winkelmandje dat je opslaat in de sessie. Als op een later tijdstip dit voor ingelogde gebruikers ook in de database opgeslagen moet worden is het handig als je een save functie hebt gedefinieerd die het regelt. Dan hoef je maar op één plek de wijzigingen te doen.
Uit zijn ervaringen kwamen drie design principes die het ontwikkelen van Drupal modules betere en onderhoudbaarder maakt:
- Een functie heeft maar 1 taak
- Encapsuleer wat kan veranderen
- Gebruik OO wanneer state belangrijk is
Drupal automation
Daarna vertelde Jochem van Hoppinger over hun zelf ontwikkelde automation tool "Voiture". Ze hadden de behoefte om het hele pad van ontwikkelen, testen, acceptatie en productie te automatiseren en robuust uit te voeren. Het is bekend dat dit bij Drupal projecten problematisch kan zijn en een goede oplossing is dan ook meer dan welkom. Er is al veel beschikbaar zoals drush, Aegir, Features en Strongarm. Een dummy proof roll out systeem ontbreekt echter nog. "Voiture" geeft de mogelijkheid om in 1 commando een development omgeving op te zetten inclusief database en virtual host congiguratie. Het is mogelijk om in code al zekere structurele entiteiten te definieren die absoluut aanwezig moeten zijn in de site zoals de homepage node, menulinks, vertalingen en taxonomy termen. Dit zorgt ervoor dat er direct een werkbare site staat en geen lege Drupal installatie. Dit is iets wat ik nog nergens gezien had.
Doordat deze dingen in code staan kunnen ze aangepast worden en geupdate zodat er een vast en testbaar uitrolpad ontstaat. Alle gegevens, inclusief bijvoorbeeld virtual hosts, van een project kunnen in een versioneringssysteem gestopt worden, waardoor het ook mogelijk wordt om te controleren wanneer er iets mis is gegaan in de configuratie en wie dat heeft gecommit. "Voiture" werkt op dit moment alleen met SVN en Apache. Tijdens de tech talk was er veel belangstelling voor de code en deze zal dan ook open source gemaakt worden. Ik verwacht dat er daarna ook versies voor Git en NginX zullen komen.
Voor Drupal 8 wordt er uiteraard veel werk verzet om de problemen rondom configuration management op te lossen. Voordat Drupal 8 uit is zullen we echter ook oplossingen nodig hebben dus ik verwacht dat we nog meer van "Voiture" gaan horen.
Toekomst
Uiteraard was er voor pizza en bier gezorgd om de inwendige mens te versterken en af te sluiten met een borrel. Het is de bedoeling om om de maand dit soort tech talks te gaan organiseren op een wisselende locatie in Nederland. Er zal iets ingericht worden waar ingediend kunnen worden waar dan op gestemd kan worden. Als iemand een locatie beschikbaar heeft voor een tech talk horen we dat ook graag.

Reacties
Vond het een geslaagde avond,
Reactie toevoegen