PHP Developer Days 2018 – Ein Erfahrungsbericht

Vom 21. bis zum 22 September fand im Kongress Center Dresden die PHP Developer Days statt. Ich möchte diesen Beitrag nutzen, um über News und Trends im PHP-Umfeld zu informieren. Die Veranstaltung war ein echtes Feuerwerk an Speakern und Trainern. Eine der Konferenzen, die man als PHP-Entwickler in Europa besuchen sollte.

Tag 1 - WORKSHOP DAY - FREITAG, 21. SEPTEMBER (Pragmatic Event Sourcing) 

Unser Trainer Arne Blankerts (thePHP.cc) und Sebastian Heuer (Kartenmacherei) hatten sich als Workshopziel gesetzt, zu zeigen, wie einfach Event Sourcing in der PHP Welt zu implementieren ist ohne den Einsatz eines Frameworks. Um eins vorweg zu nehmen: das ist den beiden echt sehr gut gelungen. Mit knapp 410 Zeilen Logical Lines konnten wir eine Basisimplementierung von Event Sourcing schaffen. Gestartet wurde mit einer kurzen Präsentation zu den Grundbegriffen, die benötigt werden um Event Sourcing zu verstehen.   

Zuerst möchte ich kurz auf den Begriff Event Sourcing eingehen und erklären, was der überhaupt heißt.  

EvenT

Eric Evans definiert Domain Events u. a. in seiner DDD Reference als  Something happened that domain experts care about. Dabei ist wichtig, darauf zu achten, dass es wirklich in der Vergangenheit passiert ist. Es kann nur durch ein neues Event rückgängig gemacht werden.  

Sourcing

Der zweite steht eher für eine nachvollziehbare Historie, welche Events mit welchen Daten „gefeuert“ wurden. Dadurch ist eine Recovery zu einen belieben Zeitpunkt relativ einfach möglich. 

Nach diesem kurzen Vortrag gab es dann einen Super-Workshop zu „Event Storming“.  Event Storming ist eine workshop-basierte Methode, um schnell herauszufinden, was im Bereich eines Software-Programms (Domain) passiert. Im ersten Moment war ich etwas verwirrt: was hat nun „Event Storming“ mit „Event Sourcing“ zu tun?  

Dabei ist Event Storming wirklich eine hervorragende Methode, um heraus zu finden, welche Domains Events (Anwendungsfälle) gibt es. Mir hat Event Storming geholfen, Event Sourcing besser zu verstehen. Ich denke, gerade für Software-Architekten ist diese workshop-basierte Methode eine gute Möglichkeit, um von einen neuer Schnittstelle/Anforderung eine gute technische Übersicht zu bekommen. Ich werde mich in den kommenden Wochen mit dieser Methode weiter befassen.

Grafik zu Event Storming –  mit drei Domain Events

Nach diesem Teil ging es mit interaktiver Programmierung los. Dort implementierten wir drei Beispiel-Events zu einem Check Out. Auch wenn mir die gezeigte Vorgehensweise etwas zu sehr auf Menge fokussiert war. Gerade eine bessere Benennung der Verzeichnisse und Klassen sowie eine ordentliches Autoloading und kein composer dump hätten zu einem besseren Verständnis für mich geführt.  

Fazit

Ich fand den Workshop extrem gut strukturiert und somit hat er mir ein schnellen Einstieg in das Thema Event Sourcing ermöglicht. Klar ist aber auch, dass man sich mit dem Thema Event Sourcing beschäftigen muss, um es zu 100% zu verstehen. Am Ende gab es noch eine Fragerunde:  

Ist Event Sourcing als Methode langsamer als CRUD? 

In den meisten Anwendungsfällen ist Event Sourcing schneller, da es nur neue Zeilen in die Datenbank einfügt (append only). 

Wie geht man vielen Events um (großen Datenmengen)? 

Durch den Grundsatz „Events sind, was wirklich schon passiert ist“, lassen sich diese besser routen - zum Beispiel auf verschiedene Datenbanken. Klar muss man sich dann immer noch überlegen, was man mit den Events der letzten Jahre macht (also ob man wirklich eine Historie von zwei Jahren benötigt). Gerade bei vielen Daten wird oft mit Snapshots gearbeitet und alte Events wiederum per Event aus der DB gelöscht. 

