前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >低代码杂谈一

低代码杂谈一

作者头像
wangning
发布2022-06-13 16:56:09
5800
发布2022-06-13 16:56:09
举报
文章被收录于专栏:小白慢跑

本文3300字,预计需要10分钟。

随着数字化、移动化推进软件的需求是显著增加的,而云计算、大数据等基础设施的成熟,人们期望以另一个方式完成软件开发的交付,低代码这个不太新的概念又获得了人们的关注。

市面上有关于低代码有许多争论,但是毋庸置疑的是此领域受关注程度越来越高,根据Gartner报告,市场规模年复合增长率超过20%,厂家、平台很多,侧重场景也有差异如表单类、流程类、设计类等。不过核心诉求无外乎提高效率、降低使用门槛,降低成本。

以下基于通用低代码平台,从组成、核心价值、组件之间的关系、设计/演进原则以及限制简单谈一谈个人的理解。

组成

  • 模型
  • 布局

布局规范

编辑器

  • 编译器
  • 流程/逻辑编排
  • 任务调度
  • 权限管理
  • 组件库

布局组件库

业务组件库

  • 集成管理

应用集成

API集成

数据集成(输入、处理、输出)

数据管理(导入、导出、批量编辑)

数据质量

核心价值

  • 提高效率、降低使用门槛
  • 封装知识交付能力

工作原理:封装知识和能力,降低使用门槛,减少沟通协作的环节,这里也请读者思考一个问题:单个客户定制需求真的非得完整走一遍严格的流程吗(需求收集->评审->开发->测试->用户验收->部署),非得那么多人员参与吗?

组件关系

注:不同场景或者语境下描述会有较大差异,以下为个人理解。

应用的输入应为业务架构活动,此活动原则上和是否使用低代码无关。

业务架构师职责:落地企业战略目标去设计业务解决方案,其解决方案的核心是梳理业务流程、业务数据、明确业务侧的各种协作关系。

输出为:业务流程+业务能力,业务流程=活动集合,活动隐含角色、时机和行为;业务能力可以简单理解为活动执行的能力。而流程的输入或输出会用到数据的定义,因此为业务架构师的输出为:数据定义+业务流程+业务能力。

上图DA、AA、TA 均为平台的组成部分,目标是实现(内置)BA定义的流程和能力。

应用价值通过业务行为达成目标完成价值交付,承担业务实体在平台中成为模型,严格来讲业务模型和数据库中的表以及编程中的class语义上有较大不同。主要差异是业务对象的可能由多个表或者class的组成,其行为更多类似Service或者能力层的范畴。

模型定义: 业务模型定义(可能会对应多个对象,也就是说和对象的对应关系为1对多)主要承载 数据定义。

活动执行: 业务行为,偏向于Service或能力层范畴,有时会通过多个业务行为编排组合之后对外服务。

布局:业务对象展示、数据搜集和行为交互

时机+行为:任务调度

对应用进行抽象,通过平台的元素映射,通过业务组件(对象+布局+对象行为等)完成应用价值交互

平台和应用的关系

  • 侧重不用

平台:侧重于通用能力封装和交付。不同平台的定位也会有较大的差异,如基于行业的平台也会内置很多行业内层能力,以及应用之间的协调。管理范畴也不一致。

应用:侧重于业务价值的交付,理论上低代码平台不直接面向用户,而是由应用封装之后以应用的形态交付。

  • 生命周期不同

理论上平台的生命周期要远远大于应用的,应用 平台的稳定性理论上也要高于应用的。

  • 交付方式不同

理论上应用的交付应该更为轻量,比如可以通过元数据同步、导出/导入应用安装包;导入/导出插件完成交付。

平台一般都需要各种流水线来完成其持续部署。

  • 资源竞争

二者存在资源层面存在竞争,组织的目标、氛围、承压能力等会决定二者演进的速度和方向,极端情况应用会"绑架"平台,使其"丧失"通用性。

低代码平台的能力

  • 自助能力

降本增效的手段之一是领域封装,减少相关环节,取消不必要的协作、会议。自助完成一些业务功能交付;比如查阅相关知识库或者参考类似的应用配置等。

可调试:一些业务流程经过封装,当需要对功能进行验证时,就需要清楚知道流程输入和输出,以及内部处理逻辑,除维护知识库之外,业务组件的可调试能力(甚至可视化)也是非常重要的。

另外常被忽略的是:由于使用低代码的未必都是专业的研发人员,所以平台要有相对比较强的兜底和监控能力。比如防止误操作,与主动发现使用不合理的地方如多重循环嵌套、SQL不合理等,异常服务的检测与隔离,防止局部使用不当引起大范围故障。

  • 知识库

这个能力本来想放在自助能力中,后面想了想还是单独拿了出来。因为知识库维护和使用的未必是同一个角色,知识库包括规范、流程文档、平台知识库,应用知识库,最佳实践等。

知识库需要系统的持续维护,使用者最好可以直接"抄作业"完成相关功能的交付;知识库还需要提供良好的搜索能力,否则很多宝藏只能被尘封。

  • 知识封装

