Auch Anwendungen die auf JavaScript-MVC-Frameworks wie AngularJS aufbauen können mittels TDD entwickelt werden. Wie einfach dies ist hängt davon ab ob das jeweilige Framework dafür ausgelegt ist. Bei AngularJS wurde nicht nur an TDD gedacht sondern es gibt sogar eine (ausführliche) offizielle Dokumentation die zeigt wie man vorgehen soll.
Mittels Bootstrap bekommt man ohne grossen Aufwand ein in sich stimmiges Design für die eigene Webanwendung. Die notwendigen Schritte dafür habe ich hier schon beschrieben. Es gibt allerdings ein Problem: Alle Seiten die Bootstrap benutzen sehen am Ende genau gleich aus:
Wer lieber etwas Individuelles hat muss aber nicht auf Bootstrap verzichten. Es gibt mittlerweile genügend Erweiterungen und Vorlagen die auf Bootstrap aufsetzen und die nötige Abwechslung bieten.
MVC? OR-Mapper? Lazy-Loading? Unit of Work? Layering? Session State? Oder braucht man Tipps zur Strukturierung von Geschäftslogik? Fast jedes Thema das man beim Schreiben von Geschäftsanwendungen antrifft wird in diesem Buch behandelt und dessen Platz im grossen Puzzle erklärt.
Auch 2 Monate nach der NDC Oslo stosse ich noch immer auf zahlreiche Referenzen und Zitate aus den dort gehaltenen Präsentationen. Dies erstaunt mich angesichts der hohen Qualität der Konferenz und der Referenten nicht wirklich. Seit die Videos auf Vimeo aufgeschaltet sind bin ich selber auch fleissig am Anschauen.
Bei total 150 Präsentationen kann ich mich wohl noch einige Wochen beschäftigen. Da nicht jeder so viel Zeit hat habe ich hier die 10 Präsentationen zusammengetragen die ich äusserst sehenswert finde.
In einer Geschäftsanwendung werden vor allem fachliche Daten bearbeitet. Daneben gibt es aber eine ganze Reihe von technischen Daten (wie einer ID oder einem Erstelldatum). Diese beiden Arten von Daten können problemlos nebeneinander abgelegt werden. Sobald man allerdings beginnt die Grenzen zu verwischen fangen die Probleme an.
Bis sich die Auswirkungen dieser Vermischung bemerkbar machen kann man sich meist nicht mehr an die dazugehörigen Entscheidungen erinnern. So beginnt ein mühsames Suchen nach den Ursachen von teils äusserst seltsamen Fehlern.
Ich will gar nicht zusammenrechnen wie viele Stunden ich so verloren habe. Dabei waren es zu Beginn jeweils ganz kleine Entscheidungen die am Ende zu solchen Problemen führten. Wie klein die sein können soll das nachfolgende fiktive Beispiel rund um Auftragsformulare zeigen.
"Smalltalk Best Practice Patterns" von Kent Beck erschien bereits 1996, doch stosse ich in letzter Zeit immer wieder auf dieses Buch. Überall wird erzählt wie wegweisend dieses Buch sei und wie viel man damit über objektorientierte Programmierung lernen könne. Die Besprechung bei Ruby Rogues in den Folgen 23 und 24 überzeugte mich schliesslich dieses Buch zu lesen - obwohl ich nie in Smalltalk programmiert habe.
Um es vorweg zu nehmen: Es gibt nur wenige Teile in diesem Buch die einzig für Smalltalk eine Bedeutung haben. Der grösste Teil ist so geschrieben das dieser auch für Sprachen wie C#, Ruby oder Java nützlich ist.
MVC-Frameworks für JavaScript gibt es mittlerweile in Hülle und Fülle. Diese unterscheiden sich nicht nur im Funktionsumfang, sondern auch in der Handhabung und der Dokumentation. Dies macht es nicht gerade einfach ein zum eigenen Projekt passendes Framework auszuwählen.
Da ich nicht der erste bin der vor dieser Entscheidung steht konnte ich glücklicherweise auf die Arbeit von TodoMVC zurückgreifen. Zahlreiche Freiwillige haben sich die Mühe gemacht die immer gleiche Todo-Anwendung in den einzelnen Frameworks zu implementieren. So sind mittlerweile über 50 verschiedene Frameworks vertreten und lassen sich recht einfach vergleichen.
Nachdem ich mehrmals gehört hatte wie toll AngularJS sei und mir auch das Beispiel dazu gefallen hat habe ich mir dieses Framework genauer angeschaut. AngularJS wird seit 2009 von Google entwickelt und bietet neben einer Trennung von DOM und Applikationslogik auch einen sehr einfachen Einstieg.
Die Veröffentlichung von Rails 4 dürfte für etliche Entwickler ein Anlass sein sich einmal mit diesem Webframework zu beschäftigen. Aber wo soll man anfangen? Web-Tutorials wie Railstutorial.org sind zwar ausführlich, aber noch nicht auf Version 4 aktualisiert und die offizielle Dokumentation ist nicht unbedingt für Einsteiger konzipiert.
"Agile Web Development with Rails 4" von Sam Ruby füllt diese Lücke. Die neuste Version dieses Buches befindet sich noch im Beta-Programm, ist aber als E-Book (PDF, epub und mobi) bereits erhältlich. Durch den gelungenen Aufbau ist dieses Buch nicht nur für Einsteiger sondern auch für Rails 3.x Entwickler interessant.
Im Rahmen des 5x20min Abends bei der .Net User Group Bern durfte ich am 25. Juni 2013 meinen Vortrag über Refactoring halten. Neben den häufigsten Mythen versuchte ich zu zeigen was Refactoring wirklich ist und wann diese Praktik zu einem reinen Etikettenschwindel verkommt. Um den Zuhörern auch etwas Hilfreiches mitzugeben zeigte ich anhand eines Praxisbeispiels wie man mittels Characterization Tests den aktuellen Funktionsumfang greifbar machen kann.
Wer sich selber ein Bild machen will findet die Unterlagen auf Speakerdeck:
Wie toll eine Konferenz für Entwickler sein kann durfte ich Mitte Juni in Oslo erfahren. Die NDC (Norwegian Developers Conference) stellt alles was ich an Konferenzen kenne in den Schatten. Von den Referenten, den Präsentationen über den Veranstaltungsort bis hin zur Verpflegung wurde einem ein tolles Programm geboten.