TDD Kata 06 – Roman Numerals
TDD Kata 05 – Karate Chop
Sinnvolle Namespaces in PHP
Eine übliche Konvention für Namespaces in PHP ist es, mit Vendor\Package
zu beginnen, groß geschrieben (CamelCase StudlyCaps) mit “vendor” und “package” analog zum Composer Package Namen.
Es gibt allerdings eine schlechte Angewohnheit, die ich häufig sehe, vermutlich aus alten ZF1 und Pear Tagen, wo jedes Wort im Klassennamen ein neuer Sub-Namespace ist (und ein neues Unterverzeichnis), oder Kind-Klassen in einen Namespace mit dem Namen der Elternklasse platziert werden. All das führt zu tief geschachtelten Namespaces und Klassennamen, die keine Bedeutung ohne ihren Namespace haben.
Beispiele aus Zend Framework 1 (Pseudo Namespaces):
Zend_Db_Table_Row_Abstract
ist eine abstrakte Basis-Klasse fürZend_Db_Table_Row
, und repräsentiert eine Zeile in einer Datenbanktabelle. Es gibt auch nochZend_Db_Table
undZend_Db
.Zend_Pdf_FileParser_Font_OpenType_TrueType
ist ein Parser für True Type Schriftdateien. Die Klasse erbt vonZend_Pdf_FileParser_Font_OpenType
, die wiederum vonZend_Pdf_FileParser_Font
erbt, die vonZend_Pdf_FileParser
erbt.
Und ein aktuelles Beispiel aus Magento 2:
Magento\Catalog\Model\Product\Option\Type\File\Validator
– Ein Validator für Produkt-Optionen vom Typ “File”
TDD Kata 04: Word Wrap
TDD Kata 03: Prime Factors
Mach dich bereit für TDD Katas mit PHPUnit + PhpStorm
Bist du ein PHP Entwickler der gerne mit Unit Testing anfangen würde? Willst du meinen wöchtentlichen TDD Kata Posts folgen, weißt aber nicht, wie du anfangen sollst? Hier ist eine Schritt für Schritt Anleitung, bis zum ersten Test.
Continue reading “Mach dich bereit für TDD Katas mit PHPUnit + PhpStorm”
TDD Kata 02: String Calculator
Usability für Programmierer – UX ist nicht nur Frontend!
If you consider a developer as a user, reading a book about usability engineering is mind-blowing, related to your code.
— Tobias Zander (@airbone42) 14. Februar 2015
Dieser Tweet Anfang 2015 hat mir die Augen geöffnet. Ich hatte ein wenig über das Design interaktiver Systeme und die Psychologie dahinter gelernt, so dass ich ihn direkt nachempfinden konnte. Er hat mich zu einem Vortrag “Usability für Programmierer” bei der WebCon Aachen inspiriert, der leider nie öffentlich wurde, weil das Event abgesagt wurde. Ich warte noch immer auf eine passende Gelegenheit, ihn zu präsentieren.
Ich finde das Thema allerdings zu interessant, um länger damit hinterm Berg zu halten, also ist hier nun ein Blog Post!
Weiterlesen auf Englisch (Folien auf deutsch am Ende des Beitrags)
TDD Kata 01 – The Bowling Game
Eins meiner Ziele für 2017 ist es, TDD Katas zu einem Teil meiner täglichen Routine zu machen. Was eine Kata ist? Genau wie in der Kampfkust geht es um Training durch Wiederholung, die selbe Übung wieder und wieder zu machen, bis man sie im Schlaf beherrscht.
Einige würden sagen, es ist der einzige Weg, TDD zu lernen. Das macht aus mehreren Gründen Sinn: Man beginnt in einem kleinen, abgeschlossenen Bereich und kann reine testgetriebene Entwicklung anwenden. So kann man die neue Denkweise (den red-green-refactor Zyklus) ohne Frustration trainieren. Es bedeutet, nicht gleichzeitig um die Eigenarten eines Frameworks herum arbeiten zu müssen.