Blog posts

Horizontal Schneiden
Methodology
Björn Geisemeyer

Agile development part 2: Breaking down requirements vertically

The starting point for the "Agile development" contributions is a project called SVG Editor. A new interaction for exporting a graphic as a PDF with a watermark is to be added to this. Figure 1 Figure 2 In the first article, I showed how user stories are broken down vertically into technical requirements, resulting in an interaction with the three

Read more "
IOSP Analyzer Example 1
Clean Code
Stefan Lieser

IOSP Analyzer 0.2.0

Update 0.2.0 - 05.04.2024 The IOSP Analyzer now accepts calls to ConfigureAwait within an integration. If an asynchronous operation is called, this is of course not a violation of the IOSP. However, if you want to configure this call with ConfigureAwait, this was previously considered a framework/runtime call and thus a violation of the IOSP.

Read more "
Agil entwickeln
Methodology
Björn Geisemeyer

Agile development part 1: Looking at user stories vertically

It has been over 20 years since the Agile Manifesto was published. A lot has changed in software development since then. The previously common waterfall models have been replaced by development strategies that are far more suitable for software. Management tools such as Kanban or Scrum are now used in many companies. They provide the framework for agile

Read more "
Dependency Injection und Lifecycle
Methodology
Stefan Lieser

Dependency injection and lifecycle

The planning and implementation of dependencies is the subject of various principles. If you don't pay attention to the structure of dependencies during software development, you will quickly end up in chaos. For many developers, however, this means that they are "all over the place" with interfaces. As the CCD Academy, we take a more differentiated view of the topic and recommend the use of the

Read more "
Methodology
Stefan Lieser

Configuration of a .NET Core App without appsettings.json in Docker

Since Microsoft decided with .NET Core that .NET should also support Linux, .NET Core has been an excellent basis for applications that run in Docker. This drastically simplifies the deployment of .NET Core applications. In combination with docker-compose, deployment consists of executing the following command:

Read more "
Methodology
Stefan Lieser

Clean Architecture vs. Onion Architecture vs. Hexagonal Architecture

There are three architecture models that are repeatedly mentioned and used: Hexagonal architecture (Ports and Adapters) Onion architecture Clean architecture In our training courses, we often discuss the differences between clean architecture and onion architecture - which is better? The following section highlights the differences between the three approaches

Read more "
Methodology
Björn Geisemeyer

Exceptions: strategies and best practices

As the title suggests, in this article I will look at different strategies for dealing with exceptions. Catching or throwing an exception is easy. But how do I proceed sensibly? It is important to consider the error categories. Each exception can be assigned to an error category and handled accordingly.

Read more "
Exceptions sind keine Fehler
Methodology
Björn Geisemeyer

Why exceptions are not errors

In many companies, the topic of error handling is either not taught at all or not sufficiently. I have never been given a clear definition of what "errors" are and how I should deal with them at my workplace. This is obviously the case for many people, because this lack of knowledge leads, among other things, to the widespread bad habit of defensive programming.

Read more "
Automated testing
Björn Geisemeyer

Testing legacy code with approval tests

Exploring the code vastness of the legacy space - Where no test has gone before In the galaxies of software development, ensuring quality is of paramount importance and yet so often neglected. Working in untested and unknown code is as common as it is universally disliked. Who looks forward to

Read more "
That's all there is to it.
en_USEnglish