Usability für Programmierer – UX ist nicht nur Frontend!

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.

Continue reading “TDD Kata 01 – The Bowling Game”

Retrospektive: Das Blog 2015

Frohes neues Jahr allen Lesern! Genau wie letztes Jahr starte ich das Jahr im Blog mit einem Rückblick auf 2015 in Zahlen und Fakten und einer Vorschau auf das kommende Jahr. Da meine paar Stammleser wohl größtenteils deutschsprachig sind, mache ich mir diesmal allerdings nicht die Mühe, ihn zweisprachig zu verfassen.

Sorry, my non-German friends!

Zahlen

Die Besucheranzahl ist gegenüber 2014 von 12.091 auf 20.713 gestiegen, über die Monate aber verhältnismäßig konstant geblieben:

Visits per month 2015

Die meisten Besucher kommen weiterhin von Google und über Direktzugriffe:

# Herkunft Besucher Besucher 2014
1 Google 10011 4371 (+0)
2 direkt 5997 4289 (+0)
3 StackOverflow 985 754 (+1)
4 Twitter 772 54 (+7)
5 Reddit 516 1357 (-2)

Meine Reichweite auf Twitter hat sich klar erhöht, dafür gab es dieses Jahr kein kontroverses Thema für Reddit 😉

Meistbesuchte Artikel

Die Top Ten 2015 über alle Artikel, inklusive ältere, sieht diesmal so aus:

# Titel Englisch Deutsch Total
1 (+1) PHP: “Mocking” built-in functions like time() in Unit Tests (2011) 3709 214 3923
2 (+10) Magento Bündelprodukte: Staffelpreise der einfachen Produkte nutzen (2014) 957 600 1557
3 (+6) Das Magento buyRequest Objekt – eine Referenz (2014) 1099 231 1330
4 Spryker vs. Magento 259 1025 1284
5 Effizient zufällige Elemente aus großem PHP Array ziehen 544 609 1153
6 Zufällige Produkte in Magento anzeigen 448 639 1087
7 Comparable Interface für PHP 611 124 735
8 (+18) Magento Tutorial: Wie man Increment Models nutzt, um IDs zu generieren (oder SKUs) (2014) 605 112 717
9 (-8) Warum ich aktiv PHP 5.3 Kompatibilität aufgeben werde (2014) 413 291 704
10 Meine Checkliste bei der Analyse von Magento Shops 284 413 697

Nur die Hälfte sind tatsächlich neue Artikel, da sich einige von 2014 dauerhafter Beliebtheit erfreuen.

Hot Topics

Unit Testing

Spryker

Das neue E-Commerce Framework für den Enterprise Bereich war ein spannendes Thema und der Artikel “Spryker vs. Magento”, den ich auch auf magenticians.com veröffentlicht habe, einer der meistgelesenen des Jahres.

Shop Analyse

Ein weiterer Artikel, der auch auf magenticians.com erschienen ist, ist meine “Checkliste bei der Analyse von Magento Shops”. Die zugehörige Toolbox ist mittlerweile mein Projekt mit den meisten Sternen auf GitHub. Beides wurde im Blog Post von Firebear Studio zum selben Thema empfohlen, ergänzt mit anderen hilfreichen Tools.

Ziele erreicht?

Anfang des Jahres schrieb ich:

Für 2015 ist der Plan, die Geschwindigkeit mit im Schnitt mindestens einem echten Blog Post alle zwei Wochen beizubehalten.

Den Schnitt habe ich mit 28 Artikeln insgesamt gehalten, wenn ich die Kurz-Tipps zum Testing mitzähle, aber zugegeben in der zweiten Jahreshälfte etwas nachgelassen.

Jan Feb Mär Apr Mai Jun Jul Aug Sep Okt Nov Dez
3 4 8 1 4 2 1 🙁 2 1 1 1

Weiterhin möchte ich einige der alten Artikel übersetzen, die immer noch gefragt aber nur in einer Sprache verfügbar sind.

Das war dann einfach nicht wichtig genug für den Aufwand den es gekostet hätte. Blöder Vorsatz, wird auch nicht in 2016 übernommen 🙂

