Programmierblog von Johannes Dienst

JavaScript-Strukturierung für HTML: Kopplung minimieren

Posted by in clean code, JavaScript

In der letzten Woche kam eine interessante Frage zum Aufbau einer modularen JavaScript-Codebase auf. Es ging vor allem darum, wie eine bestimmte Funktionalität auf unterschiedlichen HTML-Seiten aktiviert wird. Da es mehrere Module mit unterschiedlichen Features gibt, standen mehrere Ansätze zur Diskussion. Das Problem mit webpack In unserem Projekt werden alle Module mit webpack zu einer bundle.js zusammengefasst, die dann auf jeder Seite eingebunden wird. Das JavaScript ist modularisiert in ES2015 Modulen. Die Aktivierung der Funktionalität läuft über die Instanziierung von Klassen, deren Konstruktor über jQuery DOM-Elemente mit EventListenern versorgt. Soweit…read more

0

Clean Code: Meine Erfahrungen im orangenen Grad

Posted by in clean code

Nachdem mein letzter Bandwechsel schon über zwei Jahre her ist, werde ich heute in den gelben Grad wechseln. Meine Erfahrungen mit dem orangenen Grad waren gemischt. Einige Prinzipien und Praktiken waren selbstverständlich, andere wiederum echte Augenöffner! Prinzipien An dem Single Level of Abstraction (SLA) Prinzip habe ich ziemlich lange geknabbert, bis ich es endlich überall durchziehen konnte. Es verlangt einem tatsächlich ab, viel Arbeit in seinen Code zu stecken. Nur durch sinnvolles Refactoring kann man sicherstellen, dass es auch eingehalten wird. Der Code wirkt dadurch aber grundsätzlich aufgeräumter und hat…read more

0

Mutationstesten: Abgrenzung zu anderen Testverfahren

Posted by in Softwarequalität, Testverfahren

Mutationstesten ist ein Verfahren, um Tests aussagekräftiger zu machen. Es ist quasi der Goldstandard unter den Testabdeckungsmetriken. Warum? Es prüft nicht nur, ob eine Zeile Code abgedeckt wurde, sondern auch, ob der/die dazugehörige(n) Test(s) tatsächlich Fehler in dieser Zeile finden können. Dazu werden kleine absichtlich kleine Fehler in den Code eingebaut (Mutationen), die von der Testsuite gefunden werden sollten. Wie das alles genau aussieht, werde ich demnächst beschreiben. Heute geht es mehr um die Platzierung von Mutationstesten im Vergleich zu anderen Testverfahren, wie zum Beispiel Unit-Tests. Was Mutationstests nicht sind…read more

0

Karlsruher Entwicklertag 2017: Agile Day Bericht

Posted by in Konferenz

Zum zweiten Mal war ich auf dem Karlsruher Entwicklertag als Sprecher unterwegs. Diesmal am Agile Day, was zu Folge hatte, dass ich einige Themen mitnehmen konnte, die ich sonst nicht gehört hätte. Wie schon letztes Jahr war die Organisation seitens andrena objects professionell, auch schon im Vorfeld. Die Betreuung in meinem Track war ebenfalls sehr gut. Danke an die Moderatorin Sabine Ogoril und ihren Helfer. Keynote: 45 Minuten Disziplin – Rolf Dräther, Holger Koschek Die Keynote von Rolf Drähter und Holger Koschek war genau so wie sie sein sollte. Persönlich,…read more

0

Grundlagen: Was ist Endrekursion?

Posted by in clojure, funktionale Programmierung, funktionales Programmieren, JavaScript

Rekursion ist ein mächtiges Konzept in der Programmierung, bei dem eine Funktion sich selbst aufruft. In meiner Studienzeit gab es einen witzigen Spruch: Informatikerhandbuch – Rekursion: Siehe Rekursion Dieser beschreibt treffend die Idee, eine Aufgabe mit einer sich selbst aufrufenden Funktion zu lösen. Ein Beispiel Wir starten mit einem kleinen Beispiel, das man sofort findet, wenn man nach Rekursion sucht. Der Fibonacchi-Folge (JavaScript):

