Hallo,
bei größeren Programmierprojekten habe ich Probleme einen sauberes Datenfluss-Modell zu erstellen. Meistens artet es in Spaghetticode aus. Man weiß also nicht mehr so einfach, wo was wann passiert.
Angenommen ich habe ein rein funktionales Web-Projekt z.B. eine Bildbearbeitungssoftware. In dieser kann ich verschiedene Bild-Dateien importieren und bearbeiten.
In meiner main.js hätte ich dann alle Eventhandler also was passiert wenn ich auf "Bild importieren" klicke z.B.
Die wirkliche Business-Logik würde ich dann in einzelne Komponenten aufteilen. z.B.
importSVG.js
oder
importPNG.js
Soweit so gut. Schwierig für mich wird es allerdings immer, wenn einzelne Komponenten untereinander Daten austauschen wollen. Was ist, wenn importSVG.js aus irgendeinem Grund die Daten aus importPNG.js braucht? Sollte dieser Datenverkehr über die main.js geregelt werden (siehe Bild 1), oder soll ich die importPNG.js in der importSVG.js Datei importieren (Bild 2)?
Hier mal eine Verdeutlichung, was ich meine:
Die main.js als "Mittelsmann"

Hier wird Modul2 aufgerufen, nachdem Modul1 ein Ergebnis produziert hat. z.B. als Callback Funktion:

Wie baut man sowas vernünftig auf?