In zwei Blogartikeln hatte ich Flow-Design und eine Implementierung
auf das aus meiner Sicht absolute Minimum eingedampft:
http://ralfw.blogspot.com/2011/10/skalierbare-softwarebausteine-teil-1.html
http://ralfw.blogspot.com/2011/10/skalierbare-softwarebausteine-teil-2.html
Dazu gibt es nun eine erste Implementierung einer Execution Engine
(Runtime) bei CodePlex:
http://npantarhei.codeplex.com/
Die habe ich gebaut nach der Spezifikation, die ich hier als
Application Kata fortschreibe:
http://clean-code-advisors.com/ressourcen/application-katas
So will ich auch weitermachen: Erst ein nächstes Inkrement als
Application Kata formulieren, dann implementieren. Dadurch denke ich
erstmal sauber über die Anforderungen nach; nehme mir die Zeit, sie
wirklich klein zu schneiden, so dass die Implementation kein
Lebenswerk wird, sondern schnell zu Feedback führt. Und die
Anforderungen sind öffentlich dokumentiert, so dass jeder der Lust
hat, eine eigene Runtime aufsetzen kann, z.B. für andere Plattformen.
An Anfang wäre Konkurrenz bei einer Plattform noch nicht spannend.
Aber später, wenn die Funktionalität komplizierter wird, dann würde
sie das Geschäft beleben :-)
Schaut doch mal rein in die Implementation. Im Moment können
Funktionen, Prozeduren und Prozeduren mit Continuation als Operationen
ganz leicht registriert werden. Ein Beispiel in den Tests zeigt, wie
das geht.