Laden...

Forenbeiträge von Zuber Ingesamt 4 Beiträge

21.02.2022 - 19:46 Uhr

Hi,

Ok, für mein konkretes Projekt werde ich wohl mit einem rudimentären 3-Schichten-Modell starten, da mir die Trennung dort sinnvoll für das Projekt erscheint.

Tausende, hundert Millionen tausende. Unendlich.

Du musst von dem Gedanken weg kommen, dass es den einen besten Weg gibt bzw. dass die Wege überhaupt zählbar sind.
Software ist immer ein Zustand von Kompromissen.

Das ist beides nachvollziehbar für mich. Dann würde ich meine Frage gerne umformulieren: Welche Software Architekturmodelle sollte man in meinem Umfeld auf jeden Fall einmal anschauen? Das Umfeld würde ich als "Industrielle Datenverarbeitung" verallgemeinern. Ich bin mir fast sicher, dass es für z.b. Spiele Entwicklung andere, in dem Umfeld häufiger anzutreffende Architekturen gibt.

Mir ist natürlich klar, dass man auf diese Frage auch keinesfalls eine vollständige Antwort liefern kann. Es gibt aber sicher einige Architekturen, die besonders häufig verwendet werden.

Gruß
Marcel

20.02.2022 - 20:18 Uhr

Hallo Abt,

das CQRS-Entwurfsmuster ist neu für mich und ich hab's auch noch nicht wirklich verstanden. Da muss ich noch etwas Zeit investieren.

Auf Deine Frage gibt es leider keine pauschale Antwort - es gibt hier einfach viel zu viele Vorgehensmodelle.
Bottom Up vs. Top Down sind da auch nicht die oberste Schicht - aber wie eine Idee oder ein Problem in eine Lösung gemünzt wird: tausende Wege, jedes Team entscheidet das für sich.

Das es nicht den einen "richtigen" Weg gibt, ist mir bewusst. Im Moment stellt sich mir aber auch nicht die Frage, welchen Lösungsweg ich gehe, sondern viel eher, welche erprobten Lösungswege gibt es eigentlich? In den meisten Programmierkursen lernt man das Coding, aber zu Software Architektur Modellen findet man deutlich weniger.

Zitat
Ich tue mich aber sehr schwer damit, ein Klassenmodell für meine Applikation auf die Beine zu stellen.
Musst Du das denn überhaupt, wird das erfordert?
Viele moderne Architekturprinzipien haben zwar Datenmodelle, aber keine "Business Modelle" (ich vermute, dass Du das mit Klassenmodelle meinst).
Moderne Architekturen wie CQRS arbeiten mit Zustandsveränderungen und Projektionen - nicht mit mächtigen, überladenen Business Modellen.

Nein, ich muss nicht. Ich dachte aber, dass ich damit das ganze für mich visualisieren kann, damit ich "den Knoten in meinem Kopf" lösen kann. Mein Ziel ist ja auch gar nicht, so schnell es geht die Aufgabe zu lösen, sondern etwas zu lernen. Ich habe halt eine Aufgabenstellung aus meinem Arbeitsalltag genommen, um meine Fähigkeiten in der Softwareentwicklung zu verbessern, anhand einer realen Aufgabe. Wenn ich am Ende auch noch meine Arbeit erleichtern kann, wunderbar.

Hallo M.L.,

die Wartbarkeit und Änderungsfähigkeit sind für mich ein essenzieller Bestandteil einer "soliden Applikation". Deswegen suche ich Wege, wie ich diese erreichen kann.

Gruß
Zuber

20.02.2022 - 15:08 Uhr

Hallo Th69,

danke für den Hinweis auf das 3-Schichten-Modell. Das hilft mir schon mal weiter.

Die Datenzugriffsschicht ist mir für mein Projekt noch nicht so klar. Ich hätte jetzt im ersten Schritt die Datenklassen geschrieben, die beschreiben, aus welchen Feldern und Methoden ein Messwert bzw. eine Toleranz besteht. Danach hätte ich dann Zugriffsklassen geschrieben, die z.b. eine XML-Datei lesen und daraus die Toleranzobjekte erzeugen, damit die Datenquelle unabhängig von den zu verarbeitenden Daten bleibt. Oder gehören die Datenklassen schon in die Geschäftslogikschicht?

Die Präsentationsschicht (Konsole oder GUI) würde dann nur eine Referenz auf die Datenquellen an die Datenzugriffsschicht übergeben (Dateipfade für Messwerte und Toleranzen) und nach dem Vergleichen der Toleranzen und Messwerte (Logikschicht) die Ergebnisse anzeigen und bei Bedarf in eine Datei schreiben (Präsentationsschicht liefert hier den Pfad, Logikschicht die Ergebnisse und die Datenzugriffsschicht exportiert diese in eine Datei).

Bin ich bis hierhin auf dem richtigen Weg mit dem 3-Schichten-Modell?

Grüße
Zuber

19.02.2022 - 22:05 Uhr

Hi,

ich bin noch recht neu in der Softwareentwicklung, habe mich aber schon durch mehrere Onlinekurse gearbeitet. Die C# Grundlagen sind mir also grundsätzlich vertraut. Ich tue mich aber noch sehr schwer bei der Umsetzung einer Idee in eine konkrete Applikation. Daher würde ich gerne verstehen, wie andere an die Sache herangehen.

Grundlage meiner Idee ist ein Problem aus meinem beruflichen Umfeld. Wir müssen immer wieder größere Mengen an Messwerten aus einer Produktprüfung gegen vorgegebene Toleranzen abgleichen und daraus ein zusammengefasstes Ergebnis ableiten.

Ich habe also eine vorgegebene Datei (SQLite Datenbank die die Messwerte aus einem Messauftrag enthält) und muss diese gegen Toleranzen abgleichen. Als Ergebnis möchte ich eine Berichtsdatei erzeugen.

Es geht mir an dieser Stelle nicht darum, wie ich eine Datenbankdatei auslese oder das Ergebnis ausgebe, dass sind lösbare Aufgaben für mich. Ich tue mich aber sehr schwer damit, ein Klassenmodell für meine Applikation auf die Beine zu stellen.

Daher meine Frage: Wie kann ich vorgehen, um aus der Idee eine solide Applikation zu entwickeln?

Viele Grüße
Zuber