Category

Software Architecture

35
field notes
Filter by year
Articles

Software Architecture

35articles

Erst die Zustandsmaschine, dann der Spinner

Bei Terminalanwendungen beginnt die Arbeit oft an der falschen Stelle. Man hat eine Idee für ein Tool, baut die eigentliche Funktion und möchte dann schnell etwas Feedback im Terminal anzeigen. Also kommt…

Eine TUI ist mehr als farbiges Write-Host

Terminalanwendungen erleben seit einigen Jahren eine kleine Renaissance. Viele moderne Entwicklerwerkzeuge laufen wieder dort, wo Softwareentwicklung ohnehin häufig stattfindet: im Terminal. Paketmanager, Git-Werkzeuge, Cloud-CLIs und zunehmend auch KI-Assistenten zeigen, dass eine textbasierte…

Wann ein Skript aufhört, ein Skript zu sein

Ein Skript beginnt oft harmlos. Es soll eine klar umrissene Aufgabe erledigen. Eine API aufrufen. Dateien verschieben. Daten bereinigen. Benutzer anlegen. E-Mails verarbeiten. Einen wiederkehrenden manuellen Ablauf automatisieren. Die erste Version ist…

Ein Interface, das TableClient zurückgibt, ist Table

Das Interface existiert. Es ist injiziert. Der Reviewer sieht ein I und geht weiter. Das kompiliert. Es lässt sich mocken. In der Architekturfolie steht Persistence hinter Interface. Der Caller schreibt trotzdem: Er…

Der God Service ist kein Service

Die Function ist dünn. Der Reviewer nickt. Dann öffnet man die Klasse, an die sie delegiert. Das sieht nach Schicht aus. Der Einstieg kennt weder Tabelle noch Graph. Genau das habe ich…

Your Machine Will Outlive Your UI Framework

Was 24 Jahre WinForms über Technologieentscheidungen für langlebige Software lehren Vor einiger Zeit habe ich darüber geschrieben, warum ich C# WinForms noch lange nicht für tot halte. Damals ging es vor allem…

Die Signatur ist die Komplexität

Ob ein Join linear oder quadratisch wird, steht oft nicht in der Schleife. Es steht im Typ der Parameter. Man kann Entwickler bitten, keine lineare Suche in einer Abbildung zu schreiben. Das…

Der halbe Fix ist die teuerste Stelle

Ein Pfad ist schnell. Der andere sieht aus wie derselbe Code. Genau dort bleibt die alte Komplexität liegen. Es gibt eine bestimmte Art von Optimierung, die sich im Review besonders gut anfühlt.…

Decoupling in WPF Using MessageBox as Example

A Deep-Dive with Real Chrona Code Examples Many WPF applications begin with direct MessageBox.Show(...) calls. At first, this feels completely reasonable. A save confirmation here, an error dialog there, a warning before…

WPF + MVVM + Service Layer in a Real Business App

A Production-Grade Architecture Walkthrough from Chrona Most WPF + MVVM tutorials online demonstrate only the happy path. One ViewModel. One command. One view switch. That is useful for learning the basics, but…

SQLite Repository Design in Desktop Apps

Interfaces, Abstract Base Classes, Safe SQL, and Audit-Aware Persistence in Chrona Desktop applications often start with direct database access inside view models, commands, or small helper classes. At first, this looks efficient.…

When to Use Composition and Inheritance in Software Development

In object-oriented programming (OOP), two key approaches for code reuse and structuring are inheritance and composition. Understanding when to use each can significantly affect the scalability, maintainability, and flexibility of your applications.…

Software Design Principles: SOLID, DRY, WET, and More

When developing software, applying established design principles helps ensure your code is clean, maintainable, and scalable. In this article, we explore some of the most important principles, including SOLID, DRY, and WET,…

High Cohesion vs. Low Cohesion in Software Design

When designing software systems, the concept of cohesion plays a crucial role in determining the quality and maintainability of your code. Cohesion refers to how closely related the responsibilities of a single…

Die arc42-Methode

https://www.arc42.de Erfolgreiche Softwarearchitektur Entwerfen, kommunizieren und dokumentieren. Bewährt, praktisch und pragmatisch. Frei verfügbar, Open-Source und schmerzfrei.

Architecture Improvement Method

https://www.aim42.org Iterative improvement in phases aim42 works iteratively in three phases (analyze, evaluate, improve) supported by crosscutting activities. For each phase, aim42 proposes a number of proven and established practices and patterns.…

S.O.L.I.D Principles

S.O.L.I.D is an acronym for the first five object-oriented design(OOD) principles by Robert C. Martin. https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design