Produktivitätssteigerung bei Web Entwicklung

Nach einigen Webprojekten auf Basis von Java und tomcat war es an der Zeit einen Technologiesprung zu machen. Die Überarbeitung eines CMS Systems stand an. Nach längerer Suche viel die Wahl auf node.js als Server und Semantic-ui als UI Library. 

Gleich vorneweg. Die Neuimplementierung des CMS Systems brauchte nur rund 30% der Zeit die das ursprüngliche Projekt gebraucht hat. Wenn man einbezieht, dass im ursprünglichen Projekt eine gewisse Lernkurve notwenig war, liegt die Produktivitätssteigerung immer noch bei rund der halben Zeit für die Implementierung. Das ist beachtlich. Woran liegt das?

Eine wesentliche Eigenschaft von node.js ist die Verfügbarkeit von sehr gut angepassten Paketen, die praktisch alle im realen Betrieb auftretenden Anforderungen kapseln und mit wenigen API Zugriffen verfügbar machen. Ein Beispiel ist das Paket Moment.js das alle denkbaren Operationen auf Zeitstempeln und Datumswerten enthält. Hunderte Zeilen alter Java Code für die Transformation von Datumsstrings in Epoch Werte und so weiter verschwinden und machen Platz für mehr Produktivität. Ein Beispiel ist die Humanize Funktion mit der aus einem Zeitintervall eine verständliche Zeitangabe wird:

moment.duration(1, "minutes").humanize(); // a minute
moment.duration(2, "minutes").humanize(); // 2 minutes
moment.duration(24, "hours").humanize();// a day

Weitere Beispiele solcher hochproduktiver Pakete sind express.js, ein Web Framework, passport.js ein Framework für Authentifizierung und handlebars.js eine Template Engine. Spezielle Erfahrungen gab es mit node.js im Bereich Source Code Management und Deployment. Dazu aber mehr in einem eigenen Blog Eintrag.

Das UI wurde in dem CMS Projekt mit Semantik-UI umgesetzt. Das Ergebnis war eine überraschend schnelle Lernphase. Die CSS und Javascript Element können gezielt und intuitiv eingesetzt werden. Die einzige negative Erfahrung war die fehlende Unterstützung von Internet Explorer Versionen unter IE9 und einzelne Issues mit IE9 aufgrund von flexbox Fehlern im IE.