Entwicklung

Keep Docker simple, stupid!

Docker hat sich in der IT-Landschaft etabliert und wird nicht nur in Start-ups eingesetzt, sondern auch im Enterprise-Umfeld, wo Restriktionen bezüglich Security und anderer Themen der Softwareentwicklung und des Betriebs viel stärker ausgeprägt sind. Oft beeinflussen diese Restriktionen die Entscheidung für oder gegen ein Tool. Vielleicht wird Docker dort nicht sofort in Produktion eingesetzt, aber möglicherweise kann es trotzdem die Softwareentwicklung unterstützen, etwa wenn die Entwickler sich mit Hilfe von Docker lokale Testumgebungen aufbauen oder wenn Docker für ihre Integrationstests benutzt wird. Was macht den Einsatz von Docker im Enterprise-Umfeld zu einer Herausforderung?

Das Spiel mit dem Komplexitätsfeuer: KISS of Death by Complexity?

KISS ist das Motto dieser Ausgabe des Java Magazins: Keep it simple, stupid! Auf Deutsch: Mach es nicht unnötig kompliziert. Das klingt gut und erstrebenswert. Aber machen wir in der Praxis nicht eher das Gegenteil davon? Wenn man sich umschaut, dann steht uns die Komplexität bis zum Hals. Und anstatt etwas dagegen zu tun, häufen wir jeden Tag fleißig neue Konzepte, Tools und Technologien obendrauf, getrieben von immer neuen Hypes und Hoffnungen auf Patentrezepte. Zeit für eine kritische Betrachtung.

Umfassend und ganzheitlich: Strategic Design

Domain-driven Design bietet uns mit dem sogenannten Strategischen Design eine Anleitung, wie eine Domain und damit der Problemraum fachlich erfasst und aufgeteilt werden kann. Diese Aufteilung lässt sich dann auf den Lösungsraum – die Software – übertragen. Die Fachbegriffe aus DDD, die dabei eine Rolle spielen, sind: Domain, Subdomain, Bounded Context und schließlich die Context Map für das Zusammenspiel der Bounded Contexts. In diesem Artikel werden wir diese Begriffe und unser Verständnis davon vorstellen.

Mehr erreichen mit weniger Code: Ein Einblick in Svelte

Svelte ist der neue Stern am Web-Frontend-Himmel. Es ist rasend schnell und seine minimale Bundle Size steckt andere Frameworks locker in die Tasche. Vor allem aber ist es ausdrucksstark: Minimaler Code führt zu maximalen Ergebnissen. Performancetuning durch den User mit Hilfe von Dingen wie shouldComponentUpdate? Nicht nötig. Boilerplate-Code, um eine Komponente zu erstellen? Nicht vorhanden. Gleichzeitig ist Svelte sehr umfangreich. Ein Animationspaket und eine State-Management-Lösung sind bereits enthalten. Wie schafft Svelte das? Darauf wollen wir in diesem Artikel einen Blick werfen. Gemeinsam machen wir die ersten Schritte mit Svelte und bauen die Mutter aller Apps: eine To-do-Liste.

Lock & Crete: Upgraden von ReadWriteLock

Die Java-Klasse ReentrantReadWriteLock kann einen Read Lock nicht auf einen Write Lock upgraden. Kotlins Erweiterungsfunktion ReentrantReadWriteLock.write() schummelt ein wenig, indem sie den Read Lock vor dem Upgrade loslässt und so die Tür für Race Conditions öffnet. Eine bessere Lösung ist StampedLock, das über eine Methode verfügt, mit der versucht wird, den Lock in einen Write Lock umzuwandeln.

Starke Typen: Spannende TypeScript-Neuerungen im Überblick

TypeScript hat sich als Best Practice für die JavaScript-basierte Webentwicklung eta-bliert. Während Angular bereits seit Version 2 voll auf TypeScript setzt, kommt die typisierte JavaScript-Obermenge auch zunehmend in Angular-unabhängigen Webprojekten zum Einsatz. Das liegt am Mehrwert, den TypeScript gegenüber purem JavaScript bietet: Die statische Typisierung zeigt zur Compile-Zeit Fehler auf, zudem werden Entwickler durch Typinformationen beim Schreiben von Code unterstützt. TypeScript liegt zurzeit in Version 3.8 vor. Dieser Artikel zeigt die Entwicklung der Sprache ab Version 3.0 und stellt Neuerungen und Features vor.

Geschichte eines Filmverleihs: Reaktive Mandantenfähigkeit mit Neo4j 4.0 und SDN/RX

Diejenigen Leser, die meine Artikel, Vorträge und Posts seit längerem verfolgen, mögen mir nachsehen, dass ich ein Fan aussterbender Medienformate bin. Nach CDs und Alben jetzt Videos. Die Domäne Videos hat den Vorteil, dass Neo4j mit einem eingebauten Guide kommt, der den sogenannten Movie Graph erstellt. In den Java-Magazin-Ausgaben 7.2019, 8.2019 und 9.2019 habe ich ausführlich beschrieben, wie Neo4j lokal und auf dem Server in Betrieb genommen werden kann.

Algorithmen als Kernelemente des Programms – Definition und Klassen

Am Anfang der Ausbildung oder des Studiums hat man sich intensiv mit Algorithmen beschäftigt. Man hat etwas über formale Anforderungen gehört und die Verfahren in Lösungsklassen eingeteilt. Danach rücken die Fragen rund um Algorithmen meist in den Hintergrund, obwohl deren Anwendung und Entwicklung der Kern einer jeden Software sind. Zeit, die Grundlagen und neuere Entwicklungen auf den aktuellen Stand zu bringen.

App-Entwicklung mit Firebase

Unter dem Firebase-Label bietet Google verschiedene Dienste an, die uns bei der Entwicklung von Apps und Webseiten unter die Arme greifen. Wir konzentrieren uns dabei ganz auf die Entwicklung unserer App und delegieren jede Arbeit, die andernfalls mit dem Backend anfallen würde, an Firebase, das in der Google Cloud läuft.

Firebase – die Power aus dem Hintergrund

Android-Apps programmiert man am besten in Java und Android Studio. Und das Backend, wie entwickelt man das? Im Idealfall gar nicht! Firebase ist der von Google betriebene Clouddienst, der umfassende Services primär für Android-Apps zur Verfügung stellt. In vielen Fällen kann man auf diesen Backend-Dienst setzen und kommt damit zügig zum Ziel.

Testing-Methoden und -Technologien im Überblick

Test-driven Development ist keine Mode, sondern professionelle Entwicklung. Anders als der Zuckerguss einer Torte ist Qualität auch kein Attribut, das nachträglich ergänzt werden kann, sondern muss von Anfang an berücksichtigt werden. Dieser Artikel soll einen Überblick über die zum Erreichen dieser Qualität nötigen Testing-Methoden und -Technologien geben.

Software-Entwicklung: Passgenau für den Nutzer

Software wird für den Nutzer erstellt. Doch wer ist der Nutzer? Um das herauszubekommen, gibt es unterschiedliche Methoden, die zu einem großen Teil aus den Erkenntnissen der Marktforschung abgeleitet sind. Besondere Nutzergruppen bedürfen dabei einer besonderen Betrachtung, zum Beispiel Kinder oder ältere Anwender.

Developers for Future: Auch Coden zerstört den Planeten

Es begann als Streik für den Klimaschutz und hat sich inzwischen zu einer der prägnantesten, weltweiten Bewegungen entwickelt – die Fridays For Future. Inzwischen sind es jedoch nicht nur Schüler, die klimapolitisch aktiv werden, auch andere Berufsgruppen sind in den Mitstreik getreten – wie z. B. der Entwickler Maximilian Berghoff mit der Gruppe „Developers for future“.

Alexa Skills entwickeln: Sprachbefehle für LEGO-Mindstorms-Roboter

Vor 75 Jahren hat der Science-Fiction-Schriftsteller Isaac Asimov nicht nur den Begriff Robotik erfunden, sondern auch drei Robotergesetze formuliert. Dem zweiten Asimovschen Gesetz gemäß muss ein Roboter den menschlichen Befehlen gehorchen. In unserem Artikel befassen wir uns mit der technischen Fragestellung: Wie gut kann ein Roboter im Jahr 2017 auf Befehle von Menschen hören? Zwei intelligente Maschinenwesen, Alexa und LEGO, treffen aufeinander, um uns bei der Beantwortung dieser Frage zu helfen.