Initializing HashMaps in Java

How can I initialize a HashMap with some pre-defined entries? In this article I’ll show you how you create a HashMap with values. Java doesn’t provide a method like Array.asList(). For initializing a map you have to implement something like that: So this is the double brace initialization idom. I don’t like this way. It’s not very readable, it’s creates a […]

Stability Patterns: Use Timeouts

„A resilient system keeps processing transactions, even when there are transient impulses, persistent stresses, or component failure disrupting normal processing.“ This is Michael Nygards definition of stability. In his book „Release it!“ he describes design and architectures patterns, which stop cracks from propagating and preserve at least partial functionality instead of total crashes. So, what are […]

Release It!

Design and Deploy Production-Ready Software Michael Nygard erzählt wirklich spannende Geschichten, die sich wie ein Krimi lesen lassen. Er gibt Tipps, was man alles beachten muss, wenn man Software in Produktion bringen möchte. Das Buch fängt mit dem Thema Stabilität an, dann kommt Kapazität, gefolgt von allgemeinen Design Richtlinien und Operation, also Dingen die beim Betrieb […]

Continuous Delivery

Warum sollte ich ein Buch über Continuous Delivery lesen, wenn Jez Humble schon ein bahnbrechendes Buch zu diesem Thema geschrieben hat? Der Untertitel von Eberhard Wolffs Buch aber hat mich neugierig gemacht: „Der pragmatische Einstieg“. Genau das ist der Fokus des Buches. Der Leser lernt praxisorientiert und pragmatisch den Aufbau einer Continuous Delivery Pipeline kennen. Es umfasst alles […]

Building Microservices

DESIGNING FINE-GRAINED SYSTEMS Jeder kennt die Vorteile von Microservices. So was wie neue Technologien leicht ausprobieren, einfache Modernisierung des Technologie-Stack, Resilience, d.h. Fehler in einem Service haben wenig Einfluss auf andere, skalierbare Services, einfachere Deployments, Kombinierbarkeit von Services, kurze Time-to-Market Dauer für neue Funktionalität. Das hört sich toll an. Aber beim Lesen des Buches wird einem […]

Top 3 Anti-Sprüche in der Softwareentwicklung

Dies ist meine persönliche Top 3 Liste an nervenden Sprüchen. 1. Das haben wir schon immer so gemacht. 2. Wir machen eine pragmatische Lösung. 3. Das brauchen wir nicht. „Das haben wir schon immer so gemacht.“ ist unangefochten auf Platz 1. Es läuft (gut/schlecht). Das Problem ist gelöst. Warum sollten wir denn was ändern? Nr. 2 ist dagegen […]

Spark, HBase and Gradle

While I read the book Learning Spark, I really missed a Gradle build file for my Spark job. As a huge Gradle fan, I put together a build file. Concurrently I’m playing around with Spark and HBase. So here is my build.gradle, which also contains dependencies to HBase. View the code on Gist. HTH!

Checkstyle, FindBugs and PMD Gradle Configuration

Configure Code Analysis Tools with Gradle I’m really happy that configuring Checkstyle, Findbugs and PMD with Gradle is so easy. So if you want to see how I configured the tools than have a quick look at this code snippet gist: After you have configured your Code Analysis Tool, you just have to type in: gradle […]

Do you understand what Continuous Integration is about?

While reading Sam Newman’s book about „Building Microservices“, I cam across Jez Humble’s three questions he asks people to test if they really understand what CI is about. 1. Do you check in to mainline once per day? If you don’t check your code together with everyone else’s changes frequently, future integration will be harder. Even […]