• 概述

      近期比较流行的低代码开发平台一词,其实也可以称作是快速开发平台。快速开发平台的目的是将可重复性的编程工作用平台实现,将开发人员从没有技术含量的增删改查开发中解放出来,做更有价值的开发工作,比如业务建模、数据库设计、流程设计、API核心开发、业务逻辑开发等工作。

      即使有了快速开发平台,并不意味着普通人员就可以替代开发人员的工作了,比如让非开发人员开发一套新的系统,例如一个简单的问卷调研系统,非开发人员即使有了开发平台这个工具,可能也无从下手,因为非开发人员不知道该设计那些数据库结构,功能模块如何划分,业务流程如何定义到系统中,等等。除非开发人员把功能细化到模块级,每个模块有哪些数据项,这时实施人员才可按照详细设计在开发平台中将功能配置出来。

快速开发平台可以替代哪些重复性工作?主要有以下几点:

      首先增删改查功能可以通过快速开发平台快速实现,因为增删改查工作没有业务逻辑,可以很容易地开发一个通用的增删改查配置工具。

      其次是流程定义,使用工作流产品实现流程定义,可以减少大量的个性化业务流程带来的编程工作量。

      第三是页面模板,常用页面模板包括单列表增删改查、主明细表增删改查、树形结构、单TAB页编辑页、多TAB页编辑页等等。

      第四是通用类库,通用类库的沉淀会极大方便日常的开发工作,比如字符串处理、日期处理、文件处理、加密算法、XML解析、JSON解析、图片处理、数据库增删改查等工具类。

  • 快速开发平台的核心能力

   快速开发平台应具有哪些核心能力?

  1. 可视化数据建模能力:可在线设计数据库结构。虽然通过其他数据库管理工具也可以设计数据库,而快速开发平台本身的数据建模功能的意义,主要在于和开发是无缝衔接的,这包括根据数据库表生成实体类、为数据库表自动创建对应的增删改查页面、数据库表字段的业务说明自动存储、数据库设计文档在线生成等。
  2. 代码生成能力:可通过平台工具生成增删改查程序代码或者其他程序代码。
  3. 可视化配置能力:业务流程可视化配置、表单可视化配置、数据流可视化配置(例如某个时机调用存储过程、或者触发数据处理程序)、门户网站DIV可视化拖拽及设置等。
  4. 代码组件化能力:将常用的工具类进行封装,比如日期处理、字符串处理、数据库SDK、文件处理、支付处理等等。
  5. 基础功能通用化能力:快速开发平台应该实现各种业务系统常用的功能能,包括登录注册、系统基础数据、组织机构、人员角色、功能菜单、权限分配、短信邮箱、数据字典、系统日志等。
  6. 网络安全能力:再好的系统,如果缺少了网络安全,就是木桶的短板,所以快速开发平台必须具备强大的网络安全能力,有效地防止各种网络工具。从实现措施上,包括第三方工具及时更新,控制器增加注入攻击防范,程序代码实现数据库防注入。
  7. API整合能力:这包括两种情况。别人调用我---本系统为第三方提供的OpenAPI接口。我调用别人---调用第三方平台接口,例如微信支付宝支付API、公众号API、阿里云直播点播API、云存储API、人工智能API、主流电商平台API等等。
  8. 开放生态能力:基于快速开发平台的开发标准,可开发插件化的应用产品,上架到应用市场。所有使用开发平台开发的产品都可以方便地整合应用插件。每个开发人员都可以按照开发平台的标准创建应用,发布应用到应用市场。
  9. 微服务能力:快速开发平台应具备微服务架构,在发布新的服务或者停止某个服务时不影响业务系统的正常使用。
  10. 敏捷开发及持续迭代能力:支持敏捷开发和产品的持续迭代。

  • JAVA快速开发平台整体架构

   

