Blog

Blog-Post

Logging konsolidieren und Performance gewinnen

Apache Log4j 2.0 ist eine Neuimplementierung von Log4j zeichnet sich vor allem durch einen höheren Durchsatz – dank asynchronem I/O – aus. Die Neuerungen des Frameworks machen Lust darauf, Log4j2 einzusetzen. Da drängt sich die Frage auf, wie die Vorzüge von Log4j2 in einem System genutzt werden können, wenn Teile noch Log4J 1, commons-logging oder Ähnliches verwenden.

Blog-Post

Von Markdown zu Published

Im Jahr 2012 begann innoQ, mit der Published-Reihe ein jährlich zu Weihnachten erscheinendes Buch herauszugeben, welches die Artikel von Mitarbeitern des vergangenen Jahres beinhaltet. Wurden die ersten beiden Ausgaben noch von einer Agentur per Hand erstellt, haben wir uns für 2014 das Ziel gesetzt, eine eigene Pipeline zu bauen, mit der das Buch erstellt werden kann. Dieser Artikel beschreibt nun den Aufbau und die Arbeit an der Pipeline und hinter der dritten Ausgabe von Published.

Blog-Post

Die Renaissance von Erlang

99,9999999% Verfügbarkeit über 20 Jahre

Blog-Post

Grenzenlose Freiheit?

„Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt“, stellte schon Ludwig Wittgenstein fest. Auch wenn zwei Programmiersprachen Turing-vollständig sind und somit die gleichen Probleme lösen können, beeinflussen ihre Eigenschaften dennoch die Art und Qualität der Problemlösung. Mit der JVM steht uns heute eine Plattform zur Verfügung, bei der wir für jedes Problem die am besten geeignete Sprache wählen können. Auch wenn sich prinzipiell jede JVM-Sprache mit jeder anderen kombinieren lässt, gibt es einige Stolpersteine. In diesem Artikel wollen wir analysieren, wie gut sich Clojure mit Java verträgt.

Blog-Post

Kanonische Architektur-Evolution

Mit dem Entwurf der Softwarearchitektur wollen wir noch vor der Umsetzung die Tragfähigkeit der Software sicherstellen. Wie gut wir die Trägfähigkeit einschätzen können, hängt neben Erfahrungswerten und Kenntnis der eingesetzten Technologien auch davon ab, wie konsistent wir unsere Konzepte tatsächlich implementieren. Wir brauchen also mehr als bloße Wunschvorstellungen über das System; wir benötigen Mechanismen für die konsequente Umsetzung der funktionalen und qualitativen Eigenschaften des Systems.

Blog-Post

Wissen, was läuft

Mit Laufzeitmetriken den Überblick behalten

Blog-Post

Welten verbinden

Auch wenn inzwischen viele Voraussetzungen dafür geschaffen sind, dass sich der Smart Home Markt zum Massenmarkt entwickeln kann, sind noch längst nicht alle Probleme gelöst. Im Gegenteil, aufgrund der großen Fragmentierung haben die Nutzer häufig mehr Fragen als Antworten. Dieser Artikel soll dazu dienen, einige dieser Fragen zu klären und dabei eine Lösung an einem durchgängigen Beispiel vorzustellen.

Blog-Post

Durchbruch

Der Markt für Heimautomatisierung erlebt derzeit große Veränderungen, denn die Zahl der Geräte der neuen Gattung «IoT-Gadgets» wächst von Tag zu Tag. Im Jahr 2022 wird jeder Durchschnittshaushalt mit ungefähr 50 solcher Gadgets ausgestattet sein, die sinnvolle kleine Teilaufgaben erledigen. Fraglich ist, wie nützlich deren Einsatz ist, wenn keine übergreifenden Anwendungsszenarien möglich sind. Die gute Nachricht ist: Es gibt Lösungen, um diese neuen Geräte nahtlos in ein umfassendes Smart Home zu integrieren.

Blog-Post

Knigge für Softwarearchitekten

Die Gegner

Blog-Post

Service-oriented Architecture (technisch)

Mit dem Advanced Level standardisiert der iSAQB Module aus unterschiedlichen Bereichen, die Teilnehmer nach ihren Bedürfnissen kombinieren können. Dieser Artikel erläutert das Modul „SOA-T“, das für Softwarearchitekten mit einem Fokus auf den technischen Aspekten serviceorientierter Architekturen entwickelt wurde.

Blog-Post

Wie Sie effektive Webarchitekturen bauen

Mit dem Advanced Level standardisiert der iSAQB Module aus unterschiedlichen Bereichen, die Teilnehmer nach ihren Bedürfnissen kombinieren können. Dieser Artikel erläutert das Modul „WEB“, das für Softwarearchitekten mit einem Fokus auf Webanwendungen entwickelt wurde.

Blog-Post

Endlich viel erben?

Default-Methoden in Java-Interfaces

Blog-Post

Firmenkultur bei innoQ

