Blog

Blog-Post

Java und seine Annotationen

Java-Code ohne Annotationen ist heute kaum mehr denkbar, auch wenn es hieran immer wieder Kritik gibt. Doch, kaum zu glauben, es gab auch eine Zeit vor diesen. Drei Anwendungsfälle demonstrieren, wie diese Probleme vor der Einführung von Annotationen gelöst wurden und wie es auch heute ohne diese gehen könnte.

Blog-Post

Spring Boot und explodierte JARs

Auf den ersten Blick scheint das Starten von Spring-Boot-Anwendungen nicht sehr schwer zu sein. Ein Aufruf von java -jar my.jar reicht dafür. Doch wie genau funktioniert das eigentlich? Und wie lässt sich die Softwareverteilung effizienter gestalten? Dieser Artikel beantwortet diese beiden Fragen und nimmt Sie dabei mit auf eine Reise durch die Geschichte von Spring Boot.

Blog-Post

Entwickler skalieren anders als Applikationen

Blog-Post

Here’s All You Need To Know To Start Building With Generative AI

Curious on how to start building with Generative AI? This guide covers the basics, from deploying local models to utilizing tools like Huggingface and LangChain. Learn to create your first AI application, manage customer feedback, and grasp key concepts such as context windows and vectorization. Discover practical examples and essential resources to help you get started.

Blog-Post

Mehr aus Git machen

Git hat sich als das de-facto-Standard für Versionskontrollsysteme etabliert. Obwohl wir es täglich verwenden, sind viele von uns einfach mit den Standardeinstellungen unterwegs. Damit liegen jedoch viele der von Git gebotenen Möglichkeiten brach. In diesem Artikel möchte ich ein paar mir lieb gewonnene Optionen vorstellen und so vielleicht der einen oder dem anderen das Leben mit Git einfacher machen.

Blog-Post

Springboot mit Keycloak in 2024

Endlich aktuelle Infos…

Blog-Post

Ist das Spring RestTemplate wirklich Deprecated?

Ist das Spring RestTemplate wirklich veraltet? Dieser Artikel beleuchtet die verwirrende Geschichte hinter der angeblichen Deprecation, klärt auf, was wirklich Sache ist und gibt praktische Empfehlungen für Entwickler. Erfahren Sie, warum Sie vielleicht doch nicht all Ihren Code umschreiben müssen.

Blog-Post

Social Engineering ist durchgespielt

Der Angriff auf die Kompressionsbibliothek xz hat gezeigt, wie fragil die digitale Infrastruktur ist, die die moderne Welt am Laufen hält. In dieser Kolumne soll betrachtet werden, wie die sozialen Mechanismen Vertrauen und Misstrauen in diesem Zusammenhang wirken.

Blog-Post

Boring Innovation?

Blog-Post

Entwicklung eines Datenprodukts mit Databricks

Im modernen Data Engineering geht es v.a. um die Entwicklung modularer Datenprodukte. Dieser Artikel beschreibt die Vorteile von Modularität gegenüber monolithischen Datenpipelines und erklärt Schritt für Schritt, wie sich Datenprodukte mithilfe von Databricks entwickeln lassen – von der Definition eines Data Contracts über die Erstellung und Implementierung von Databricks Asset Bundles bis hin zur Einrichtung einer CI/CD-Pipeline und der Veröffentlichung von Metadaten.

Blog-Post

Modernisierung einer Legacy Software-Architektur

Software-Systeme reifen mit der Zeit. Sie werden oft über viele Jahre und von verschiedenen Architekten und Entwicklern angepasst, um neue Anforderungen zu erfüllen. Der Alterungsprozess lässt sich trotz sorgfältiger Pflege nie ganz aufhalten und so erhält irgendwann jedes System den Stempel „legacy“. Legacy Systeme unterstützen aber weiterhin wichtige geschäftliche Tätigkeiten. Wie führt man diese Systeme also zurück in die Gegenwart und bereitet sie auf die Zukunft vor?

Blog-Post

Nicht mehr Open-Source

Technologieentscheidungen rational treffen

Blog-Post

Type-safe SQL queries in Java and Rust

