Flow-Design: OOP component programming
Luís Marques
luis at luismarques.eu
Wed Feb 14 09:39:20 UTC 2018
It seems that someone once again rediscovered the benefits of
component programming, in the context of OOP, but (as usual)
without the more mathematical and principled approach of
something like ranges and algorithms:
<http://geekswithblogs.net/theArchitectsNapkin/archive/2011/03/19/flow-design-cheat-sheet-ndash-part-i-notation.aspx>
"The purpose of FUs is to process input and produce output. FUs
are transformational. However, FUs are not called and do not call
other FUs. There is no dependency between FUs. Data just flows
into a FU (input) and out of it (output). From where and where to
is of no concern to a FU. This way FUs can be concatenated in
arbitrary ways: (...) Each FU can accept input from many sources
and produce output for many sinks: (...) Connected FUs form a
flow with a start and an end. Data is entering a flow at a
source, and it´s leaving it through a sink. (...) You could say,
Flow-Orientation is about tackling complexity at its root cause:
that´s dependencies. “Natural” dependencies are depicted
naturally, i.e. implicitly. And whereever possible dependencies
are not even created. Functional units don´t know their
collaborators within a flow. This is core to Flow-Orientation.
That makes for high composability of functional units."
BTW, I just wrote my DConf proposal. I've been experimenting with
a different style of not-quite-OOP in a real project and so far
I'm really happy with the results. I've been making use of
Jean-Louis' openmethods.d library, as well as other D features
and techniques. The result is a quite nice balance of simplicity,
expressiveness and performance. I'm really looking forward to
telling you all about it :-)
More information about the Digitalmars-d
mailing list