Blog & Artikel

Artikel

Pragmatische Evolution von Platform Engineering für die Cloud

Viele Unternehmen haben Services von Public-Cloud-Providern adaptiert, um von der Skalierbarkeit, Zuverlässigkeit und Innovationskraft der Cloud zu profitieren. Das primäre Ziel dabei: die Beschleunigung der eigenen Entwicklungsprozesse. Doch häufig tritt genau das Gegenteil ein.

Artikel

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.

Artikel

Spring Boot und explodierte JARs

Spring Boot Deployments effizienter machen

Artikel

Entwickler skalieren anders als Applikationen

Interne Plattformen können die unternehmenseigene Softwareentwicklung beschleunigen, indem sie die mentale Belastung der Entwicklungsteams reduzieren. Als Abstraktionsschichten konzentrieren sie sich auf die wesentliche Fach- und Laufzeitdomäne. Wenn sie sorgfältig gebaut sind, durchbrechen sie alte Konflikte und erlauben zum Beispiel den Entwicklungsteams viel Innovationsfreiheit trotz (oder dank) hoher Standardisierung. Allerdings erfordert dies ein Umdenken über den Wert von Wiederverwendung und auch eine Kehrtwende von Projekten hin zu internen Produkten. Organisationen, die der Versuchung erliegen, bestehende Betriebsschichten oder Frameworks in „Plattformen” umzubenennen, dürfen daher keine Wunder erwarten.

Artikel

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

Einfache Konfigurationsanpassungen für mehr Komfort

Blog-Post

Springboot mit Keycloak in 2024

Zur Verknüpfung einer Springboot-Anwendung mit Keycloak gibt es wahrlich genug Tutorials im Netz. Allerdings gibt es in den neuesten Versionen beider Anwendungen einige Dinge zu beachten, die sich geändert haben.

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.

Artikel

Social Engineering ist durchgespielt

Soziotechnische Welten - Teil 14

Blog-Post

Boring Innovation?

Does innovation always come with the latest technology or can innovation even seem boring? A quick look at a story from my work as an IT consultant.

Artikel

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.

Artikel

Modernisierung einer Legacy Software-Architektur

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.

Artikel

Nicht mehr Open-Source

Was kann man tun, um sich vorab dagegen zu wappnen, plötzlich für eine wichtige Technologie einem Anbieter ausgeliefert zu sein? Kann es auch eine valide Entscheidung sein, das Risiko bewusst in Kauf zu nehmen? Und sind die Risiken, die sich bei Verwendung von Open-Source-Technologien ergeben, per se geringer als bei kommerziellen Alternativen? Wie geht man damit um, wenn eine Technologie, die man verwendet, plötzlich nicht mehr Open-Source ist? Ist es sinnvoll, zu einem Fork zu wechseln, und welche Risiken bestehen dabei?

Artikel

Die Ökonomie von Gut & Crypto III

Soziotechnische Welten - Teil 13

Blog-Post

Type-safe HTML templates in Java and Rust

The current fashion in our industry is to use static and strong typing wherever possible. How fashion-conscious is the Java community when it comes to HTML templating, though? Let’s have a look at what approaches at type-safe or build-time verified HTML templating are available in the Java ecosystem, how they compare to what’s available in Rust, and whether the benefits outweigh the costs.

Artikel

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

What, Why and How

Blog-Post

Type-safe HTTP routing in Java and Rust

In recent years, the trend in our pop-culture industry has been to favour static and strong typing as well as build-time checks over dynamic typing and techniques like late binding. Where possible, you are expected to use the compiler for correctness checks instead of unit tests. Even though the Java language is statically typed, its type system is often considered to be not very helpful. Web applications written in Java are traditionally bristling with weakly typed APIs, heavy use of reflection, and lots of annotations that are interpreted at runtime. Let’s see how far the trend towards build-time checks has been adopted in the Java ecosystem when it comes to writing web applications, how it compares to what’s done in the Rust community, and what benefits and weak points these techniques have.

Artikel

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.

Artikel

API gut, alles gut

Schnittstellen für unabhängige Systeme

Blog-Post

Bestehende Rich Clients erneuern

Oft gibt es Rich-Clients die als Backoffice-Applikation wichtige Funktionen erfüllen und nun Probleme machen: egal ob es um Support für mobile Geräte oder um einfaches Arbeiten von zu Hause geht oder auch nur um das Sicherstellen der Weiterentwicklung – Rich-Clients kommen mit Ihren eigenen Problemen. Ob die richtige Antwort für die Modernisierung solcher Applikationen immer die Migration zu einer Webapplikation ist, wollen wir in diesem Artikel beleuchten.

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.

Artikel

Wie gemacht für Legacy-Code

Artikel

Identifikation von Team-Grenzen

Im Umfeld zahlreicher Initiativen und Ideen wie zum Beispiel Microservices, Agile, Domain-driven Design oder Team Topologies geht es um die Etablierung von autonomen, cross-funktional aufgestellten Teams, die einen schnellen Arbeitsfluss aufweisen und agil auf Veränderungen reagieren können. Die Herausforderung besteht allerdings darin, passende Grenzen für die Zuständigkeitsbereiche dieser Teams zu finden. Darum dreht sich dieser Artikel.