Category Archives: Softwareengineering

Lessons Learned @ NZZ – Teil 5 – Refactoring von Fat Controllern

This entry is part 5 of 6 in the series Lessons Learned @ NZZ

Im letzten Teil der Serie habe ich ja beschrieben, was ein (Symfony2)-Controller tun sollte bzw. was meine Erkenntnisse bezüglich fat Controllern ist. Ein Artikel auf test.ical.ly gibt ein paar gute Tips, wie man fat Controller verhindern kann.

Was kann man nun tun, wenn man riesige Controller hat (aus was für Gründen auch immer) und diese wieder in schlanke, verständliche, lesbare Controller refactoren will? Ich beschreibe nun eine Vorgehensweise, welche sich für mich schon einige Male bezahlt gemacht hat. Vielleicht könnt ihr auch davon profitieren.

Posted in Architektur / Design | 1 Comment

Lessons Learned @ NZZ – Teil 4 – Symfony2 Controller

This entry is part 4 of 6 in the series Lessons Learned @ NZZ

Beruflich arbeite ich momentan intensiv mit Symfony2. Wir hatten in den letzten 1,5 Jahren im Team immer wieder grosse Meinungsunterschiede, welchen Ansatz man für Symfony2 Controller wählen soll.

  • Direkt vom Symfony2 Controller erben?
  • Die Controller als Services aufsetzen und alle benötigten Services per Dependency Injection übergeben?
  • Die Controller als Services instanzieren und nur den Container per Dependency Injection übergeben und die Services aus dem Container laden?

Posted in Architektur / Design | 2 Comments

Typische Beispielinstallation für einen PHP Webdeveloper auf Ubuntu

Seit geraumer Zeit arbeite ich intensiv als PHP Webentwickler mit Ubuntu. Immer wieder mal kommt es vor, dass ich eine neue Maschine aufsetzen muss (seit für Heimarbeit oder weil ein Laptop seinen Dienst versagt hat…).

Es kommt auch vor, dass ich immer wieder mal gefragt werde, wie man am besten ein bestimmtes Tool wie z.B. PHPUnit auf seiner Entwicklermaschine installiert.

Ich habe mich darum entschieden, einen typischen Installationsstack für einen PHP Entwickler auf Ubuntu als Beispiel zu posten.

Natürlich bin ich für Feedback oder Verbesserungsvorschläge immer offen.

Beispielinstallation: https://gist.github.com/3995789

Posted in Allgemein | Leave a comment

Lessons Learned @ NZZ – Teil3 – Code Reviews

This entry is part 3 of 6 in the series Lessons Learned @ NZZ

Heute möchte ich über das Thema Code Reviews berichten.

Vorgeschichte

In der NZZ haben wir Ende des letzten Jahres unsere Code Repositories in Richtung Github gezügelt. Weil das Entwicklerteam in kurzer Zeit sehr stark gewachsen ist, mussten wir Wege finden, die Codequalität auf einem hohen Stand zu etablieren. Dies haben wir mit Code Reviews und Pull Requests auf Github versucht.

Posted in Allgemein, Qualität | Tagged , | 9 Comments

Lessons Learned @ NZZ – Teil2 – Distributed SCRUM Teams

This entry is part 2 of 6 in the series Lessons Learned @ NZZ

Wie ich schon im letzten Artikel erwähnt habe, sind wir aktuell 3 SCRUM Teams und haben diese auch in sehr kurzer Zeit von 4 auf 18 Entwickler hochgefahren (ca. 6 Monate).

Am Anfang gab es eine kurze Kennenlernphase zwischen den einzelnen Personen. Wir waren am gleichen Ort und arbeiteten zusammen. Danach wurden die Teams aufgeteilt und auf die Projekte losgelassen. Relativ schnell war die Kommunikation zwischen den Teams eher rar. Jedes Team hatte seine eigene Philosophie von Design, Standards usw. und über kurz oder lang, gab es kleinere Probleme. Man beschwerte sich, warum jemand das so gelöst hat und nicht so, wie es im eigenen Team geregelt war.

Posted in Softwareengineering | Tagged , , | 8 Comments