前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >低代码开发平台技术架构_一个项目的整体架构是什么

低代码开发平台技术架构_一个项目的整体架构是什么

作者头像
全栈程序员站长
发布2022-09-23 11:34:31
1K0
发布2022-09-23 11:34:31
举报

大家好,又见面了,我是你们的朋友全栈君。

  • 概述

近期比较流行的低代码开发平台一词,其实也可以称作是快速开发平台。快速开发平台的目的是将可重复性的编程工作用平台实现,将开发人员从没有技术含量的增删改查开发中解放出来,做更有价值的开发工作,比如业务建模、数据库设计、流程设计、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. 性能稳定可靠:系统设计需要支持高并发、性能稳定、安全可靠的质量要求。可达到长期24×7不间断运行的质量要求。
  6. 完善的基础功能:快速开发平台应具备业务系统必备的基础功能,包括登录注册、系统设置、基础数据管理(国家、省市县管理、各种基础数据字典如学历、民族、政治面貌)、数据字典设置、组织结构、人员角色、权限、菜单、短信、邮箱、日志管理、报表定义等基础功能模块。
  7. 丰富的SDK类库:平台应提供常用的基础类库共开发调用,比如字符串处理类、日期处理类、文件处理类、图片处理类、XML处理类、各种加密解密算法、第三方支付调用、公众号API调用、HttpClient工具类、二维码生成工具类,等等。
  8. 数据建模工具:支持在线数据库结构设计、这样表结构定义信息保留在系统中,不仅可随时生成设计文档,而且还可创建表结构对应的实体类和维护界面。
  9. 代码生成器:可生成常用的程序代码,比如根据某数据库表生成增删改查代码及增删改查页面、对应实体类和业务逻辑组件。
  10. 流程设计器及规则引擎:在线绘制业务流程。业务流程的设计可直接引用第三方开源工作流产品比如activiti/flowable。
低代码开发平台技术架构_一个项目的整体架构是什么
低代码开发平台技术架构_一个项目的整体架构是什么
  1. 表单设计器:可拖拽组件的表单设计器。如果实现比较复杂,可以用页面模板的方式替代(一行1列,一行N列,树形结构,主明细结构等)。
  2. 报表设计工具:在线定义查询统计报表。简单的方式可以实现一个SQL就能查询出来的简易报表。
  3. 门户网站设计器:支持对门户网站的DIV进行个性化定制和拖拽的功能,例如淘宝店铺定义自己的店铺主页。
  4. 认证框架与单点登录:支持Spring Security、JWT等认证框架、SSO单点登录、微信扫码登录等。
  5. 前后端动静分离:随着ajax、jquery、Rest的普及,越来越多的应用倾向于静态html前端+jquery+Rest接口+基于cookie的token实现前后端分离,这种设计可大幅度降低服务器端的性能压力。
  6. 前端UI框架:VUE前端框架越来越普及,以后的平台开发可考虑是否引入VUE3 UI框架,当然也可以使用layui、React、Bootstrap等UI框架。
  7. OpenAPI支持:开发平台以及业务系统需要开放哪些API给第三方调用,需要在设计时考虑。
  8. 整合主流第三方API:例如微信支付宝调用API、小程序API、公众号API、企业微信API、阿里云、腾讯云直播点播API、云存储API、主流电商平台API、其他人工智能、大数据API。可根据具体业务需求来有针对性地实现这些API对接。
  9. 微服务支持:平台应支持微服务架构,以便可提供更细粒度的业务服务和应用插件的使用,避免上下线业务服务必须重启应用系统。
  10. 跨端APP开发框架: 虽然小程序目前非常流行,但是对于大互联网平台企业仍需要有自己的APP产品,可考虑使用Flutter、React 跨端APP开发框架来开发专属APP应用。完整的快速开发平台应该有一套基于APP快速定制的APP开发框架。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/172403.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档