Programmierblog von Johannes Dienst

Die Probleme mit DRY auf Modulebene

Posted by in clean code, Softwarequalität

Das DRY – Don’t Repeat Yourself – Prinzip haben die meisten Entwickler als wichtiges Prinzip verinnerlicht. Um das nüchtern festzustellen: Das Kopieren von Code an sich ist im ersten Moment schmerzlos und geht schnell. Der Entwickler muss sich keine Gedanken über eine sinnvolle Abstraktion oder den Ort des Codes machen, sondern kopiert ihn sich einfach an die benötigte Stelle. Problematisch ist das erst im Fehlerfall. Tritt ein Fehler in einem Codestück auf, das x-Mal dupliziert wurde, dann ist er in allen Duplikaten ebenfalls zu beheben. Meistens wird dann eines davon…read more

0

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

Clean Code Days 2016

Posted by in clean code, Konferenz

Die Clean Code Days 2016. Unendlicher Clean Code, Testen in Perfektion und die Erkenntnis, dass wir Entwickler nur die Manager von den vielen Vorteilen überzeugen müssten, die Clean Code mit sich bringt. Die sind es nämlich, die für eventuellen Mehraufwand zu Projektbeginn dem Kunden klarmachen müssen, was er im Endeffekt gewinnt. Michael Puder hat das in seiner Abschlusskeynote bestätigt. So bleibt meine Frage, die mich schon immer quälte weiterhin unbefriedigend beantwortet! Es geht vorwärts Die Bewegung geht aber in die richtige Richtung. Clean Code im kleinen Einführen, die Vorteile dadurch…read more

0

Warum man als Programmierer bescheiden bleiben sollte

Posted by in clean code

Da ich ständig versuche über meine Arbeit zu reflektieren – was übrigens auch von einem Clean Code Entwickler erwartet wird – komme ich immer wieder zu der Frage: Was macht denn einen guten Softwareentwickler aus? Inzwischen glaube ich ja, dass ich gar nicht so schlecht in dem bin, was ich tue. Aber ich bin weit vom Expertenstatus des Dreyfus Modells entfernt. Für Projekte, die ich selbst mitentwickelt habe, kommt es tatsächlich vor, dass ich Experte bin, da ich bei Bugs intuitiv sagen kann, wo genau das Problem liegt. Also wie…read more

0

Legacy Code refactoren

Posted by in clean code, legacy

Immer wieder komme ich mit Legacy Code in Berührung, der mitunter schon ziemlich alt sein kann. Dementsprechend schwierig kann die Arbeit mit so einer Codebasis werden. Richtig knifflig wirds, wenn von mehreren Entwicklern Änderungen eingepflegt wurden und immer wieder Spezialfälle individuell gelöst wurden, anstatt einen generellen Ansatz zu verfolgen. Inzwischen habe ich mehrere Punkte für mich herausarbeiten können, die mir besonders weiterhelfen, wenn ich mit Legacy Code zu tun habe Umfangreiches Refactoring braucht Zeit. Diese Zeit muss vor allem störungsfrei sein. Ansonsten gibt es nur Frust und man zerstört im…read more

0

6 Bücher für (Java-)Entwickler

Posted by in Buch, clean code

In diesem Post stelle ich 6 Fachbücher vor, die mich besonders inspiriert haben. Darunter sind sowohl Java-Spezifische als auch allgemein Bücher für Entwickler. Der Weg zum Java-Profi Das Buch Der Weg zum Java-Profi: Konzepte und Techniken für die professionelle Java-Entwicklung ist für mich DIE Java-Bibel überhaupt. Es behandelt so ziemlich jeden Aspekt von Java. Von den Basics bis hin zu Bad-Smells und verschiedenen Garbage-Collection-Strategien. Der pragmatische Programmierer Andrew Hunt und David Thomas haben 2003 mit Der Pragmatische Programmierer eine neue Sichtweise auf die Programmierkunst aufgezeigt. Einige Punkte sind zwar inzwischen…read more

0

Clean Code: Meine Erfahrungen im roten Grad

Posted by in clean code

Meine Arbeiten am roten Grad habe ich inzwischen abgeschlossen. Wie erwartet war es relativ einfach, diesen Grad zu meistern, da ich ihn schon länger beachtet hatte. Trotzdem hat es mir viel gebracht, mehr darüber zu reflektieren. Aber ich habe doch ein paar kritische Augenblicke gehabt, über die ich berichten will. Das DRY-Prinzip war mir schon länger vertraut, da ich schon immer versucht habe es einzuhalten (nicht immer mit Erfolg). Bewusst noch einmal den Fokus darauf zu legen hat mir tatsächlich etwas gebracht. Zweimal war ich in Versuchung es bequemlichkeitshalber zu…read more

0