Programmierblog von Johannes Dienst

Clean Code Days 2017: Erfahrungsbericht

Posted by in clean code, Konferenz

Dieses Jahr war ich zwei Tage auf den Clean Code Days. Leider habe ich am ersten Konferenztag die Keynote von Elmar Jürgens verpasst. Im Gegenzug dafür konnte ich „ausschlafen“ 😉 . Insgesamt scheint die Konferenz, die parallel zur Embedded Testing stattfindet, in der Teilnehmerzahl leicht zu wachsen. Immerhin waren deutlich mehr Aussteller da und es gab mehr Keynotes. Für einen eingefleischten Clean Coder sind ein großer Teil der Vorträge mit vielen bekannten Grundlagen ausgestattet. Jedoch konnte ich von den fortgeschrittenen Themen interessante Ideen mitnehmen. Zu begrüßen waren die Vorträge über…read more

0

Funktionen, die Funktionen zurückgeben, die Funktionen …

Posted by in clean code, funktionale Programmierung, funktionales Programmieren, JavaScript

Als ich mich das erste Mal mit funktionaler Programmierung beschäftigt habe, war mir überhaupt nicht klar, wo mir diese ganzen exotischen Konzepte nützen könnten. Inzwischen habe ich viel über dieses Paradigma gelernt und bei manchen Denkansätzen gab es einen richtigen AHA-Effekt. Ein interessanter Einsatz von Funktionen als Objekte liegt in Funktionen, die Funktionen generieren. Damit kann man sehr interessante Dinge anstellen. Genau das habe ich vor ein paar Wochen getan. Von der Lösung war ich richtig begeistert, die damit so einfach entstanden ist. Diese Begeisterung möchte ich gerne teilen! Das…read more

0

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