Konfigurieren vs. Programmieren

Roman Perich, geändert am 22 Juli 2022 , Lesezeit ca. 4 Min.


Die Vorteile einer Konfiguration liegen immer auf der Hand und man kann ohne Programmierkenntnisse und Abstraktion eine Lösung schaffen.

Wenn man aber tiefer gehen und eine Sonderlösung anbieten möchte, die durch Konfiguration nicht mehr unterstützt wird, stößt man schnell an die Grenzen.

Ich habe früher immer gedacht, dass eigene Programmierung immer effizienter und schneller ist und die Konfiguration recht komplex sei.

In diesem Artikel zeige ich dir, was für dich die bessere Lösung ist.

Was ist Konfiguration

Konfiguration ist sehr vielschichtig und es gibt viele Definitionen und Wege. Es gibt sowohl leichte als auch hochkomplexe Konfigurationen mit Programmierung.

Leichte Konfiguration

Die leichte Konfiguration wird in den meisten Fällen verwendet und ist mehr eine Selection mit Listen.

Die ist leicht zu verstehen und auch leicht anzulegen. Bei zu vielen Varianten ist sie jedoch recht unübersichtlich und kaum pflegbar.

Man sollte hier sehr vorsichtig umgehen und wirklich nur das konfigurieren, was man überblicken kann oder selber versteht.
Der größte Nachteil ist die Geschwindigkeit, da die Anzahl der Varianten multipliziert wird und so die Datenmenge enorm steigt.

Komplexe Konfiguration mit Regeln

Als nächstes kommt eine komplexere Konfiguration, die mittels Konfiguratoren umgesetzt wird. Hier hat man meistens nur die Regeln.

Die Regeln sind 2-Dimensional und recht leicht zu verstehen. Der Vorteil ist, dass es ein fertiges Produkt ist und man innerhalb kürzester Zeit mit dem Endprodukt live gehen kann. Datenmenge ist überschaubar und Updates sind schnell gemacht.

Es gibt aber auch Cons: Nur was der Konfigurator kann, kann gemacht werden. 3-dimensionale oder komplexe Abhängigkeiten mit Formeln sind nur über Tabellen umsetzbar. Man stößt an die Grenzen und es wird dann umprogrammiert, bis es läuft.

Hochkomplexe Konfiguration

Bei dieser Art der Konfiguration handelt es sich um eine relativ komplexe Abhängigkeiten, die Komplexe Konfiguration mit Programmierung verbindet. Es kommen weitere Dimensionen und werden als Funktionen und aufwendige mehrdimensionale Daten abgebildet.

In der weiteren Dimension ist man Richtung Programmierung und Algorithmen unterwegs. Es ist hier schon besser, sich auf die direkte Softwareentwicklung zu konzentrieren, da der Overflow sonst zu hoch wird.

Nachteile bei der Konfiguration

Ein großer Nachteil ist , dass man nur soweit kommt, wie es im Standard-Konfigurator angedacht ist. Sonderlösungen müssen über Programmierung oder Plugins realisiert werden. Die Antwortzeit wird meist schlechter und es sind weitere Komponenten notwendig.

Bei Plugins sollte man immer vorsichtig sein!

Programmierung

Für gewöhnlich ist Programmieren die schnellste und beste Lösung in Bezug auf Performance.

Die Wege, die über Konfiguration führen, sind sehr rechenintensiv und verbrauchen unnötig viele Ressourcen, bringen dafür aber den Vorteil der Sicherheit mit sich. Bei ziemlich großen und teuren Projekten sollte man immer auf eigene Programmierung setzen.

Die Kosten sind meistens nur 1/10 von denen der Konfiguration, vorausgesetzt, man ist Experte auf dem Gebiet.

Die Architektur soll so gebaut werden, dass kein Monolit entsteht und eine Erweiterung leicht umsetzbar ist. Auch dann, wenn Daten redundant vorgehalten werden sollten. Wobei bei den Daten immer eine Hauptquelle zu nehmen ist

Datenquelle

Was ist ein Programm oder ein Shop ohne Daten? Nichts. Deswegen werden die Daten immer in einem neutralen Format gehalten. Das Format soll so einfach wie möglich sein.

Fazit

Ich kann immer sagen, dass es besser ist, die eigene Entwicklung zu wählen, wenn du die beste Performance brauchst und viele verteilte Systeme hast.

Bei Standardtools oder auch Plugins wird alles Mögliche vorgesehen und nur 1% davon genutzt. Die 99% kosten nur deine Ressourcen, die du sowohl mit Servern als auch mit Verlusten in Form von Kunden und dann auch Umsätzen rechnen musst.