Ich denke, es ist wichtig, dieses "umgekehrte" oder "historische" Debuggen ein wenig weiter auszubauen. Ich denke, komplexe Systeme und Verhaltensweisen darin zu verstehen, "Ereignisse", die den Zustand explizit machen, wiederzugeben, ist absolut entscheidend.
Was ich zum Ausdruck bringen möchte, ist, dass Sie sich nicht allein fragen, warum diese Technik heute nicht so häufig angewendet wird oder warum die damit verbundenen Probleme selten klar diskutiert werden.
Lassen Sie uns hier zwei sehr wichtige Konzepte hervorheben:
1. Um ein Programmiersystem zu verstehen, ist es hilfreich, den Status explizit anzugeben
2.Um ein Programmiersystem noch besser zu verstehen, kann es sehr hilfreich sein, Abläufe von Zuständen (Ereignissen) wiederzugeben.
Hier sind einige Quellen, die sich mit dem Problem befassten und Lösungen für das Problem vorschlugen oder entwarfen (Umgang mit Zuständen in komplexen Systemen):
-Außerhalb des Teerbits, Papier: http://shaffner.us/cs/papers/tarpit.pdf Hauptideen
: vermeiden, isolieren oder explizit angeben
-CQRS
http://www.cqrs.nu/
Dies ist eine Kombination aus zwei Konzepten: Befehlsabfragesegregation und Ereignisbeschaffung. Es gibt verschiedene Implementierungen (Java, C #, Scala). Die Wiedergabe von Tate-Sequenzen und die Entwicklung eines Domänenmodells sind hier die entscheidenden Bestandteile.
Wenn Sie wirklich verkleinern und das sehr breite Bild sehen, können Sie bereits erkennen, dass Menschen mit dem "Aufstieg" der funktionalen Programmierung bereits (un) bewusst zu fp hingezogen werden, weil es den Status explizit macht! Aber das hat nur mit Punkt eins zu tun, um den zweiten anzusprechen, braucht man ein anderes Konzept, das man "lose" als funktionale reaktive Programmierung bezeichnen könnte.
Sie könnten also alles gut und schön sagen, aber wer nutzt eigentlich CQRS und FRP? Ich würde sagen (IMO, weil ich keine konkreten Zahlen habe), dass viele Unternehmen nur nicht wissen, welche Arbeit sie mit dieser Terminologie machen. Vielleicht googeln Sie ein bisschen und hören von Unternehmen, die CQRS verwenden, dass es bereits einige Erfolgsgeschichten gibt. Auch FRP steigt langsam an, als Beispiel könnte ich Netflix geben: http://techblog.netflix.com/2013/02/rxjava-netflix-api.html
Was gerade eine Implementierung von RX herausgebracht hat, die tatsächlich auf .NET basiert (hat aber eine Javascript-Implementierung auch). Die Menschen nutzen diese Techniken bereits heute, um komplexe Systeme zu verstehen und sie noch besser zu machen. Deshalb verwenden sie Reverse-Debugging-Techniken.