Flow Based Programming

Visueel en interactief programmmeren

Flow-based programming (FBP) is een programmeer methode waarmee je applicaties visueel als netwerken van stappen kan samenstellen en data uitgewisseld wordt via voorgedefinieerde verbindingen. Deze verbindingen zijn buiten de processen vastgelegd en hebben altijd een richting.

Data uitwisseling gaat via "payloads". Dit zijn kleine informatie pakketjes bestaande uit key-value properties.

Een process binnen een Flow kan iets heel kleins zijn zoals een proces die een eenvoudige if-then-else uitvoert op basis van parameters en de payload, maar ook processen die http endpoints vertegenwoordigen of html genereren mbv templates. Maar het kan ook een getraind model tbv machine learning zijn. 

In een architectuur waarin je processen beschikbaar maakt via plugins, heb je zowel herbruikbaarheid als flexibiliteit.

In principe staat Flow-based-programming los van het gebruikte platform. Het kan dus overal toegepast worden: frontend, backend tbv website/webapp, microservice, mobile app etc. Je kunt er ook andere systemen mee aan elkaar "knopen" zodat het FBP systeem bijvoorbeeld fungeert als een Enterprise Service Bus, al zal het dan uiteraard gecombineerd moet worden met meer geavanceerde Queueing technieken maar ook logging/tracing tbv monitoring en authenticatie/authorisatie.

Waarom Flow-based-programming?

Met Flow-based-programming verhoog je de productiviteit aanzienlijk zonder verlies aan flexibiliteit en kwaliteit. En omdat je visueel werkt is het gevolg dat je geen of minder code nodig hebt en dus de brug verkleint tussen programmeurs (citizen en traditioneel), business, klant, project manager, informatie analist, testers, designers, architect etc. 

Voor een traditionele programmeur die heel graag code schrijft, is het natuurlijk behoorlijk wennen. Maar er blijft nog genoeg behoefte aan kwalitatieve code over tijdens het ontwikkelen van plugins. Die moeten heel generiek zijn met dus de daarbij behorende uitdagingen.

En tenslotte: Met Flow-based-programming programmeer je op een natuurlijke manier.

undefined