导致CRUD程序员失业,通过工作流引擎实现的低代码平台

举报
ktwl 发表于 2019/09/25 14:24:00 2019/09/25
【摘要】 一、什么是低代码平台是指用最小化的手工代码量,帮助企业快速响应业务应用需求,能够最小化地降低企业各项前期投资的平台。根据Forrester报告的预测,到2020年,低代码平台将成为主要的软件交付平台,市场规模将达到155亿美金。75%的应用程序将使用低代码平台进行开发。未来企业必定是敏捷性组织,快速响应在线、连接、差异化需求,这种新的形势导致标准应用再也不能完全满足企业业务个性化的需求,因此...

一、什么是低代码平台

是指用最小化的手工代码量,帮助企业快速响应业务应用需求,能够最小化地降低企业各项前期投资的平台。

导致CRUD程序员失业,通过工作流引擎实现的低代码平台


根据Forrester报告的预测,到2020年,低代码平台将成为主要的软件交付平台,市场规模将达到155亿美金。75%的应用程序将使用低代码平台进行开发。

未来企业必定是敏捷性组织,快速响应在线、连接、差异化需求,这种新的形势导致标准应用再也不能完全满足企业业务个性化的需求,因此,标准化应用必然会被低代码平台所开发出的高度个性化、高度敏捷化的应用所取代。

二、低代码平台主要功能模块

导致CRUD程序员失业,通过工作流引擎实现的低代码平台


由上图可知,低代码平台包含5大模块,其核心是数据引擎与流程引擎。

1、数据引擎

导致CRUD程序员失业,通过工作流引擎实现的低代码平台


数据引擎建立表单数据和数据库数据到数据模型的关联。

2、流程引擎

导致CRUD程序员失业,通过工作流引擎实现的低代码平台


流程引擎支持流程设计,快速实现电子流、工作流和审批流。

三、什么是Activiti

是符合BPMN2.0规范的开源工作流引擎,而BPMN是一种业务流程建模语言标准,这两者的地位都很重要。BPMN2.0是最重要的业务流程建模语言,而Activiti是最重要的开源BPMN2.0流程引擎实现。

导致CRUD程序员失业,通过工作流引擎实现的低代码平台


导致CRUD程序员失业,通过工作流引擎实现的低代码平台


四、使用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程序员失业,通过工作流引擎实现的低代码平台


我对低代码平台的应用前景表示非常乐观。也许,只会简单的数据库CRUD实现的开发人员就要失业了。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。