Programmierblog von Johannes Dienst

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

Async/Await – Fehlerbehandlung, Generatoren

Posted by in JavaScript

Im letzten Blog ging es um Die Grundlagen von Async/Await. Dieser Teil behandelt die Fehlerbehandlung, Probleme die es bei der Verwendung von Async/Await geben könnte und der Basisfunktionalität, ohne die es gar nicht möglich wäre Async/Await in dieser Form bereitzustellen. Fehlerbehandlung Die Fehlerbehandlung mit Async/Await kann man erheblich vereinfachen, indem try/catch-Blöcke verwendet werden. Das geht dann wie im folgenden Code

Dafür muss jedoch die Funktion getInspiration2 geändert werden. Dort muss beim Reject des Promises das error-Objekt zurückgegeben werden.

Vorteil dieser Implementierung ist, dass Fehler sinnvoll abgefangen werden können…read more

0

Karlsruher Entwicklertag 2016: Conference Day

Posted by in JavaScript, Konferenz, TypeScript

Mit etwas Verspätung wegen Urlaub schreibe ich diesmal etwas zu der Konferenz Karlsruher Entwicklertag 2016. Ich muss dazu sagen, dass ich nur am sogenannten Conference Day anwesend war und diesmal sogar zwei Vorträge halten durfte. Organisation Die Organisation war einwandfrei und lies fast keine Wüsche offen. Das ging von den Vorabinformationen per Email (Verzeihen Sie mir bitte die Emails Frau Lippert) bis zur Durchführung. Einige Session wurden professionell aufgezeichnet und die Ausstattung in den Räumlichkeiten funktionierte ohne größere Probleme. Nur das WLAN machte beim Live-Coding zicken. Wie sollte es auch…read more

0

Async/Await in JavaScript – Die Grundlagen

Posted by in JavaScript

Asynchrone Programmierung ist immer wieder eine Herausforderung. Ein häufiges Problem ist die Callback Hell Inzwischen existieren in JavaScript mehrere Möglichkeiten mit der Komplexität umzugehen. Allen voran Promises, die seit ES2015 sogar zum Sprachstandard gehören. Noch einfacher mit Async/Await Mit ES2017 kommt eine weitere Abstraktion hinzu. Sie baut auf Promises auf und der Code liest sich damit wie synchroner Code. Aber fangen wir von vorne an. Zuerst wird eine Funktion mit einem asynchronen Aufruf gebraucht. Dafür benutze ich das API von https://theysaidso.com.

Mit etwas Übung fällt der Fehler in dieser…read more

0

JavaScript-Bug ganz subtil

Posted by in JavaScript

JavaScript ist manchmal eine Sprache, die subtile Bugs produziert. Hier ist die Preisfrage: Was ist an diesem Code-Schnipsel falsch und was sind die Auswirkungen?

Keine Idee? Ich musste auch erst überlegen, da ich solche Fehler eigentlich nirgendwo erwarten würde. Das Problem ist in Zeile 6 zu finden. Die Variable json_data wird dort initialisiert. Leider nicht im lokalen Scope, sondern anscheinend im globalen Scope. Von JSON.parse() wird ein Array zurückgeliefert. Beim Debuggen hat sich dann gezeigt, dass die Array.length nicht zurückgesetzt wird. Hat es die Länge 10 bei einem Durchlauf…read more

0

TypeScript 1.6: Endlich sinnvolle Mixins?

Posted by in JavaScript, TypeScript

Wie in meinem Artikel im JavaSpektrum beschrieben, gab es bis zur Version 1.6 keine richtige Untersützung für Mixins. Mixins waren nur mit einer zusätzlichen applyMixins() möglich und auch dann hatte man jede Menge Boilerplate-Code zu schreiben, die die ganzen Vorteile zunichte gemacht haben. Intersection Types für die Rettung? Mit Intersection Types sollen jetzt laut diesem Blogpost Mixins endlich sinnvoll einsetzbar sein. Aber stimmt das? Schauen wir uns dazu einfach das Beispiel aus dem Post genauer an:

Man braucht eine Methode, um zwei Instanzen zu mixen. So ganz erklärt das…read more

0

Homoikonizität

Posted by in clojure, funktionale Programmierung

Die letzten Monate habe ich damit verbracht zwei neue Programmiersprachen zu lernen. Eine davon ist Clojure, das mich schon seit meiner Studienzeit interessiert hat. Leider hatte ich damals noch nicht einmal Java gelernt und so blieb mir die eigenartige Syntax und das funktionale Programmierparadigma mehr oder weniger verschlossen. In nächster Zeit werde ich immer wieder über Konzepte schreiben, die diesen Sprachen zugrunde liegen, um mir selbst darüber klar zu werden, was sie denn eigentlich bedeuten. Sollten sich Fehler einschleichen, können diese gerne angemeckert werden 🙂 Homoikonizität Was ist denn eigentlich…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

Ausbilderqualifikation in Vollzeit bei der IHK Würzburg-Schweinfurt

Posted by in Allgemein

Seit Anfang April bin ich stolzer Besitzer einer Prüfungsurkunde laut AEVO. Damit bin ich qualifiziert, Fachinformatiker ausbilden zu können. Falls Interessse an einer Ausbildung besteht gehts hier zu der Seite meines Arbeitgebers MULTA MEDIO Informationssysteme AG. Wie der Unterricht und die Prüfungen abgelaufen sind, werde ich in den nächsten Absätzen beschreiben. 1. Woche Nach einem langgezogenen Papierkrieg und vielen Unterschriften wurden wir nach einer kurzen Vorstellungsrunde von unserer engagierten Dozentin Frau Münch in Gruppen aufgeteilt. Wir sind ein bunter Haufen bestehend aus einem Informatikkaufmann, einer Hotelfachfrau, einem Restaurantfachmann, einer Verwaltungskauffrau…read more

0

Git: Repository aus Github klonen und bearbeiten

Posted by in git

In meinem Artikel Git: Basics habe ich grundlegende Funktionalitäten von Git im Zusammenspiel mit Github anhand eines Beispiels vorgestellt. Dieser Artikel zeigt, wie ich ein auf Github erstelltes Repository klone und dann Dateien hochpushe. Kleine Werbung am Rande: Es handelt sich dabei um einen Output-Wrapper für xml.js der hier zu finden ist xml.js-Output-Wrapper. Repository klonen Zuerst muss man das Repository auf github erstellen. Die URL ist in diesem Fall https://github.com/JohannesDienst/xml.js-Output-Wrapper.git. Dann kann man schon klonen.

Dateien adden und committen Der xml.js-Wrapper besteht aus genau zwei Dateien. Zuerst der Wrapper…read more

0