Github Repository 

https://github.com/thePHPcc/phpdd18-event-sourcing 

Slides

https://pragmatic-event-sourcing.de/pragmatic-event-sourcing.pdf

 

 

Tag 2 - CONFERENCE DAY - SAMSTAG, 22. SEPTEMBER 

 

Auch der zweite Tag von der phpdd sollte für mich sehr lehrreich sein. Eröffnet wurde der zweite Tag um 8.30 morgens. Mit rund 320 Entwicklern war der zweite Tag auch gut besucht. Gerade in der Haupt-Vortragshalle hätten locker auch 500 Leute Platz gefunden. Gestartet wurde der Tag mit der Keynote von Jenny Wong, in der es um die PHP Community und um die Organisation von Events ging - und welche Anforderungen es an die Orga-Usergroup gibt.   

Besonders toll fand ich dabei die drei Fragen, die jeder Teilnehmer auf Twitter beatworten sollte. Die Fragen und Antworten habe ich hire etwas ausführlicher als auf Twitter formuliert. 

Mit was habe ich mich in den letzten 6 Monaten am meisten beschäftigt? 

In den letzten 6 Monaten durfte ich sehr viel lernen über Softwarearchitektur im Bereich E-Commerce. 

Womit wirst du dich in den den kommenden 6 Monaten beschäftigen? 

Habe mir vorgenommen, mich mit Event Storming, Event Sourcing und Machine Learning zu befassen. Gerade im Bereich Machine Learning sehe ich große Möglichkeiten, im E-Commerce z.B. Umsätze zu steigern.  

Was hättest du dir gewünscht, früher zu wissen? 

Meinem früheren Ich würde ich die Bereiche Software Qualität und automatisierte Softwaretests empfehlen. Wie viele Stunden Debugging hätte ich mir wohl als Junior Developer gespart mit einer ordentlichen Architektur sowie Tests an kritischen Stellen. 

In der Zwischenzeit bin ich soweit, dass ich bei komplizierten oder wirklich wichtigen Bereichen freiwillig mit TDD arbeite. Ich dabei kein Freund von 100% Coverage sondern eher Tests dort zu schreiben, wo es wirklich Sinn macht. Dazu später aber mehr.  

Profiling PHP Applications (Ike Devolder) 

In dem Vortrag ging eher um bereits bekannte Standard-Tools, mit denen man am einfachsten langsame Applikationen analysieren kann. Was ich besonderes cool fand, waren die E-Commerce-spezifischen Bestandteile.  

Wichtige Aussagen: 

  • Lerne nur ein Profiling-Tool und nutze dieses  

  • Nutze Tools wie TideWays oder New Relic, um Performance auf Live-Systemen zu analysieren 

  • Nutze niemals Daten, wenn dein System kurz vor 100% Auslastung steht. Diese sind mit großer Wahrscheinlichkeit falsch 

  • Nutze eher Daten zur Analyse, wenn die Last sich normalisiert hat 

  • Tools und Daten vom Live System geben eine Idee, wo das Problem liegt. Aber in den meisten Fällen hilft nur eine lokale Performance-Analyse im Produktionsmodus 

Climbing the Abstract Syntax Tree (James Titcumb) 

James ist ein toller Speaker. In seinem Talk erklärt er, wie ein einfacher Compiler funktioniert und wie man mit Hilfe eines Abstract Syntax Tree (AST) Optimierung vornehmen kann. Das ist extrem interessant, da PHP seit der Version 7.0 auch einen AST nutzt, um Performance Optimierung zu ermöglichen.  

Für mich war der Talk sehr spannend, da er einen sehr guten Überblick über PHP-Hintergrundprozesse liefert. 

Einen guten Überblick zu AST Bibliotheken in PHP erhaltet ihr in diesem Blog Post von Tomáš Votruba - https://www.tomasvotruba.cz/blog/2017/11/06/how-to-change-php-code-with-abstract-syntax-tree/    

 

powered by YouTube: Beim Abspielen des Videos wird eine direkte Verbindung zu einem Server von YouTube aufgebaut. Näheres erfahren Sie in unserer Datenschutzerklärung.

