Als Programmierer ist es meines Erachtens unser Ziel, gute Abstraktionen zum gegebenen Domänenmodell und der Geschäftslogik zu liefern. Aber wo soll diese Abstraktion aufhören? Wie man den Kompromiss zwischen Abstraktion und all ihren Vorteilen (Flexibilität, einfache Änderung usw.) und dem einfachen Verständnis des Codes und all seinen Vorteilen eingeht.
Ich glaube, ich neige dazu, zu abstrahierten Code zu schreiben, und ich weiß nicht, wie gut er ist. Ich neige oft dazu, es zu schreiben, als wäre es eine Art Mikro-Framework, das aus zwei Teilen besteht:
- Mikromodule, die in das Mikrorahmenwerk eingebunden sind: Diese Module sind leicht zu verstehen, zu entwickeln und als einzelne Einheiten zu warten. Dieser Code stellt im Wesentlichen den Code dar, der die in den Anforderungen beschriebenen Funktionen ausführt.
- Verbindungscode; jetzt steht hier meines erachtens das problem. Dieser Code ist in der Regel kompliziert, da er manchmal sehr abstrakt ist und am Anfang schwer zu verstehen ist. dies ergibt sich aus der Tatsache, dass es sich nur um reine Abstraktion handelt, wobei die Grundlage für die Realität und die Geschäftslogik im vorgelegten Code 1 liegt; Aus diesem Grund wird nicht erwartet, dass dieser Code nach dem Testen geändert wird.
Ist das ein guter Ansatz bei der Programmierung? Dass es, sich ändernden Code in vielen Modulen sehr fragmentiert und sehr einfach zu verstehen und sich nicht ändernden Code sehr komplex aus der Abstraktion POV? Sollte der gesamte Code einheitlich komplex sein (dh Code 1 komplexer und verknüpft und Code 2 einfacher), so dass jeder, der ihn durchschaut, ihn in angemessener Zeit verstehen kann, Änderungen jedoch teuer sind oder die oben vorgestellte Lösung gut ist, wo "Code ändern" ist sehr einfach zu verstehen, zu debuggen, zu ändern und "Code verknüpfen" ist etwas schwierig.
Hinweis: Hier geht es nicht um Codelesbarkeit! Code bei 1 und 2 ist lesbar, Code bei 2 enthält jedoch komplexere Abstraktionen, während Code 1 einfache Abstraktionen enthält.