导致CRUD程序员失业,通过工作流引擎实现的低代码平台
【摘要】 一、什么是低代码平台是指用最小化的手工代码量,帮助企业快速响应业务应用需求,能够最小化地降低企业各项前期投资的平台。根据Forrester报告的预测,到2020年,低代码平台将成为主要的软件交付平台,市场规模将达到155亿美金。75%的应用程序将使用低代码平台进行开发。未来企业必定是敏捷性组织,快速响应在线、连接、差异化需求,这种新的形势导致标准应用再也不能完全满足企业业务个性化的需求,因此...
一、什么是低代码平台
是指用最小化的手工代码量,帮助企业快速响应业务应用需求,能够最小化地降低企业各项前期投资的平台。
根据Forrester报告的预测,到2020年,低代码平台将成为主要的软件交付平台,市场规模将达到155亿美金。75%的应用程序将使用低代码平台进行开发。
未来企业必定是敏捷性组织,快速响应在线、连接、差异化需求,这种新的形势导致标准应用再也不能完全满足企业业务个性化的需求,因此,标准化应用必然会被低代码平台所开发出的高度个性化、高度敏捷化的应用所取代。
二、低代码平台主要功能模块
由上图可知,低代码平台包含5大模块,其核心是数据引擎与流程引擎。
1、数据引擎
数据引擎建立表单数据和数据库数据到数据模型的关联。
2、流程引擎
流程引擎支持流程设计,快速实现电子流、工作流和审批流。
三、什么是Activiti
是符合BPMN2.0规范的开源工作流引擎,而BPMN是一种业务流程建模语言标准,这两者的地位都很重要。BPMN2.0是最重要的业务流程建模语言,而Activiti是最重要的开源BPMN2.0流程引擎实现。
四、使用Activiti BPMN扩展
Activiti虽然是BPMN2.0规范的标准实现,它自己也提供了很多扩展,带来了更好的易用性。
1、调用外部Java逻辑
<serviceTask id="javaService"
name="My Java Service Task"
activiti:class="org.activiti.MyJavaDelegate" />
2、表达式计算
<serviceTask id="aMethodExpressionServiceTask"
activiti:expression="#{myService.doSomething()}"
activiti:resultVariable="myVar" />
3、自定义流程变量
<dataObject id="dObj123" name="StringTest123" itemSubjectRef="xsd:string">
<extensionElements>
<activiti:value>Testing123</activiti:value>
</extensionElements>
</dataObject>
五、数据库CRUD实现
使用流程引擎实现数据库的增删改查。
1、数据库select操作
流程定义
<serviceTask id="javaService“ name="Java service invocation" activiti:class=“com.lcp.bpmn.servicetask.DbDataLoader">
<extensionElements>
<activiti:field name=“sqlStatement">
<activiti:string>
select id,last_name,first_name,address,city from persons where id = #{persons_id}
</activiti:string>
</activiti:field>
</extensionElements>
</serviceTask>
代码实现
public class DbDataLoader implements JavaDelegate {
private Expression sqlStatement;
public void execute(DelegateExecution execution) {
String sqlStr = (String) sqlStatement.getValue(execution);
//1. 获取流程变量persons_id的值
//2. 生成并校验sql
//3. 执行sql
//4. 给结果对象赋值
}
}
2、数据库insert操作
流程定义
<serviceTask id="javaService“ name="Java service invocation" activiti:class=“com.lcp.bpmn.servicetask.DbDataInsertor">
<extensionElements>
<activiti:field name=“sqlStatement">
<activiti:string>
insert into persons(id,last_name,first_name,address,city) values(#{id},#{last_name},#{first_name},#{address},#{city})
</activiti:string>
</activiti:field>
</extensionElements>
</serviceTask>
代码实现
public class DbDataInsertor implements JavaDelegate {
private Expression sqlStatement;
public void execute(DelegateExecution execution) {
String sqlStr = (String) sqlStatement.getValue(execution);
//1. 解析sql
//2. 获取表名及数据集
//3. 拼接sql
//4. 执行sql
}
}
通过Activiti,我们能迅速实现低代码平台,加速典型的企业信息化场景的开发,毕竟,大多数企业信息化的场景都是数据库的CRUD应用为主。
我对低代码平台的应用前景表示非常乐观。也许,只会简单的数据库CRUD实现的开发人员就要失业了。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)