Review: 2018

2019

Es ist ruhig um das Blog geworden, dennoch möchte ich das Jahr 2019 mal wieder einen kleinen Rückblick machen, wie schon 2017, 2016 und 2015.

Da 2018 keine Beiträge hier erschienen sind und der Tracker abgeschaltet ist, gibt es allerdings keine Blog-Statistiken, stattdessen eine Übersicht, wo anderswo Beiträge von mir zu finden sind.

Seit längerem veröffentliche ich vermehrt im Blog meiner Firma integer_net, überwiegend auf Englisch: https://www.integer-net.com/blog/
Continue reading “Review: 2018”

MageTestFest – Eine einzigartige Konferenz und einmalige Gelegenheit

Wenn Du dich für Software Testing und/oder Magento-Entwicklung interessierst, kommt das für interessanteste Event des Jahres näher: MageTestFest in Amerfoort (NL)!

  • 15. Nov: Workshop PHPUnit (Sebastian Bergmann)
  • 16. Nov: Workshop DDD (Mathias Verraes)
  • 17. Nov: Konferenz-Tag (Agenda)
  • 18. Nov: Magento Contribution Day (Hackathon)

Continue reading “MageTestFest – Eine einzigartige Konferenz und einmalige Gelegenheit”

TDD Kata 14 – Exclamation Mark Series

Dies ist mein wöchentlicher Kata Post. Lies den ersten um zu erfahren, worum es hier geht.

Heute nur auf Englisch

PHP 7: Typsichere Arrays von Objekten

Mit PHP 7 kann man sich dazu entscheiden, typsichereren Code zu schreiben als zuvor, dank skalaren Type Hints und Rückgabetypen.

function repeat(string $text, int $times) : string;

Aber was ist mit Arrays? Es gibt immer noch nur den generischen “array” Type Hint, man kann nicht spezifizieren was das Array enthält. Für die IDE kann man PhpDoc Kommentare hinzufügen:

/**
 * @return User[]
 */
function allUsers() : array;

Jetzt können IDEs wie PhpStorm mit Code-Vervollständigung für Elemente des zurückgegebenen Arrays helfen. Aber wir können nicht von Prüfungen zur Laufzeit profitieren, wie mit echten Type Hints.

Für Argumente gibt es einen partiellen Workaround mit variadischen Argumenten. Nehmen wir die folgende Funktion:

/**
 * @param User[] $users
 */
function deleteUsers(array $users);

Mit variadischen Argumenten können wir sie umschreiben zu:

function deleteUsers(User ...$users);

Die Benutzung ändert sich auch, zu deleteUsers(...$users); Bei diesem Aufruf wird das Argument $users in einzelne Variablen “unpacked”, und in der Methode selbst wieder in ein Array $users “packed”. Jedes Element wird dabei auf den Typ User validiert. $users kann auch ein Iterator sein, er wird dann beim Aufruf in ein Array konvertiert.

Leider gibt es keinen entsprechenden Workaround für Rückgabetypen, und es funktioniert nur mit dem letzten Argument.

Siehe auch: Type hinting in PHP 7 – array of objects

Ich nutze diese Technik oft in PHP 7 Code, aber es gibt noch eine andere, die die genannten Schwächen nicht hat:
Continue reading “PHP 7: Typsichere Arrays von Objekten”

TDD Kata 13 – Boolean Expression Engine

Dies ist mein wöchentlicher Kata Post. Lies den ersten um zu erfahren, worum es hier geht.

Heute nur auf Englisch

TDD Kata 12 – Ugly Trivia Game

Dies ist mein wöchentlicher Kata Post. Lies den ersten um zu erfahren, worum es hier geht.

Heute nur auf Englisch

TDD Kata 11 – Reversed Binary Numbers

Dies ist mein wöchentlicher Kata Post. Lies den ersten um zu erfahren, worum es hier geht.

Heute nur auf Englisch

TDD Kata 10 – Anagramme

Dies ist mein wöchentlicher Kata Post. Lies den ersten um zu erfahren, worum es hier geht.

Heute nur auf Englisch

TDD Kata 09 – Print Diamond

Dies ist mein wöchentlicher Kata Post. Lies den ersten um zu erfahren, worum es hier geht.

Continue reading “TDD Kata 09 – Print Diamond”

TDD Kata 08 – Functions Pipeline

Dies ist mein wöchentlicher Kata Post. Lies den ersten um zu erfahren, worum es hier geht.

Continue reading “TDD Kata 08 – Functions Pipeline”