将开发、业务专家的能力固化到组件中,方便一线人员使用。

同时将相关作业要制定相关作业标准,做到"填空"式作业,一定要杜绝千人前面。做到有纪律,重细节、够专业。

  • 自动化能力

如果面向活动营销类的平台可以实现,从设计稿到页面的输出。

如元数据版本管理,应用的持续部署等能力。

  • 复制能力

应用的复制能力:从A环境同步到B环境,需要清楚控制同步的文件,同步的内容,否则功能上线就是灾难。

多环境能力:随着生产和开发环境的迭代,如何能在开发、测试环境快速mock 生产的环境,或者如何把生产的环境脱敏"复制"一个,进行功能验证。

  • 扩展能力

低代码本质是通用性非常高的底座+相对完善的插件。应用本身也是以"插件"的形式与平台集成,所以要考虑插件的开发、代码复用、版本管理,持续集成,以及卸载能力。

除了MVP版本有需求免疫的超能力之外,真正交付应用时,总有那么一些能力在规划的范围之外,采用何策略进行兜底,以及兜底的成本都是要进行考虑的议题。

部分业务类型有强事务的要求,在扩展插件场景、尤其是多进程的环境下,需要考虑事务一致性的管理等。

  • 私有化部署

相对来说平台可能会用到较多的中间件,甚至云上的很多能力如云函数、高可靠的消息中间件等,那么也要考虑在私有部署时是否有可以替代的中间件。

云环境自动备份、Paas资源监控、水平扩展相对成熟,私有部署时,这些能力一般不如云完善。需要考虑资源的容量规划、监控等。

  • 集成能力

三个维度的集成:业务集成、数据集成、api集成。落地时更多的以API或者数据集成的形式,数据集成时需要数据有很好的自描述能力,或者平台可以导出相关数据的定义。API 则要考虑应用之间的认证、鉴权等,以及上下游数据一致性验证等。

除内部接口外也可以接入一些外部服务,如图像识别、资料审核等接口;设置还可以接入一些API的应用集市等。

  • 安全、合规能力

安全能力自不必说,平台提供应用的宿主,某种程度上也提供了底层一定安全等级的承诺,部分行业对数据的安全有强制的安全、合规要求就更要充分考虑,内置行业规范。

  • 可视化能力

可视化的方面比较多,如流程可视化、配置可视化、开发过程可视化等。

开发过程比较理想的情况是提供一个功能丰富的在线IDE,可以实现代码校验,职能提示,语法高亮,以及相关调试能力等。

配置可视化:就是常说的拖拉拽,配置过程要充分考虑受众,部分平台在配置时仅提供界面操作,但是有的复杂的表单通过鼠标操作就过于反人类的;建议可以将配置导出(生成)文本文件,然后再导入;局部配置时最好也可以提供文本式的模板,文本的操作还是有很大的优势。建议开发、设计者多体验一下复杂场景的配置,不要过于沉迷所谓的拖拉拽。

  • 国际化能力

设计/演进原则

  • 完善平台vs 交付应用 取决于组织的目标,以及所处的阶段,研发低代码平台时需要考虑二者的平衡。
  • 平台和社区之间

现在已经很少有公司可以不依赖社区交付软件,很多开发语言也是社区提供的如java、go等。不论后端还是前端的运行时都需要考虑和社区的关系,主要考虑避免过渡依赖社区,应该通过相关规范将其隔离。同时也要有升级的能力, ,避免"祖传"代码,找不到合适的人维护。

  • 社区

平台终极的理想是有一个丰富的社区应用仓库,可以由内、外部伙伴完善平台的业务能力,那就要考虑平台的升级兼容策略,社区培养和治理等工作,以及相关生态建设等。

限制

  • 低代码构建本身就是一个大工程

自身构建一个大工程,综上所述除了解决低代码平台自身的开发,还需要有一批业务专家参与共同制定相关的主题领域。

也以考虑直接使用业界低代码平台开发、交付应用。

  • 组织和流程

组织包括人员以及人员之间的关系,低代码自身内置了对人员的要求,如平台开发人员,应用开发人员,业务专家等。不同的角色有不同的能力模型,需要考虑市场上是否有匹配的人才,还需要考虑平台的能力要求是否适合员工的成长,否则员工工作能力不能迁移,甚至不满足于能力被平台"绑架"而离开。

以上为个人一点流水账式的认知,如有不当之处,望指正。

注:

以上部分观点参考"说透低代码"

https://time.geekbang.org/column/intro/100108401?tab=catalog

4A截图来自<<业务架构解读与实践>>

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白慢跑 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据集成
数据集成(DataInLong)源于腾讯开源并孵化成功的 ASF 顶级项目 Apache InLong(应龙),依托 InLong 百万亿级别的数据接入和处理能力支持数据采集、汇聚、存储、分拣数据处理全流程,在跨云跨网环境下提供可靠、安全、敏捷的全场景异构数据源集成能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档