2

网易数帆陈谔:低代码平台,应对企业应用开发复杂性的一剂良方

 2 years ago
source link: https://blog.csdn.net/m0_46700908/article/details/126397698
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
7b4d74ca3e3a56330e8f21b2fd785340.gif

嘉宾 | 陈谔  整理 | 李天天

出品 | CSDN云原生

时下,很多企业在数字化建设过程中,面临着开发人才稀缺、需要开发多个软件才能支撑业务等问题,造成了企业开发效率低下的局面。如何解决这些复杂的问题,成为许多企业关注的重点。

2022年6月28日,在CSDN云原生系列在线峰会第11期"低代码峰会"上,网易数帆云原生及低代码产品线总经理陈谔分享了《应对复杂企业应用开发的低代码平台设计实践》。陈谔表示,通用的低代码平台,未来可能是企业内部软件生产的一种协作模式。

9cd5fe6912f7e96d364efb4eef174786.png

打造低代码开发平台的愿景和挑战

低代码开发平台的愿景主要可以分为两个部分:

  • 成为企业信息化建设的一个通用平台工具;

  • 通过低代码平台,降低研发门槛,培养专职开发者,创造新的就业岗位。

低代码平台的本质是能应对企业应用落地复杂性的挑战。

这种复杂性的挑战主要来自于,业务的复杂性以及与IT体系融合的复杂性。

abdd1a98d1403f69b65eb05a4681a466.png

企业应用开发的复杂性

具体而言,企业应用开发的复杂性体现在四个方面:业务复杂性;应用规模的复杂性;与企业现有IT体系融合的挑战;性能、稳定性等非功能性需求的挑战。

第一个方面,从业务复杂性来看,又可以划分为三个部分:应对页面交互体验的复杂性;应对业务逻辑的复杂性;应对数据模型、关系的复杂性。

fc63744b731dbba4fe419c8f975070f5.png

在应对页面交互体验的复杂性上:

  • 可以基于丰富的组件库搭建;

  • 使用所见即所得的排版 + CSS子集控制;

  • 采用可复用的模板体系;

  • 采用可扩展的组件体系;

  • 主题风格通过CSS自定义。

f84ed10b2c289fd94fbdced3d35bc482.png

在应对业务逻辑的复杂性上:

  • 可以使用精简但完备的语言设施;

  • 选取适当的Framework封装;

  • 通过流程框架对应用内存在复杂流程逻辑的情况进行支持;

  • 支持用户自建逻辑扩展组件,以lib的方式引入,在可视化环境中以函数方式调用;

  • 最后用代码块兜底,以应对算法较为复杂的场景,解决可视化编程信息密度较低的问题。

499fd5b5bf8caf017beef491e1cc23cf.png

在应对数据模型、关系的复杂性上:

  • 做到数据模型优先,这是应对企业应用复杂性的必要保障;

  • 通过算子组合封装SQL的执行,原生SQL兜底;

  • 内置面向集合类型的函数库。

3f11a2412888d8581dda27205f47e8de.png

第二个方面,从应用规模的复杂性上,可以从两个方面解决。

  • 需要强有力的代码可维护性保障。一方面,需要引入静态类型系统,减少代码缺陷,降低排障复杂度,提升代码可检索能力,令代码更易重构来实现更好的可维护性。另一方面,引入名称空间、模块定义等语言设施分解复杂性。

  • 支持基于代码仓库的异步协作机制。一方面,软件修改的结果不是直观可见的,因此软件开发协作首先要实现异步的协作机制。另一方面,Trunk-based代码管理策略,可以避免开发者需要理解分支等复杂概念,满足大部分业务迭代需求的情况下,保持配置管理的简洁性。

2188cd82d2632f80c666ccea60ee82ce.png

第三个方面,从应对与企业现有IT融合的复杂性上,可以从四个方面解决:

  • 基于接口的集成能力,支持多协议扩展;

  • Framework定义标准接口,对接企业内部服务,如用户中心、认证中心等;

  • 编程语言与技术栈层面的融合;

  • 输出制品以支持对接企业CI/CD流程。

fcae6fadf62189da6a5b6aaf8f2a4269.png

第四个方面,从性能、稳定性等非功能性需求的挑战来看,可以从三个方面解决:

  • 在性能的挑战上,首先,服务端转译为Java的策略以及静态类型系统使得低代码生成的代码执行性能与Java语言相当,没有解释引擎、动态特性带来的开销;其次,当需要应对一定并发性能时可通过逻辑扩展组件扩展对缓存中间件的支持;

  • 稳定性的保障上,默认依托K8s管理应用生命周期,应用节点无状态,可实现高可用和集群的自愈;

  • 在应对复杂性的核心引擎上,采取可视化编程语言NASL (NetEase Application Specific Language)。

effc6a81ac78b62e64987df55122bc4a.png

低代码学习门槛低、开发效率高的原因

  • 从学习门槛低上来看,知识体系的闭环性是低代码容易掌握的核心因素。

开发人员无需掌握前端技术栈,也无需理解网络协议、认证机制、ORM等各种服务端的技术细节,只需要关注业务逻辑,即可开发应用。

  • 从开发效率高上来看,前端可视化搭建、软件资产的重用与标准化是开发效率提升的关键。

经实践采用低代码可使开发效率提升2-3倍,开发人员可以没有计算机相关专业背景,上手2个月后基本可独立完成各类企业应用开发需求。

7335d7bb8e73488bc2f3519254307d89.png

总结

ce69e68372a29a3af02bb31bcc59fc29.png

总体而言,低代码开发平台的开发协作模式是:

  • 让需求者成为开发者,关注业务领域和产品本身的设计需求;

  • 让专业IT开发团队成为提供组件工具者,需要在有专业能力兜底时,通过提供模板组件接口方式,为低代码开发人员提供这些软件资产,以应对复杂的场景;

  • 不断满足企业开发多种通用性应用的需求;

  • 形成软件资产中心,通过积累的应用、模板和组件,组成企业或者某一领域的软件资产,不断提升企业研发效率。

总的来说,低代码平台让更多精通业务的人才参与到开发工作中来。通过精简而完善的可视化编程方式降低了开发门槛,使开发人员提高开发效率,还能应对企业复杂的应用环境。未来,低代码技术的重要性也将一直延续下去。


本片文章整理来自@ 李天天,由CSDN修订完成 。

想要参与到专家技术分享的一手整理过程中并获得相应权益吗?关注【CSDN云原生】公众号并回复关键词“志愿者”了解详情,我们期待你的加入~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK