Jan Bernecke

Jan Bernecke
Jan Bernecke ist seit 2019 Online-Redakteur bei S&S Media. Zuvor war der rugbyspielende Literaturwissenschaftler im Bereich Online-Marketing tätig.
Beiträge dieses Autors

Jenkins-less CI/CD mit Kubernetes: Mit der Migration zu Kubernetes wird bei Jenkins alles anders

Jenkins X ist das jüngste Produkt aus dem Hause CloudBees, dem Hersteller von Jenkins. Außer dem Namen bleibt nicht viel von der weitverbreiteten Continuous-Anything-Plattform, die weitere Verwendung des Namens Jenkins ist sowohl Heilsversprechen als auch Menetekel. Zum einen versucht man wohl, die Jünger des altbekannten Butlers mitzunehmen, zum anderen schreckt man leider auch neue potenzielle Nutzer ab.

Freie Netze: Set-up eines Freifunk-Routers

In diesem Artikel sehen wir uns an, wie man einen Router für die Verwendung im Freifunk-Netzwerk vorbereitet. Das Freifunk-Netzwerk ist ein freies WLAN, das in Eigenregie aufgebaut und gewartet wird. Um das Netzwerk zu betreiben, stellen die Teilnehmer einen WLAN-Router und einen Teil ihrer Internetbandbreite zur Verfügung. Das Freifunk-Netz ist offen und kann von jedem verwendet werden. Die Freifunk-Router sind in der Lage, untereinander ein WiFi-Mesh-Netzwerk aufzubauen. Die Vorteile werden wir im Folgenden beleuchten.

C Plus Plus 20: Die Features der neuen C++-Version

Die Pflege von „in Ehren ergrauten“ Systemen ist seit jeher eine durchaus haarige Aufgabe. Die Arbeit an der neuen Ausgabe des C++-Standards erwies sich als durchaus kritisch. Bis zuletzt war nicht ganz klar, welche Erweiterungen wirklich in den neuen Sprachstandard kommen. Mittlerweile hat sich der Staub gelegt. Auch wenn ein Gutteil der Funktionen noch nicht in allen Compilern implementiert ist, ist nun ein guter Zeitpunkt, um einen Blick auf die Möglichkeiten und Grenzen der neuen Version von C++ zu werfen.

Ubiquitous Language: Warum ist Sprache so wichtig?

Ein Element, das in der gesamten Domain-driven-Design-Literatur querschnittlich präsent ist, ist die Ubiquitous Language, die allgegenwärtige Sprache. Allgegenwärtig bezieht sich darauf, dass es sich hierbei um eine Sprache handelt, die von Softwareentwickler*innen und Fachexpert*innen gemeinsam gesprochen wird. Diese Sprache soll dann auch die Basis für die Entwicklung des Softwaremodells sein. Im Rahmen dieses Artikels gehen wir erst auf die Motivation für die Etablierung einer Ubiquitous Language ein, bevor schließlich das Potenzial und die Möglichkeiten für die Arbeit mit einer solchen Sprache vorgestellt werden. Weiterhin werden noch kurz die Vorgehensweisen zur Herleitung einer Ubiquitous Language erläutert.

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.

Der Teil und das Ganze: Ein 6+1-Punkte-Plan zur Erstellung einer Microfrontend-Shell

Microfrontends sind derzeit ein viel diskutiertes Thema. Nach dem Vorbild von Microservices wird dabei ein großes Frontend auf mehrere kleine aufgeteilt. Dadurch sollen einzelne Teams autark arbeiten und sogar eigene Technologieentscheidungen treffen können. Während diese Idee im Kern simpel ist, ist es die konkrete Umsetzung leider nicht. In diesem Artikel fasse ich die in verschiedenen Projekten gesammelten Erfahrungen in 6 + 1 Punkten zusammen und zeige, wie sich eine Microfrontend-Shell umsetzen lässt.

Sieben Mal daneben: Warum Continuous Delivery manchmal scheitert

Kontinuierliches Liefern (Continuous Delivery) und Infrastructure as Code sind Mainstream, oder? Zumindest behaupten viele, es zu praktizieren. Wer es nicht macht, ist draußen (neudeutsch: out) – oder zumindest ganz weit drin im Zimmer. Konsequent zu Ende betrachtet müssten wir also eine enorme Verbesserung der Liefergeschwindigkeit in unserer IT-Welt sehen – und zwar nicht nur bei kleinen Unternehmen und Projekten.

Kill your Monolith: Von der Entstehung eines Monolithen und dem Versuch, ihn zu zerlegen

Bei der Entwicklung von Softwaresystemen und -architekturen gibt es verschiedene Ansätze und Paradigmen, die jeweils kontextabhängige Vor- und Nachteile haben. Zu gerne folgen wir bei der Beurteilung von Architekturen entweder unseren persönlichen Vorlieben oder wir verurteilen Lösungen, die nicht mehr State of the Art oder zu komplex sind, um sie mit überschaubarem Aufwand zu überblicken. Eine objektive Beurteilung einer gewachsenen Architektur kann aber nur auf einer strukturierten und sachlichen Analyse basieren.

Python im Einsatz: Drei Anwendungsbereiche von Python

Gerade weil Python durch seine Syntax eine geringe Einstiegshürde aufweist, wird die Programmiersprache in der Praxis häufig eingesetzt. Neben Data Science und Webentwicklung findet man sie auch bei der Automatisierung kleinerer Prozesse. Der Inhalt dieses Artikels basiert dabei auf den eigenen langjährigen Praxiserfahrungen mit Python.

Flutter – Einblick in die Future: Async und await in Flutter erklärt

Im ersten Teil dieses Artikels [1] wurde eine Kurzeinführung in Flutter gegeben. Zur Erinnerung: mit Flutter kann man mobile Applikationen für iOS und Android erstellen, aber auch Webapplikationen und bald auch welche für den Desktop. „Write once, deploy everywhere“ kommt also wieder näher. In diesem Teil werden wir uns anschauen, wie man in der Programmiersprache Dart asynchrone Operationen durchführt und dann in Flutter elegant damit arbeiten kann.

Und jetzt? Microservices nach dem Hype

Microservices standen jahrelang im Mittelpunkt des Interesses. Zeit, ein Fazit zu ziehen und aufzuzeigen, wie Microservices die Softwareentwicklung beeinflusst haben.

Der Rechenknecht in Python: Mathematische Probleme mit Basisfunktionen und Bibliotheken lösen

Ein wichtiger Grund, warum Python im Moment einen wahren Hype erlebt, ist die Möglichkeit, mit dieser Programmiersprache relativ leicht mathematische und statistische Probleme zu lösen. Der Übergang zu den Algorithmen der künstlichen Intelligenz ist dann nicht mehr weit. Mit den richtigen Bibliotheken kann man sich auf das eigentliche Problem konzentrieren und die Umsetzung eines Algorithmus geht leicht von der Hand.