Ich erweitere das mal um ein paar verifizierbare Vorsätze für 2015:

  • Blogging wie geplant fortsetzen

Check, abgesehen von den Übersetzungen, siehe oben.

  • Auf einer Konferenz sprechen

Check, mein erster Vortrag vor größerem Konferenzpublikum: Pragmatisches Unit Testing (Meet Magento DE, Link geht zu Youtube).

  • Mehr zu Open Source Software beitragen

Mein Github Account zeigt zumindest einige Pull Requests und ich habe ein paar eigene Tools veröffentlicht:

  • DebugErrors: Liefert mehr Informationen zu einigen unspezifischen Fehlermeldungen von Magento
  • AclReload: Fügt einen “Reload ACL” Menüeintrag zum Magento Admin Panel hinzu, der das aus- und wieder einloggen nach dem installieren von Extensions ersetzt
  • TranslationHints: Zeigt Herkunft von Übersetzungen in Magento
  • Comparable PHP Package: Eine alte Bibliothek, die ich komplett nach modernen Methoden neu geschrieben habe, und die ein Comparable interface für PHP bereitstellt, mit Sortier und Vergleichs-Funktionen. Addons: comparable-filesystem, comparable-arrays. Vermutlich benutzt es niemand außer mir, aber es war eine gute Fingerübung
  • SGH_JsonRpc: Ein JSON-RPC API Adapter für Magento
  • IntegerNet_AttributeOptionPager: Ein Magento-Modul, das die Verwaltung von Attributen mit sehr vielen Optionen ermöglicht
  • Eine neue Version des IntegerNet_Anonymizers, noch ohne stable release.
  • Hackathon_DerivedAttributes: Ebenfalls noch kein stable release und vor allen Dingen undokumentiert, für einige Spezialfälle aber schon im Produktiveinsatz. Definitiv noch ein TODO für 2016
  • Einen neuen Service auf den Markt bringen

Das war wohl nichts, um das Thema hülle ich lieber den Mantel des Schweigens.

So, jetzt ist es öffentlich und ich muss mich in einem Jahr rechtfertigen.

3 von 4 Punkten erfüllt, damit kann ich leben.

Und 2016?

Mit meiner Firma SGH bin ich still und heimlich ins Magento Extension Business eingestiegen. 2016 soll zeigen, ob es sich lohnt, dafür fehlt allerdings noch Website, schöne Bilder und Marketing Content.

Im April bin ich in Kroatien auf dem Developers Paradise mit einem Vortrag zu Magento 2 im weitesten Sinne vertreten. Das Thema wird 2016 auf jeden Fall mit beherrschen, und ich werde mich intensiver damit befassen als bisher.

Mit Vorsätzen für 2016 halte ich mich ansonsten etwas zurück, wer weiß was das Jahr noch bringt.

Nur eins noch: Beim Aachener Firmenlauf im Oktober bin ich wieder mit integer_net dabei, dieses Jahr dann die 9,6 km Runde. Bis dahin heißt es: Mehr Sport!


Titelbild: Ellen Steiof (CC BY-NC-ND 2.0)

Spryker vs. Magento

Neulich hatte ich die Gelegenheit, einen Blick in den Source Code von Spryker zu werfen, dem Ecommerce-Framework das sich anschickt zum neuen Player im Enterprise-Bereich zu sein. Spryker wird vom Berliner Inkubator Project A für den Einsatz in selbst geförderten Unternehmen entwickelt und soll in diesem Jahr der Öffentlichkeit zugänglich gemacht werden. Wobei Öffentlichkeit nicht ganz stimmt, denn soviel vorab: Eine Open Source Version ist nicht geplant, Lizenzen sollen um 100.000 € / Jahr kosten. Agenturen können sich als Partner registrieren, um ohne Lizenz Zugriff auf Source Code und Dokumentation zu bekommen. Mit der ersten verkauften Lizenz gibt es Zugriff auf zusätzliches Training-Material. Freelancer werden nicht angesprochen. Bereits offiziell als Partner gelistet sind auch die im deutschen Magento-Umfeld bekannten Agenturen CommercePlus und Symmetrics.

Was ist das Besondere an Spryker?

