Category: Architecture

Architecture

10 Grundsätze für sichere Softwareentwicklung

Die Entwicklung moderner Software ist heutzutage so komplex, dass Fehler trotz intensiver Prüfung nicht oder nur schwer erkennbar sind. Dies hat eindrucksvoll die Heartbleed-Schwachstelle der älteren Version der Open-Source-Bibliothek OpenSSL gezeigt. Ein Großteil der Online-Dienste und Websites zeigte sich dadurch für Angriffe anfällig. Dieser Artikel nennt zehn Grundsätze für eine sichere Softwareentwicklung.   Grundsatz 1:

Architekturentscheidungen in agilen Projekten

Was mache ich als Architekt in einem agilen Team, wenn wir im Sprint 1 vor der Entscheidung stehen, welches Architekturmuster oder welche Technologien wir einsetzen und wir innerhalb des Sprints entscheiden wollen? Einfach machen und dann refactoren? Und wenn es verschiedene Ansichten gibt, wie wir es machen können?   Das fiktive Projekt Als Fallstudie wird

Task-Parallelität mit CompletableFutures

Obwohl viele Java-Entwickler die CompletableFuture-Klasse kennen, wird sie in Projekten immer noch selten eingesetzt. Das mag daran liegen, dass die Klasse auf den ersten Blick komplex wirkt oder dass die Einsatzmöglichkeiten nicht immer offensichtlich sind. Dabei lässt sich mit Hilfe von CompletableFutures recht einfach Task-Parallelität realisieren. Im Folgenden werden einige Best-Practices vorgestellt und gezeigt, wie

API-Design – Do’s and Don’ts

Im Zeitalter der Modularisierung von Software kommt kein Java-Entwickler daran vorbei, früher oder später ein Application-Programming-Interface (API) zu definieren oder zu erweitern. Der Entwurf eines guten API erfordert keine Kenntnisse in schwarzer Magie. Werden einige wenige Konventionen befolgt, erhöht das die Qualität der Schnittstelle deutlich. Was sind die Qualitätsmerkmale eines API? Eine Schnittstelle muss zuallererst