Leider gibt es mit dieser Implementierung ein Problem. Der Speicherverbrauch dieser Funktion wächst bei großen n stark an. Schuld ist, dass für jeden Aufruf von fib(n)…read more

0

JAX 2017: Erfahrungsbericht (DI, MI)

Posted by in Allgemein, Konferenz

Die JAX 2017 war für mich mal wieder eine Premiere, da ich sie zum ersten Mal besuchen konnte. Die Rheingoldhalle an sich ist von außen schon beeindruckend und mit circa 1600 Teilnehmern ist es ein richtiges Event. Es gibt so viele Räume, Aussteller und Talks, dass die Zeit gar nicht ausreicht, um alles mitzunehmen. Trotz dieser Voraussetzungen ist alles wunderbar organisiert und es gibt keine Kritikpunkte (Abgesehen von zu kleinen Räumen bei vielen Talks). Ich konnte einige interessante Vorträge besuchen und es wären bestimmt mehr geworden, wäre ich manchmal nicht…read more

0

jQuery data-* Attribute auslesen

Posted by in JavaScript

Da arbeitet man schon so lange mit jQuery und kennt doch noch nicht alle Tricks. Diesen hier finde ich ganz interessant, deswegen bekommt er einen Blog spendiert. Die Ausgangssituation Immer wieder sind in Elementen Attribute der Form data-* zu finden. Nehmen wir als Beispiel einmal das folgende Element.

Bis jetzt habe ich das immer so ausgelesen.

Spezieller Zugriff auf data-* Es gibt aber einen besseren Weg, den jQuery speziell für diese Art von Attributen bereitstellt. Nämlich die Methode data.

Damit lassen sich data-* Attribute bequem auslesen. Und…read more

0

BOBKonf 2017: Erfahrungsbericht

Posted by in Konferenz

Das erste Mal auf der BOBKonf… Der Titel der Konferenz beinhaltet Best of Breed. Es geht darum, die besten Werkzeuge für moderne Softwareentwicklung auszusuchen. Interessanterweise heißt das für viele Teilnehmer funktionale Programmierung, allen Sprachen voran Haskell. Dadurch bekommt die Veranstaltung einen ganz eigenen Touch, da die Community sehr offen ist und man auch als hauptsächlich objektorienter Programmierer willkommen ist. Die Vielseitigkeit, Offenheit und Intelligenz der Teilnehmer wurde schon vor der Konferenz klar, da ich beim Pre-Dinner Einige kennen lernen durfte. Leider konnte ich nicht überall etwas beisteuern, da ich viele…read more

0

Frankfurter Entwicklertag 2017: Erfahrungsbericht

Posted by in Konferenz

Ich war am 16./17.02 beim Frankfurter Entwicklertag unterwegs. Die Konferenz wurde zum vierten Mal an der Goethe Universität Frankfurt veranstaltet und glänzte für mich durch sehr interessante Vorträge. Insgesamt war es wieder professionell organisiert und die Betreuung der Sprecher war super. Mein Vortrag lief dadurch auch stressfrei. Tag 1 – Conference Day Nach der Begrüßung ging es mit einem kurzen Talk von John Fletcher los: Entwicklertag in der Praxis. John berichtete über die Ideen, die er aus dem Entwicklertag 2016 mitgenommen hatte und wie er sie umgesetzt hat. Dabei waren…read more

0

Software QS-Tag 2016

Posted by in Allgemein, Konferenz

Der Software QS-Tag 2016 in Nürnberg wird von der imbus AG organisiert und ist die größte Konferenz über Software-Qualität in Deutschland. Zum jetzigen Zeitpunkt ist es die am besten durchorganisierte Konferenz, an der ich teilnehmen und sogar sprechen durfte. Die Qualität der Beiträge ist hoch und die Sprecher sind offensichtlich erfahren. Ich fühle mich geehrt, dass ich ebenfalls etwas beitragen durfte. Location Das Sheraton Hotel ist eine exklusive Location direkt am Hauptbahnhof in Nürnberg. Die Räume sind stilvoll eingerichtet und die Mitarbeiter sind fast schon zu übereifrig 😉 . Auch…read more

0