Ich entwerfe eine neue Anwendung, die sich mit viel Geschäftslogik befasst.
Um die übliche Verstrickung zwischen verschiedenen Anwendungsebenen zu vermeiden, die sich im Laufe der Zeit häufig in solche Systeme einschleicht, möchte ich von Anfang an eine saubere Trennung von Bedenken implementieren. Im Großen und Ganzen möchte ich trennen:
- Präsentationsfolie
- Geschäftslogikschicht
- Datenspeicherungs- und Persistenzschicht
Die Frage, mit der ich am meisten zu kämpfen habe, ist, wie das Verhalten an den Rändern tatsächlich sauber implementiert werden kann, insbesondere zwischen dem Unternehmen und der Datenschicht. Ich habe zu viele Anwendungen gesehen, bei denen die Datenschicht ORM-Objekte an die Kernschicht übergibt und die Geschäftslogik effektiv eng mit dem ORM verknüpft.
Sollte ich ORM-Objekte in ein serialisiertes Format (JSON?) Konvertieren und dieses dann in der Geschäftsschicht in eine Datenstruktur innerhalb dieser Schicht deserialisieren? Ist das nicht viel Aufwand?
Wie implementieren Sie die Trennung von Bedenken für mittelgroße Anwendungen sauber? Irgendein Rat?
article.getId()
, article.getTimestamp()
usw. Diese Zuordnungen scheinen häufiger als nicht spezifisch für die ORM sein verwendet.