Kai Spichale

Kai Spichale
Kai Spichale (@kspichale) beschäftigt sich leidenschaftlich seit mehr als 10 Jahren mit Softwarearchitekturen und sauberen Code. Für innoQ Deutschland GmbH arbeitet er als IT-Berater mit modernen Architekturansätzen, API-Design und NoSQL. Er ist regelmäßiger Autor in verschiedenen Fachmagazinen und Sprecher auf Konferenzen.
Beiträge dieses Autors

Apache Spark: Mehr als ein Hadoop-Ersatz

Hadoop wird in verschiedenen Branchen erfolgreich zur Analyse großer Datenmengen eingesetzt. Sein Erfolg ist begründet durch sein einfaches Programmiermodell MapReduce, das fehlertolerant, skalierbar und kosteneffektiv für unterschiedlich große Datenmengen genutzt werden kann. Ein Nachteil von MapReduce ist allerdings dessen hohe Latenz, sodass man für die Durchführung von Abfragen vergleichsweise lange warten muss. Unter diesem Gesichtspunkt wurde Spark von der Apache Software Foundation zur Beschleunigung von Datenverarbeitungsprozessen entwickelt.

Entwicklung und Dokumentation von REST-APIs

Für die Beschreibung von REST-APIs gibt es (glücklicherweise) keinen Standard, der Innovationen bremst, sondern unterschiedliche Formate und Best Practices, die im Laufe der Zeit entstanden und von den Erfahrungen ihrer jeweiligen Vorgänger profitierten. Der jüngste Spross in dieser Reihe ist RAML, eine „RESTful API Modeling Language“, die in diesem Artikel als wichtiges Werkzeug für API First Development vorgestellt wird.

Kontinuierliche Architekturvalidierung: Auf die inneren Werte kommt es an

Wenn Systeme wachsen oder über einen längeren Zeitraum weiterentwickelt werden, aber deren Codebasis nicht regelmäßig mit der geplanten Architektur verglichen wird, droht die Architektur des Systems zu erodieren, bis sie kaum noch im Code wiederzufinden ist. Durch kontinuierliche Architekturvalidierung kann dies verhindert werden. Dabei wird die in der Codebasis vorliegende Struktur bestehend aus Modulen und deren Abhängigkeiten mit der geplanten Struktur verglichen, um Architekturverstöße festzustellen.

Kontinuierliche Architekturvalidierung

Wenn Systeme wachsen oder über einen längeren Zeitraum weiterentwickelt werden, aber deren Codebasis nicht regelmäßig mit der geplanten Architektur verglichen wird, droht die Architektur des Systems zu erodieren, bis sie kaum noch im Code wiederzufinden ist. Durch kontinuierliche Architekturvalidierung kann dies verhindert werden. Dabei wird die in der Codebasis vorliegende Struktur bestehend aus Modulen und deren Abhängigkeiten mit der geplanten Struktur verglichen, um Architekturverstöße festzustellen.

Big Data für IT-Entscheider

Mit diesem Buch richtet sich Pavlo Baron an alle, die in der IT Entscheidungen treffen, und gibt seine vielseitigen Erfahrungen, Erkenntnisse und Meinungen im Bereich „Big Data“ auf etwas mehr als zweihundert Seiten in komprimierter Form weiter. „Big Data“ setzt […]

Softwarearchitekt und Softwarecraftsman – ein Widerspruch?

Der Begriff des Softwarearchitekten wird gerne und häufig in der IT-Welt verwendet. Wegen der vielen unterschiedlichen Herangehensweisen in der Softwareentwicklung fehlt leider ein einheitliches Rollenverständnis. In der traditionellen Sicht stehen Aufgaben wie die Definition und Durchsetzung der Architektur im Mittelpunkt. Die Implementierung, also die Arbeit am Quellcode, gehört weniger dazu. In der modernen Softwareentwicklung kann die Arbeit eines Softwarearchitekten jedoch auch ganz anders aussehen. Vielleicht ist die Metapher des Craftmanships sogar besser geeignet, das Rollenverständnis in Projekten zu beschreiben?

Mit Maven Eclipse und Tycho RCP-Anwendungen bauen

Zum Bau von Eclipse-Plug-ins und OSGi-Bundles mit Maven Eclipse bietet Tycho [1] hilfreiche Maven-Plug-ins und Erweiterungen. Falls Maven mit Build-Server und zentralem Repository bereits für sonstige Projekte verwendet wird, könnten diese Infrastruktur und das dazugehörige Know-how auch für die Eclipse-RCP-Entwicklung genutzt werden. Dieser Artikel stellt als Beispiel die Eclipse-RCP-Anwendung „insurance“ vor, durch das der Build-Prozess mit Maven 3 und Tycho erläutert wird. Um die grafische Benutzerschnittstelle automatisiert zu testen, sind SWTBot-Tests [2] Teil des vorgestellten Maven-Build-Prozesses.