In recent years, our industry has been in favour of strong typing and build-time verification to make certain classes of bugs impossible. How much influence has this trend had on how we can write SQL queries in Java? Let’s look at how typesafe SQL queries can be in Java, how this compares to what you can do in Rust, and consider the benefits and drawbacks of these different approaches.

Blog-Post

Die Ökonomie von Gut & Crypto III

In den ersten beiden Teilen zur soziotechnischen Betrachtung von Crypto-Technologien ging es um Vertrauen und die Rolle von Vermittlern bei Transaktionen. Dieses Mal soll der Gegenstand der Transaktionen im Mittelpunkt stehen: Geld.

Blog-Post

Type-safe HTML templates in Java and Rust

The Type-Safe Web Stack, Part 2

Blog-Post

Die Ökonomie von Gut & Crypto II

Im vorherigen Teil dieser Kolumne wurde die soziale Funktion und die Funktionsweise von Vertrauen betrachtet und die Frage gestellt, inwiefern Technologie diese Funktion unterstützen oder sogar übernehmen kann. Diesmal soll es um die Frage gehen, inwieweit Vermittler dabei eine Rolle spielen und welche Auswirkungen Technologie auf diese hat.

Blog-Post

gRPC

One of the main tasks that business sets for IT as an industry is the creation of effective software, according to criteria that clearly meet the needs of this business. On the other side, one of the main prerequisites for achieving the goals that a business sets for itself is the ability to hire specialists who can create a product in the shortest possible time and/or effectively maintain it. Accordingly, to achieve this, the technology stack used, i.e. tools, must be mature enough, and widely used in the market.

Blog-Post

Type-safe HTTP routing in Java and Rust

The Type-Safe Web Stack, Part 1

Blog-Post

Was ist eigentlich htmx?

Nicht nur, aber vor allem im JVM-Umfeld stößt man in letzter Zeit immer wieder auf die Bibliothek htmx. Das Versprechen von htmx ist dabei nichts Geringeres, als das fehlende Puzzlestück von HTML zu sein. Deswegen wollen wir uns hier diese Bibliothek im Detail anschauen. Schließlich sollten wir in der Lage sein zu beurteilen, ob es uns in unseren Projekten hilft oder ob wir doch nach etwas anderem suchen sollten.

Blog-Post

API gut, alles gut

Unternehmen streben häufig eine Modularisierung (wie durch Microservices) an, die Teams unabhängiger voneinander arbeiten lässt. Dabei ist aber ein reines Aufteilen der Applikation in verschiedene Module/Container/Bausteine nicht ausreichend. Die Abhängigkeit oder Unabhängigkeit entscheidet sich vielmehr mit der Gestaltung der Schnittstelle, genauer: Mit der Frage, ob die gewählte Schnittstelle fachliche Implementierungsdetails preisgibt oder diese versteckt.

Blog-Post

Bestehende Rich Clients erneuern

Führen alle Wege ins Web?

Blog-Post

Communicating organizational changes with “Team Topologies”

Whenever the need arises to set up a new team, split a team into two or move responsibilities between teams it is necessary to have a good idea of where you are and where you want to be after the change. Additionally to the current and final states you will very likely have phases with intermediate states. To help everyone involved to have a shared understanding of which phases you will transition through - and when responsibilities and communication channels have to be created or changed - a visual representation of these states can be used to paint a (literal) common picture.

Blog-Post

Wie gemacht für Legacy-Code

In diesem Artikel geht es um Menschen, die leidenschaftlich gerne Legacy-Systeme verbessern. Sie sind motiviert, technische Schulden stetig abzubauen, damit Softwaresysteme dauerhaft erweiterbar bleiben. Vorurteile und Stereotypen unserer Branche verhindern es, das Potenzial dieser Menschen bestmöglich zu nutzen.

Blog-Post

Identifikation von Team-Grenzen

Wie man Grenzen für autonome, cross-funktionale Teams identifizieren kann

Blog-Post

Compliance in hybriden Betriebsumgebungen

Compliance ist ein wesentlicher Bestandteil der Unternehmensführung und trägt dazu bei, die Rechtskonformität und Qualität entwickelter Software sicherzustellen. Es ist auch ein unvermeidbares Kriterium bei der Modernisierung einer Systemlandschaft, die häufig mit der Migration in die Cloud einhergeht.