使用NoFlo进行基于流程的编程

令人惊奇的是,凭借我们闪电般的技术周期,在钟形和转盘时代诞生的工作流程正在复兴。 早在1970年代,一位名叫J.保罗·莫里森(J. Paul Morrison)的巧妙工程师设计了一种类似于通用流程图的银行系统。 他的软件概念以能够以非技术人员可以理解的方式可视化流式传输复杂逻辑的能力而获得了安静的赞誉。 多年后,一场运动激增,技术行业的专业人士应予以关注。 本文探讨了基于流的编程(FBP)。

要点

自莫里森的FBP银行系统首次取得成功以来,关于破坏性概念的报道很少。 但是,FBP实际上已经出现在远离软件开发中心的行业中:视觉效果,电影,人工智能,发烧友编程等。

对视觉上吸引人的程序流的需求,以及远离面向对象编程的一步,似乎是朝着更易懂,更灵活的代码迈进的一步。 那么,为什么FBP在设计人员,产品经理以及最重要的是开发人员之间获得普遍认可的速度缓慢?

越来越多的证据表明,可能已经通过Flowhub网络(尤其是Java的NoFlo)的出现成功解决了这个悬而未决的问题。

NoFlo

备受赞誉的修补匠Henri Bergius和Meemoo的创造者Forrest Oliphant组成了Kickstarter的两个关键部分,在全球范围内获得了巨大的支持。 NoFlo项目虽然雄心勃勃,但有一些特点使其与Yahoo Pipes,Quartz Composer和过去其他成功但有限的类似FBP的系统区分开来:

  • 可以通过JSON创建NoFlo的图。
  • 在关闭托管基础结构的同时,底层编程框架是开源的。
  • UI不会生成任何自己的代码。
  • 除了NoFlo / JavaScript运行时以外,还为Java,Objective-C和其他语言构建了类似的运行时。
  • 可以出于任何目的创建和测试自定义组件。

Flowhub的程序将逻辑排列到“图”中,其“节点”充当程序组件。 节点被设置为对传入信息包(IIP)做出反应,以使节点根据组件类型接收然后输出动作。 在OOP中,大多数时候,开发人员都在关注组件之间的通信方式,而对于FBP,唯一需要关注的是要连接哪些组件。 NoFlo最初在Kickstarter页面上的一句话很好地总结了《 神话人月》的一个版本:

“这就是建筑软件; 它是您可以在其自身重量崩溃之前架设的脚手架数量……您从事的工作人数无关紧要……软件开发项目达到一定的规模后,您需要再增加一个人,才能与该人的沟通实际上比他们对该项目的净贡献要大,因此它的速度变慢了。” –史蒂夫·乔布斯

NoFlo组件可以对各种输入(包括HTTP请求和API)做出反应,并可以输出到不同的目标(例如数据库)。 您甚至可以使用Node.js库将NoFlo图集成到现有的JavaScript项目中。 这种流程挑战了控制大多数编程逻辑的一步一步的范式,尤其是当我们考虑到大量的输入/输出以及现代接口越来越大时要处理的庞大数据源时。

这种哲学转变在开发人员之间造成的不安全感是显而易见的,也是可以理解的。 如果要取消开发人员的工作,而被设计人员和产品经理吞噬,他们可以轻松地理解如何连接适合每个可能想到的任务的切饼机组件,该怎么办? 然而,最终,FBP的灵活性所带来的好处可能远远超过对软件开发行业的任何后果。 还存在以下问题:构建自定义组件,使用现有代码实现FBP,以及由于此类编程的视觉性质而可能出现的用户界面限制。

案例分析

让我们用NoFlo的FBP进行快速实验,以直接了解接口。 注册需要一个GitHub帐户,从而可以选择无缝部署到存储库。 根据计划中可用的运行时,界面可能有所不同:

Flowhub接口

当您放大到只能看到整个网络的一部分时,便可以使用便捷的地图。 此功能和其他导航方法对可能真正占用可读空间建筑物的复杂流程至关重要。 出于这个原因,缩放很容易,只要轻扫垫板或用手指捏(触摸)即可。

Flowhub布局

左右移动可见区域需要单击并按住拖动动作或类似的触摸动作,并且整个界面上的全部移动都很直观。 单击搜索栏时,它列出了所有现成的组件,从CSS元素和动作到简单的数据库调用,再到常见的数学函数和图形功能。

当前,您可以通过文本编辑器界面在浏览器中预览输出,以及构建和测试自定义组件:

Flowhub编辑器

结论

一旦我对启动IP有了一种感觉,并且放下了对文本的担忧,那么视觉方法便赋予了某种自由。 如果项目具有更多层次的复杂性,我认为程序中的物理逻辑流程可能会有一个更大的概念。 通过协作,这种视觉描绘看起来像草图,或者是一些图形化的伪代码,一些开发人员在将程序翻译成特定语言之前,使用它们来概述程序的基本流程。 在许多学科中似乎越来越多,人们可以想象一个文本少得多,图片多得多的世界。

项目代码中在浏览器中进行实验 (一旦使用Github登录)。

From: https://www.sitepoint.com/flow-based-programming-noflo/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值