Bloc 是一个致力于将程序员从需求变化中解放出来的工作流管理平台
项目的最大目标是最大化的让需求变化不需要再经过程序员!让运营人员直接在前端进程操作就能满足需求的变化!
这个目标是通过将影响后端执行的一切参数暴露出来、一切前端可操作实现的。
目前还未上线
目录
我们认为,一个执行是由多个函数块串联起来的,而其中各个函数的行为,可以通过函数的参数来决定。
从而出现的情况是:不同的函数块串联顺序以及不同的输入参数,就会形成一个新的执行(也就是能够满足新的需求)。
所以,bloc想要做到的事就是:开发者只需开发好各个函数、并且尽量将影响函数运行的参数(在项目中扩展为了"富参数"、支持更为广泛)暴露出来。 剩下的就都不用管了 - 使用者自己通过bloc-前端界面来操控函数块的串联方式、其中各个函数块的参数输入、执行编排来满足使用者的新需求
项目有以下feature:
- 支持多语言的函数(目前是go、python)
- 支持水平扩展运行函数块(部署的实例越多并行度就越大)
- 支持跨代码仓库的函数提供(跨语言、跨仓库提供的函数都可以一起在前端被编排【同一个执行编排中的函数可以是来自不同仓库、不同语言提供的函数!】)
- 执行时机编排同时支持周期(crontab)、Webhook触发、以及先后依赖顺序指定的方式
组件构成图如下:
其中蓝色部分对应bloc代码仓库提供的一些组件。
在使用bloc前的开发流程:
可能从最开始为单个需求开发的简单脚本,演进到后面的庞杂交织的应用。导致事无巨细的需求变化和沟通成本,都需要通过程序员,导致耗费程序员的大量精力。
而使用了bloc后,我们希望的就是能够最大程度的解耦需求变化和降低沟通成本。
需求变化和信息最大程度的能在bloc前端进行获取和修改:
阅读对象:bloc
使用者
阅读对象:bloc
开发者
- 本地开发/测试环境搭建指南
- #todo 期望开发的功能
- #todo 生产环境搭建建议