Mutation testing: better code by making bugs (Théo Fidry) 

Im Vortrag von Théo ging es um das Thema Software Testing und Software Qualität. 

Gerade bei interner Qualität lassen sich Fehler in der Software durch automatisierte Tests vermeiden.  Wenn man sich die Kosten eines Fehlers in Production ansieht, können diese extrem teuer werden.  

 

Gerade aber die Frage, ob meine Testsuite bestlastbar bzw. vertrauenswürdig ist, ist kein so ganz einfaches Thema.  

Die Bibliothek https://infection.github.io/ hilft zu überprüfen, wie bestlastbar die Testsuite ist, indem sie Codemanipulation nutzt und danach die Tests auf den manipulierten Code ausführt.  

Wichtige Aussagen

  • Lerne Tests zu schreiben und nutze Test Driven Development 

  • Tests sind nicht kostenlos aber sehr hilfreich 

  • Code Coverage zeigt nur, was noch nicht ausgeführt wurde 

  • Nutze Code Coverage, um Lücken in der Testsuite zu finden  

  • Nutze Tools wie Infection  - https://infection.github.io/ 

  • Bugs in Production sind extrem teuer 

  • Finde die Fehler am besten während der Entwicklung  

Slides

https://speakerdeck.com/theofidry/mutation-testing-phpdeveloperday 

 

Neueste Posts

Schnelle Tipps für gutes UX-Writing Adobe beschleunigt Experience Driven-Commerce mit zentralen Neuerungen in Magento Commerce Cloud PHP Developer Days 2018 – Ein Erfahrungsbericht Wie Sie zum Top 5% Projektmanager werden Was sind gute Fragen?

Archiv

Oktober September August Juli Juni Mai April März Februar Januar
Dezember November Oktober September August Juli Juni Mai April März Februar Januar
Dezember November Oktober September August Juni Mai April Februar Januar
Dezember November Oktober September August Juli Juni März Februar
Oktober September August Juli Juni Mai April März Januar
Dezember November Oktober September August Juli Mai April Februar
November Oktober September April Februar
Dezember September Juni Mai Februar Januar
Juli Mai April März Februar Januar
September August Juli März
Oktober September Juli Juni Mai März Februar
Februar

Kategorien

E-Commerce Unternehmensmeldung Online-Marketing Magento Commerce Neos TYPO3 SEO SEA Usability Digitale Transformation Agile Projektentwicklung Corporate Web Analytics Künstliche Intelligenz Mobile Marketing Social Media Veranstaltungen Research & Development
powered by YouTube: Beim Abspielen des Videos wird eine direkte Verbindung zu einem Server von YouTube aufgebaut. Näheres erfahren Sie in unserer Datenschutzerklärung.

Unser Herz schlägt online -
Deins Auch?

 

Wir stellen uns jeden Tag neuen Heraus-forderungen des Online-Business – immer auf der Suche nach spannenden Lösungs-ansätzen und sinnvollen Technologien. Eine Vielzahl namhafter Kunden vertrauen auf das Online Know-how „Made in Kolbermoor / Rosenheim und München“. 

Lust auf TechDivision? Hier geht zu unseren Stellenanzeigen

eStrategy Magazin


Erfahren Sie mehr zu den Themen E-Commerce, Online-Marketing, Mobile, Projektmanagement, Webentwicklung und E-Recht in unserem kostenlosen Online-Magazin.

Jetzt herunterladen!

Whitepaper:
Agiles Projektmanagement


In unserem kostenlosen Whitepaper versuchen wir Basiswissen und Erfahrungen aus vielen Jahren täglicher Projekt- und Unternehmenspraxis zu vermitteln, mit denen Sie die Anforderungen des Arbeitslebens von Heute besser bewältigen können.

Jetzt herunterladen!

Autor

Haben wir Ihr Interesse mit unserem Blog geweckt?

Wir sind der richtige Partner für anspruchsvolle Projekte im Bereich E-Commerce, Corporate Web, Consulting und Online-Marketing. Sprechen Sie mit uns!

Autor

Lars Röttig Certified PHP Engineer / Web Developer