Wp Meetup Developer night
Inhoud
De WP Meetup in Leiden dat sinds jaren actief is voor WordPress professionals om nieuwe ontwikkelingen te delen sloot het jaar af met een speciale developers night rondom twee presentaties over de 12 Factor App en de WordPress PHP code.
In onze artikelen en op onze pagina's staan affiliate links. Wanneer je via één van deze links een aankoop doet, ontvangen wij een (meestal kleine) commissie van de verkoper. Wij geven altijd onze eerlijke mening over producten. Klik hier voor meer informatie.
De avond werd gestart met Niels de Blauw die als lead developer bij Level Level zijn visie gaf over het werken met de 12 Factor App. Het systeem waarmee elke online service wordt ondersteund.
Juliette Reinders Folmer presenteerde haar kennis en ervaring over het werken met WP PHP code. Als onderhoudster van de WordPress Coding Standards tooling vertelde zij over de code Standaarden die aanwezig zijn binnen de WP codestijl. Hierbij werd de WordpRess code standaarden uitgelicht en hoe deze af kunnen wijken van algemene code standaarden.
Divi theme & Divi Builder
Bij Elegant Themes ontvang je meer dan
85 premium WordPress themes (waaronder Divi!) voor maar 89 dollar!
Bekijk de themes »»
Lees meer over Divi.
12 Factor App
In zijn presentatie gaf Niel de Blauw het voorbeeld rondom een project waar Level Level aan werkt waarbij de 12 Factor App een fundament geeft voor de teams die bouwen aan webapps, e-commerce en SAAS platformen en daarmee duidelijker communiceren, op een betrouwbare wijze producten opleveren en sneller nieuwe features kunnen bouwen.
De twaalf-factor methodologie kan worden toegepast op apps die geschreven zijn in elke programmeertaal en die gebruik maken van elke combinatie van backing services en is gebaseerd op de volgende 12 factoren:
Codebasis
Er mag één codebase zijn voor een uitgerolde dienst waarbij de codebase voor veel implementaties wordt gebruikt.
Dependencies
Expliciet dependencies aangeven en isoleren waarbij geen duplicaten van projectcodes worden gemaakt maar vanuit een package manager elke dependency isoleren zodat omgevingen gesynchroniseerd zijn.
Configuration
Sla de configuratie op in de omgevingsvariabele waarbij een strikte scheiding wordt gemaakt tussen de configuratie en de code. De code moet hetzelfde blijven ongeacht waar de toepassing wordt gebruikt, maar de configuraties kunnen variëren.
Backing services
Een backing service is elke service die de app via het netwerk gebruikt als onderdeel van zijn normale werking. Voorbeelden hiervan zijn datastores, messaging/queueing systemen, SMTP-services voor uitgaande e-mail en caching systemen. Een developer moet in staat zijn om eenvoudig de backing service van de ene provider naar de andere te wisselen zonder code te wijzigen.
Build, release, run
Een 12 Factor toepassing vereist een strikte scheiding tussen de bouwfase, de release- en de runfase. Elke fase moet altijd een unieke ID hebben en voor elke fase moeten een rollback mogelijk zijn.
Processes
De app wordt in de uitvoeringsomgeving als één of meerdere processen uitgevoerd. De 12 Factoren processen zijn stateless waarbij alle gegevens, die nodig zijn om te blijven bestaan, worden opgeslagen in een stateful backing service; meestal een database.
Port binding
De betreffende service moet zichtbaar zijn voor anderen via dezelfde poort. Als toegang tot een service wordt gebouwd zorg er dan voor dat andere services deze als een bron kunnen krijgen voor port-bound web processen.
Concurrency
Kleine gedefinieerde apps maken het mogelijk om naar behoefte te schalen om de verschillende belastingen te verwerken. Elk proces moet individueel worden geschaald.
Disposability
De processen van de 12-factor app zijn disposable wat betekent dat ze op een bepaald moment kunnen worden gestart of gestopt. Dit maakt snelle elastische schaling, snelle inzet van code of configuratiewijzigingen en robuustheid van de productie mogelijk.
Dev/Prod parity
Houd ontwikkeling, enscenering en productie zo gelijk mogelijk zodat iedereen het kan begrijpen. Continue implementatie vereist een continue integratie op basis van bijpassende omgevingen om afwijkingen en fouten te beperken.
Logs
Behandel logboeken als gebeurtenis-stromen. Logging is belangrijk voor het debuggen en controleren van de algemene gezondheid van de applicatie. Tegelijkertijd moet de applicatie zich niet bezighouden met de opslag van deze informatie. In plaats daarvan moeten deze logs worden behandeld als een continue stroom die wordt vastgelegd en opgeslagen door een aparte service.
Admin processes
De procesvorming is de reeks van processen die gebruikt worden om de normale zaken van de app te doen (zoals het afhandelen van webverzoeken) terwijl deze draait. Voer hierbij admin/management taken uit als eenmalige processen in een identieke omgeving met behulp van dezelfde codebase en configuratie zoals elk proces dat tegen die development, release en run wordt uitgevoerd. Een admin code moet worden meegeleverd met de applicatiecode om synchronisatie problemen te voorkomen.
WordPressCS
Juliette Reinders Folmer toonde het verschil in coderingstandaarden waarmee WordPress zijn eigen standaarden heeft om een website of applicatie functioneel te laten zijn. Hierbij werd de WordPress code standaarden uitgelicht en hoe deze af kunnen wijken van algemene code standaarden.
WordPress maakt gebruik van codestandaarden die verder gaan dan zomaar een codestijl. Het gaat hierbij om het toepassen van best practices, conflictvermijding tussen CMS, thema’s en plugins en helpt bij bescherming tegen beveiligingslekken.
WP PHPCS
Developers die op basis van WordPress werken moeten de WP codestandaarden volgen en deze op de juiste manier implementeren wanneer custom PHP wordt geschreven voor templates en plugins. Dit geldt ook voor het updaten van de WP PHP code wanneer deze verder worden ontwikkeld. Hierbij is het van groot belang up to date te blijven met de nieuwste WP PHP codestandaarden.
Aan de hand van voorbeelden liet Juliette zien welke codes over het hoofd gezien kunnen worden wanneer deze algemeen gecodeerd zijn in plaats van een WordPress PHP code. Het volgende van de WP PHP standaarden helpen bij:
- beveiliging
- interoperationaliteit
- PHP compatibiliteit
- WP compatibiliteit
- Internationalisering
- Best practices
- Consistentie
- Leesbaarheid
PHP Code Sniffer
Om te controleren of een WP PHP code werkt is deze te controleren met de PHP Code Sniffer. Dit is een hulpprogramma om fouten in PHP-code op te sporen en kan hiermee de volgende code standaarden herkennen en toepassen tijdens de controle:
- Pear, PSR1, PSR2, PSR12, Squiz, Zend
- WordPress, WordPress-Core, WordPress-Docs, WordPress-Extra
- PHPCompatibilityWP: PHPCompatibility & PHPCompatibilityParagonie
- WP-QA-Basis & WP-QA-Strict
Nog meer WP coding standaarden
Uiteraard bestaan de coding standaarden van WordPress niet alleen uit PHP. Ook andere code standaarden worden door WordPress gebruikt op basis van het volgende:
Reageer