Blog & Artikel

Artikel

Warum Domain-driven Design?

Domain-driven Design (DDD) ist eine alte Technik, aber gerade voll im Hype. Worum geht es bei DDD und ist der Hype berechtigt?

Blog-Post

Rails und DRY-Zugriffsrechte

CanCan(Can) ist ein mächtiges Authorisierungs-Framework im Rails-Umfeld, womit sehr feingranular Zugriffsrechte definiert werden können. mit feinerer Granularität dieser «can»-Regeln steigt jewoch die Gefahr, dass Status-Logik des Modells dupliziert wird, wenn die Anwendungs-Performanz eine Rolle spielen soll. In diesem Artikel möchte ich dazu einige Gedanken zu Lösungsmustern aufführen, die ich mir im Rahmen der Entwicklung unseres (künftigen) internen Rechnungstools gemacht habe.

Blog-Post

Warum Quarkus.io _nicht_ geiler ist als Spring

Artikel

Brauchen asynchrone Microservices und SCS ein Service Mesh?

Service Meshes heben viele Randfunktionen von Microservices wie Monitoring, Routing und Sicherheit in die Infrastruktur und sind entsprechend beliebt in Microservice-Architekturen - doch schaffen sie diesen beachtlichen Mehrwert auch bei asynchroner Kommunikation oder in Self-contained Systems?

Artikel

Architektur­entscheidung im agilen Team

Eine schlechte Architekturentscheidung kann Projekte zum Scheitern bringen. Das passiert oft, wenn ein Architekt alle wichtigen Entscheidungen alleine trifft und nie oder sehr spät Feedback bekommt, ob sie gut oder schlecht waren. Oder aber auch, wenn ein “agiles” Team mit dem Architekten die Architekturarbeit aus dem Fenster geworfen hat. Schade, denn wenn man wichtige Entscheidungen nicht einfach dem Lauf der Dinge oder einem Elfenbeinturmbewohner überlässt, findet man viel besser Lösungen.

Blog-Post

So you want to compose some functions

Artikel

Software-Architektur: Worauf es ankommt

Die Architektur definiert die Struktur eines Software-Systems und ist zentral für den Erfolg eines Projekts. Deswegen ist Software-Architektur so wichtig. Aber in Wirklichkeit ist Software-Architektur noch viel mehr und eine erfolgreiche Software-Architektur erfordert viele, teilweise überraschende Maßnahmen.

Blog-Post

An Introduction to TypeScript

An ongoing architecture trend towards smaller services and faster, agile feature development gives developers some freedom to try out new languages and frameworks. TypeScript and Node seem to have a bad reputation amongst some backend developers although the language can be a perfect fit for many challenges in modern software development.

Blog-Post

Traefik v2 and Mastodon, a wonderful couple!

A practical guide to setting up Mastodon behind Traefik v2 using docker-compose

Blog-Post

Cloud Computing and Carbon Footprint

Businesses around the world start to grow more conscious of environmental issues. Yet, although a decision made for an IT infrastructure is often one made for the long term, its carbon footprint is rarely taken into account.

Blog-Post

What Could Possibly Go Wrong

What could possibly go wrong if you put Clojure 1.10 and Scala 2.13 on the same classpath? We’re about to find out.

Blog-Post

code-your-model

modularized modeling based on a project-specific DSL

Artikel

Alle 11 Minuten verliebt sich ein Microservice in Linkerd

Beim Thema Service Mesh hieß es lange immer nur «Istio». Doch die Komplexität des Projekts und die steile Lernkurve ebnen leichtgewichtigen Alternativen den Weg. Wir haben uns mit Linkerd 2 beschäftigt und wurden nicht enttäuscht.

Blog-Post

Hallo 👋, hier ist INNOQ Nürnberg!

In und um Nürnberg arbeiten einige Kollegen und Kolleginnen bei INNOQ. Was ihnen wichtig ist, wie sie den Standort organisieren und was es jetzt Neues gibt, darum geht es im aktuellen Post.

Artikel

User Experience Design

Software als allumfassender Teil unseres Lebens

Blog-Post

Automating GitHub Pages Deployments with GitHub Actions

This describes setting up a GitHub Actions workflow from scratch for automating the deployment of static pages.

Artikel

Cloud-native, Microservices, Domain-driven Design, Kubernetes

Software-Entwicklung unterliegt schon immer Hypes. Im Moment reden alle über Microservices und Cloud-native. Aber helfen diese Ansätze wirklich weiter?

Artikel

JUnit5 für das Testen von Spring Boot-Anwendungen

Das perfekte Doppel

Blog-Post

Animating SVG Icon Transitions

This describes options for morphing one SVG icon into another using both SMIL or CSS transforms.

Artikel

Microservices-Migration

Wenn ein Deployment-Monolith mit den Ansprüchen nicht mehr Schritt halten kann, sind Microservices oft die Lösung. Dann muss das vorhandene System in ein Microservices-System migriert werden. Diese Herausforderung kann sehr unterschiedlich angegangen werden.

Blog-Post

Choose Your Docker Base Image Wisely

Artikel

Cloud native Java-Anwendungen mit Quarkus

Anfang März wurde meine Timeline auf Twitter mit Tweets über das neue Java-Framework Quarkus überrollt. Bei soviel erzeugter Aufmerksamkeit sollten wir uns doch einmal genauer ansehen, was daran so besonders ist und warum wir Quarkus einsetzen sollten.

Artikel

Parametrizität in Java

So gut wie alle modernen Programmiersprachen erlauben es, Routinen über Werte und über Typen zu parametrisieren. In Java wird letzteres «Generics» genannt, in C++ hingegen «Templates». Obwohl die Konzepte die gleichen sind, unterscheidet sich die Implementation doch stark. In diesem Artikel möchte ich diese Art der Parametrisierung in Java unter die Lupe nehmen und erklären, warum «Type Erasure» doch eine ganz gute Idee ist.

Artikel

Ein Einstieg in die Programmiersprache Go

Teil 2

Artikel

Ein Einstieg in die Programmiersprache Go

Die ursprünglich von Google entwickelte Programmiersprache Go wird zunehmend beliebter. Tatsächlich bietet sie einige Vorteile.