Blogbeiträge

komplexe Refactorings - Mikado Methode - Clean Code Developer Akademie - Seminare, Schulungen und Trainings 26
Komplexe Refactorings
Björn Geisemeyer

Refactoring in Phasen

Refactorings sind ein fester Bestandteil unseres Entwicklerlebens. Es wäre schön, immer auf der grünen Wiese beginnen zu können, neue Features zu implementieren und neue Ideen umzusetzen. Doch viel häufiger sind wir damit konfrontiert, vorhandenen Quelltext nachzujustieren. In diesem Kontext spielen Refactorings eine entscheidende Rolle, besonders wenn wir an Legacy Code

Weiterlesen »
Horizontal Schneiden
Methodik
Björn Geisemeyer

Agil Entwickeln Teil 2: Anforderungen vertikal zerlegen

Ausgangspunkt der “Agil entwickeln” Beiträge ist ein Projekt namens SVG Editor. Diesem soll eine neue Interaktion, zum Export einer Grafik als PDF mit Wasserzeichen, hinzugefügt werden. Abbildung 1 Abbildung 2 Im ersten Artikel habe ich gezeigt, wie User Stories vertikal zu technischen Anforderungen zerlegt werden.Das Ergebnis war eine Interaktion mit den drei

Weiterlesen »
IOSP Analyzer Example 1
Clean Code
Stefan Lieser

IOSP Analyzer 0.2.0

Update 0.2.0 – 05.04.2024 Der IOSP Analyzer akzeptiert nun Aufrufe von ConfigureAwait innerhalb einer Integration. Wird eine asynchrone Operation aufgerufen ist dies natürlich kein Verstoß gegen das IOSP. Will man diesen Aufruf jedoch mit ConfigureAwait konfigurieren, wurde dies bislang als Framework/Runtime Call gewertet und damit als Verstoß gegen das IOSP.

Weiterlesen »
Agil entwickeln
Methodik
Björn Geisemeyer

Agil entwickeln Teil 1: User Stories vertikal betrachten

Über 20 Jahre ist es her, dass das Agile Manifest veröffentlicht wurde. Seitdem hat sich in der Softwareentwicklung einiges geändert. Die früher üblichen Wasserfallmodelle wurden durch Entwicklungsstrategien ersetzt, die für Software weitaus angepasster sind. Management-Tools wie Kanban oder Scrum sind mittlerweile in vielen Firmen vertreten. Sie stellen den Rahmen für die agile

Weiterlesen »
Dependency Injection und Lifecycle
Methodik
Stefan Lieser

Dependency Injection und Lifecycle

Planung und Umsetzung von Abhängigkeiten sind das Thema diverser Prinzipien. Wer bei der Softwareentwicklung nicht auf die Struktur der Abhängigkeiten achtet, landet schnell im Chaos. Für viele Entwickler bedeutet das allerdings, dass sie „überall“ Interfaces einziehen. Als CCD Akademie betrachten wir das Thema etwas differenzierter und empfehlen den Einsatz des

Weiterlesen »
Methodik
Stefan Lieser

Konfiguration einer .NET Core App ohne appsettings.json in Docker

Seitdem Microsoft sich mit .NET Core dazu entschlossen hat, dass .NET auch Linux unterstützen soll, eignet sich .NET Core ganz hervorragend als Basis für Anwendungen, die in Docker ausgeführt werden. Damit wird das Deployment von .NET Core Anwendungen drastisch vereinfacht. In Kombination mit docker-compose besteht ein Deployment darin, den folgenden Befehl auszuführen:

Weiterlesen »
Methodik
Stefan Lieser

Clean Architecture vs. Onion Architecture vs. Hexagonale Architektur

Es gibt drei Architekturmodelle, die immer wieder genannt und angewandt werden: Hexagonale Architektur (Ports and Adapters) Onion Architecture Clean Architecture In unseren Trainings wird immer wieder diskutiert, wo die Unterschiede liegen: Clean Architecture vs. Onion Architecture – welche ist besser? Im Folgenden wird beleuchtet, worin sich die drei Ansätze unterscheiden

Weiterlesen »
Methodik
Björn Geisemeyer

Exceptions: Strategien und Best Practices

Wie der Titel schon vermuten lässt, werde ich in diesem Beitrag verschiedene Strategien für den Umgang mit Exceptions beleuchten. Eine Exception zu fangen oder zu werfen ist einfach. Aber wie gehe ich sinnvoll vor? Wichtig ist die Berücksichtigung der Fehlerkategorien. Jede Ausnahme kann einer Fehlerkategorie zugeordnet und entsprechend behandelt werden.

Weiterlesen »
Exceptions sind keine Fehler
Methodik
Björn Geisemeyer

Warum Exceptions keine Fehler sind

Das Thema Fehlerbehandlung wird in vielen Unternehmen nicht oder ungenügend vermittelt. Ich habe an meinen Arbeitsplätzen nie eine klare Definition bekommen, was “Fehler” sind und wie ich damit umgehen sollte. So geht es offensichtlich vielen, denn diese Wissenslücke führt unter anderem zu der verbreiteten, schlechten Angewohnheit, die sich defensive Programmierung

Weiterlesen »
Aus die Maus, mehr gibt's nicht.
de_DEGerman