Bereits kurze Zeit nach meinem Wechsel zu innoQ war mir klar, dass ich über diesen Kulturschock unbedingt etwas schreiben wollte. Die 1-jährige Zugehörigkeit schien nun ein guter Zeitpunkt, um noch einmal Revue passieren zu lassen, warum ich zu innoQ kam und was ich in den ersten 12 Monaten erlebt habe.

Blog-Post

Micro-Services in Java realisieren – Teil 2: Web-Apps in Docker-Umgebungen

In dem ersten Teil dieser zweiteiligen Reihe haben wir uns mit der Realisierung von Web-Apps mit dem leichtgewichtigen Framework DropWizard beschäftigt. In diesem Teil beschäftigen wir uns mit der offenen Plattform Docker. Damit lassen sich Umgebungen definieren und voneinander isolieren. Wie sich Docker von virtuellen Maschinen unterscheidet und was das für unsere Anwendungen bringt, stellt dieser Artikel vor.

Blog-Post

Attribut-basiertes Testen mit Scala

Wo hilft funktionale Programmierung bei der Automatisierung von Testaufgaben

Blog-Post

Programmieren macht Spaß!

Mittlerweile gibt es zahlreiche Initiativen, deren Ziel es ist, neue Technologien und insbesondere Softwareprogrammierung genau den Menschen nahe zu bringen, die sonst nicht damit in Berührung kommen würden. Einige davon, die von innoQ personell und finanziell unterstützt werden, stellt dieser Artikel vor.

Blog-Post

Warum Soft Skills für Softwarearchitekten wichtig sind

Der Projekterfolg hängt viel stärker von den am Projekt beteiligten Menschen und den Rahmenbedingungen ab als von den eingesetzten Technologien. Erfolgreiche Projektleiter und Softwarearchitekten haben ein Gespür für die Menschen, mit denen sie Projekte machen, und erreichen mit ihnen gesteckte Ziele. Was erfolgreiche Anführer gemein haben, worauf es in der Zusammenarbeit ankommt und wie man selbst so etwas erlernen kann, stellt dieser Artikel vor.

Blog-Post

Ceylon auf der JVM und node.js

Schwarzer Tee mit syntaktischem Zucker

Blog-Post

Hystrix – damit Ihnen rechtzeitig die Sicherung durchbrennt

Sicherungen wurden ursprünglich eingeführt, um die Eskalation einer Situation zu verhindern. Wenn Ihnen ab und zu die Sicherung durchbrennt, ist das deshalb durchaus zu begrüßen, jedenfalls wenn es sich dabei um einen Circuit-Breaker im Sinne von Hystrix handelt. In diesem Artikel möchten wir Ihnen Hystrix vorstellen, eine Bibliothek, die ihnen dabei hilft, die Stabilität ihrer verteilten Anwendung zu verbessern und kaskadierende Fehlerszenarien zu verhindern.

Blog-Post

Zertifizierung für Fortgeschrittene

Wer sich als Softwareentwickler oder Softwarearchitekt stets auf dem Laufenden hält, bleibt auch langfristig attraktiv für den Arbeitsmarkt. Das erfordert genauso fundierte Kenntnisse gängiger Technologien und Frameworks wie methodische Fähigkeiten. In diesem Beitrag stellen wir das modulare Curriculum für fortgeschrittene Softwarearchitekten des iSAQB e.V. vor, das verschiedene notwendige Kompetenzbereiche für Softwarearchitekten abdeckt.

Blog-Post

Micro-Services in Java realisieren – Teil 1: Leichtgewichtige Web-Apps mit DropWizard

Micro-Services wider Monolithen

Blog-Post

Hystrix – Wider den Totalausfall

Michael T. Nygard hat in seinem Buch „Release It!” sehr anschaulich die Folgen von sich fortpflanzenden Fehlern beschrieben. Seine klare Empfehlung lautete, Isolationsmuster wie zum Beispiel Leistungsschutzschalter – engl. Circuit Breaker – in die Software zu integrieren, um Totalausfälle zu vermeiden. Mit Hystrix hat Netflix ein Framework bereitgestellt, das den Einbau von solchen Schaltern vereinfacht. Dieser Beitrag stellt das Framework vor.

Blog-Post

Software systematisch verbessern

Die Informatik-Ausbildung fokussiert auf die Neuentwicklung von Software – den Alltag vieler Softwerker prägen jedoch meist Pflege, Änderung oder Erweiterung von Systemen. In diesem Artikel stelle ich Ihnen aim42 vor, ein systematisches Vorgehen zur Verbesserung von Software. aim42 ist frei verfügbar und kondensiert Praktiken und Patterns rund um Evolution, Änderung und Wartung von IT-Systemen.

Blog-Post

Skalierbare Softwaresysteme

Vom Entwickler-Notebook bis zur Serverfarm

Blog-Post

Domain-Driven Design in Clojure

In diesem Artikel setzen wir die Prinzipien des Domain-driven Designs mit Clojure um. Wir stellen die Domäne Rating als Beispiel vor und demonstrieren strategisches sowie taktisches DDD. Wir zeigen, wie sich das Domänenmodell in Clojure implementieren lässt.