关于JAVA快速开发平台的整体架构设计,可参考以下几个方面:

  1. 跨操作系统:平台须支持Windows、Linux操作系统,当然JAVA语言没有这个障碍,不过平台仍需要在两种操作系统上进行充分测试。特别是文件大小写问题,在Windows上不区分,但Linux上区分大小写(典型的案例是,以前mysql数据库的文件名大写,但是sql中是小写的,放到linux系统中找不到大写的mysql表文件名)。
  2. 支持主流多种关系数据库:至少支持Oracle、SqlServer、Mysql这三种数据库,平台应至少支持这三种数据库的使用。
  3. 整合主流技术框架及组件:例如SSH、SSM、Spring Cloud、Spring Security等。当然可以根据技术偏好来自己取舍。除了基础MVC框架、微服务框架,还应整合常用的第三方工具或开源框架,例如关键词检索框架Apache Lucene、日志工具log4j、在线编辑器CKEditor、阿里巴巴JSON工具包、二维码生成器、批量上传组件pupload,等等。
  4. 网络安全设计:系统应具有网络防攻击过滤器,一般是开发过滤器类来监控JSP页面、MVC控制层的GET、POST等请求,一旦发现疑似攻击,则禁止进一步访问,另外程序代码中,也要避免字符串拼接的形式的数据库SQL语句。对于其他底层产品例如Tomcat、数据库、其他第三方工具的安全漏洞、Nginx、Redis配置不当等问题也要及时修复。
  5. 性能稳定可靠:系统设计需要支持高并发、性能稳定、安全可靠的质量要求。可达到长期24x7不间断运行的质量要求。
  6. 完善的基础功能:快速开发平台应具备业务系统必备的基础功能,包括登录注册、系统设置、基础数据管理(国家、省市县管理、各种基础数据字典如学历、民族、政治面貌)、数据字典设置、组织结构、人员角色、权限、菜单、短信、邮箱、日志管理、报表定义等基础功能模块。
  7. 丰富的SDK类库:平台应提供常用的基础类库共开发调用,比如字符串处理类、日期处理类、文件处理类、图片处理类、XML处理类、各种加密解密算法、第三方支付调用、公众号API调用、HttpClient工具类、二维码生成工具类,等等。
  8. 数据建模工具:支持在线数据库结构设计、这样表结构定义信息保留在系统中,不仅可随时生成设计文档,而且还可创建表结构对应的实体类和维护界面。
  9. 代码生成器:可生成常用的程序代码,比如根据某数据库表生成增删改查代码及增删改查页面、对应实体类和业务逻辑组件。
  10. 流程设计器及规则引擎:在线绘制业务流程。业务流程的设计可直接引用第三方开源工作流产品比如activiti/flowable。

  1. 表单设计器:可拖拽组件的表单设计器。如果实现比较复杂,可以用页面模板的方式替代(一行1列,一行N列,树形结构,主明细结构等)。

  1. 报表设计工具:在线定义查询统计报表。简单的方式可以实现一个SQL就能查询出来的简易报表。
  2. 门户网站设计器:支持对门户网站的DIV进行个性化定制和拖拽的功能,例如淘宝店铺定义自己的店铺主页。
  3. 认证框架与单点登录:支持Spring Security、JWT等认证框架、SSO单点登录、微信扫码登录等。
  4. 前后端动静分离:随着ajax、jquery、Rest的普及,越来越多的应用倾向于静态html前端+jquery+Rest接口+基于cookie的token实现前后端分离,这种设计可大幅度降低服务器端的性能压力。
  5. 前端UI框架:VUE前端框架越来越普及,以后的平台开发可考虑是否引入VUE3 UI框架,当然也可以使用layui、React、Bootstrap等UI框架。
  6. OpenAPI支持:开发平台以及业务系统需要开放哪些API给第三方调用,需要在设计时考虑。
  7. 整合主流第三方API:例如微信支付宝调用API、小程序API、公众号API、企业微信API、阿里云、腾讯云直播点播API、云存储API、主流电商平台API、其他人工智能、大数据API。可根据具体业务需求来有针对性地实现这些API对接。
  8. 微服务支持:平台应支持微服务架构,以便可提供更细粒度的业务服务和应用插件的使用,避免上下线业务服务必须重启应用系统。
  9. 跨端APP开发框架: 虽然小程序目前非常流行,但是对于大互联网平台企业仍需要有自己的APP产品,可考虑使用Flutter、React 跨端APP开发框架来开发专属APP应用。完整的快速开发平台应该有一套基于APP快速定制的APP开发框架。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