Spryker versteht sich nicht als fertig einsetzbares Produkt, sondern als Framework das alle Bausteine für eine individuelle E-Commerce Lösung bereitstellt, aus denen man sich für sein Projekt die benötigten auswählt und erweitert. Damit wird die Realität berücksichtigt, dass kein Projekt wie das andere ist und jeder Shop seine eigenen Prozesse und Infrastruktur hat, auf die individuell eingegangen werden muss.

Der Kern von Sprkyer sind zwei eigenständige Applikationen, Yves und Zed. Kurz gefasst, ist Yves eine leichtgewichtige Anwendung für das Frontend, Zed das schwere Geschütz fürs Backend.

Discover Spryker
Bild: http://spryker.com/product/

Yves (in der ersten Version mit Yii programmiert, jetzt mit Silex) liest sämtliche benötigten Daten ausschließlich aus einem In-Memory NoSQL Backend wie Redis.
Zed (Zend Framework 2) übernimmt die Kommunikation mit MySQL, Message Queue und Dritt-Systemen und enthält die Geschäftslogik zu Bestellprozessen usw.
Continue reading “Spryker vs. Magento”

Retrospektive: Das Blog 2014

Ein privat und geschäftlich erfolgreiches Jahr ist herum und das neue fängt erst langsam an. Zeit, darauf zurück zu blicken wie das Blog seit dem Relaunch meiner Seite letzten Februar läuft und neue Ziele für 2015 zu stecken.

Angesagte Themen

Einige Themen stachen auf die ein oder andere Art hervor:

Unit Testing

Mein Allzeit-Top-Artikel von 2011 [PHP] Mocking Built-in Functions Like time() In Unit Tests war 2014 immer noch der zweitmeist besuchte Artikel und ich freue mich, dass das darin vorgestellte Konzept einige neue Aufmerksamkeit erfahren hat:

  • Matthew Weier O’Phinney (@mwop) nutze es, um Code zu testen, der Ausgaben erzeugt. Siehe PHP: header() mocken, um Controller zu Unit-testen
  • Markus Malkusch hat inspiriert durch meinen Artikel eine Bibliothek zum mocken von Funktionen entwickelt, php-mock. Dabei fand und dokumentierte er auch einen weiteren Sonderfall, bei dem es nicht funktioniert (aktuell ein offener PHP Bug).

PHP 5.3 Death March

Der kontroverseste, meist diskutierte und meist geklickte Artikel 2014 war meine Ankündigung, PHP 5.3 Support fallenzulassen wo immer möglich, um Adaption von aktuellen PHP Versionen voranzutreiben (5.3 hat August 2014 sein end-of-life erreicht und bekommt seitdem keine Sicherheits-Fixes mehr).

Ich fühle mich in guter Gesellschaft weil kurz darauf Anthony Ferrara (@ircmaxell) die selbe Diskussion in größerem Umfang auf Twitter und anderswo mit seinen Artikeln zu PHP Versionen anstieß:

  1. On PHP Version Requirements
  2. Being A Responsible Developer
  3. PHP Install Statistics

Vagrant

puphpet-vagrant-puppet-magentoIch habe eine Serie über Vagrant geschrieben, speziell um es Magento-Entwicklern nahezubringen, veröffentlicht auf integer-net.de. Eine englische Zusammenfassung gab es im Webguys Adventskalender: Türchen 19: Kickstart your Magento Dev System with Vagrant. Zwei der vier Teaser in diesem Blog haben es in die Top Ten 2014 geschafft (siehe unten).
Continue reading “Retrospektive: Das Blog 2014”

Mage Unconference 2015 – 7.-8. März – Berlin

Mage Unconference 2015

Vom 7. bis 8. März veranstaltet FireGento die erste Mage Unconference für Kunden, Händler, Anbieter, Agenturen, Provider – und natürlich – auch Entwickler. Der Inhalt der Unconference wird ganz alleine von Dir und den anderen Teilnehmern festgelegt.

>>> Mach mit und sei Teil der Community vom 7. bis 8. März 2015 in Berlin! <<<

Ich bin dabei und hoffe auf regen Austausch. Wer Interesse hat, sollte nicht zu lange zögern, bevor die Veranstaltung wegen zu weniger verkaufter Tickets abgeblasen wird!