【程序员日记】——从业务编排到低代码 | 京东云技术团队

这篇具有很好参考价值的文章主要介绍了【程序员日记】——从业务编排到低代码 | 京东云技术团队。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前总聊微服务,今天换一个话题—低代码。

低代码这个词也是最近这几年很火的概念,尤其是遇到大环境下行,很多大厂和互联网那个公司也在慢慢在低代码方向发力,当然,对于传统项目交付型的软件公司,低代码也具有相当大的吸引力。

如何理解低代码

用一个通俗易懂的说法,就是少写代码,并且降低开发门槛的方式,可以让平民开发者(可以理解为并不一定具有软件技术素质的人员)也能高效快速的构建应用程序。

如果基于这个思路,是不是大家觉得有一些类比?

当计算机刚起步的时候,大家还用打孔卡片来跑程序的时候,这时候一个牛逼的汇编语言可以说就是那个时代的低代码;再到后来C语言的普及,那对于汇编语言来说,C语言简直就是低代码……以此类比,在我们这个时代,当面向对象的开发语言成为主流的时候,大家不可避免的在思考,是不是可以通过简单的可视化配置或者逻辑图就能实现编程呢?比如产品经理把产品设计好,时序图画好,自动就可以编程可以跑得程序。

命令式 vs 描述式

对于传统的软件开发,我们需要定义数据结构,定义变量,通过一行行命令式的代码,来精准的控制计算机执行每一步操作。这个过程中,对于开发者要求是比较高的,要有计算机运行的基本知识,要有算法的基本能力,而且时常要从计算机角度触发逻辑思考,包括线程池管理,内存管理等问题。这些,无疑都增加了开发者的门槛,同时也会增加工作量。

那低代码的目标就是减少工作量和对底层逻辑的关系,从此目标出发,我们可以构建一种描述式的编程方式。

所谓描述式的编程,就是把业务需求标准化,配置化,最优方案是可视化的配置的方式实现快速开发,这个过程中,开发人员不用关心计算机底层逻辑,只需要描述好数据模型,业务流程即可。

现在已经有很多成熟的低代码平台,比如Mendix这种,对于业务不复杂的情况,能够实现程序的快速构建。但对于很多程序员来说,还是很不适应这种编码方式。对于大多数程序员来说,一个好的低代码框架,反而是更香的那个面包,对于解决眼前的饥饿能够起到立竿见影的效果。

说一下我们熟悉的一些业务场景,包括 工作流引擎,前端页面装修等,这些业务场景已经有了很成熟的低代码框架帮我们解决。比如工作流引擎,当你处理流程审批的业务场景的时候,如果没有工作流引擎,你可能还需要自己用状态机来硬编码你的程序,有了工作流引擎,我们可以实现业务配置化。

而业务编排思想,其实就是从命令式走向描述式的一次探索,所有低代码框架的核心思想就是业务编排能力,通过打造不同的原子,和原子之间的排列组合,从而实现业务能力。

低代码实现路径—业务编排

业务编排思想核心还是业务单元模块化,这个在某种程度跟微服务思想有点不谋而合。通过模块化去解耦复杂业务系统,化繁为简。下面贴一个简单的业务编排架构图:

【程序员日记】——从业务编排到低代码 | 京东云技术团队

1. 核心组件说明

a. 流程引擎,规则引擎和决策表。

这些概念在activiti这种框架中也是耳熟能详的,所以可以看出,业务编排也是依靠流程驱动实现的。只不过activiti关心的是橘色任务流转,比如OA审批流这种,而业务编排关心的事一个复杂业务本身中的业务粒度拆分和装配,例如下单流程,价格规则等等。

b. 上下文管理。

这个也是很重要的,在一个复杂的业务编排过程中,每个独立组件之间不可避免会有数据交互,而这些都交给了上下文处理。对于上下文管理,也有两种方式,一种是流程串联中的上下文传输,类似水流中的小纸船,他会在流程中通过业务控制实现上下文的传递,当然这种在实现和理解上都会更复杂一些。

还有一种方式类似工作台,这里可以做一个类比:n个工人按照一定顺序围绕一张工作台进行零件生产,每个工人都可以从工作台上拿去资源生产自己的零件,而每个工人会将自己生产的零件放在工作台上,同时也可以从工作台上领取别的工人做好的零件。而这个工作台就是上下文, 所有的资源和零件在这个工作台之上是共享的。这种共享上下文的设计思想会让业务实现和理解变得简单,但它的问题在于组件的安全性和约束性,因为资源共享,所以每个组件都可以对资源进行修改,在软件开发中,有时候失去约束性,会在系统迭代的过程中出现变质,这就类似于面向对象编程中的封装性。

2. 案例讲解

这里举个业务编排的例子,我们以商品详情查看为例:

【程序员日记】——从业务编排到低代码 | 京东云技术团队

通过上图可以看出,在商品详情查看这个接口中,包含了商品基本信息查询,库存查询,售后查询,可售性查询等流程,然后最终才得到返回值。

你可以将瀑布流式的代码,转变成以组件为核心概念的代码结构,这种结构的好处是可以任意编排,组件与组件之间是解耦的,组件可以用脚本来定义,组件之间的流转全靠规则来驱动。

可能有的同学会说,这个业务用瀑布是写也问题不大嘛。那我再换一个更复杂一些的业务流程,大家是不是就可以看出业务编排的优势,下面给大家一个商城搜索接口的业务逻辑图:

【程序员日记】——从业务编排到低代码 | 京东云技术团队

上面的案例是笔者在采灵通系统开发中真实的一个案例,笔者最开始是采用瀑布方式实现的该搜索关键字处理逻辑。但之后进行了重构,通过引入开源框架liteFlow的业务编排框架,极大的简化的业务复杂度。基本可以实现流程图即代码的程度。具体代码就不贴在此处了,如果大家该兴趣,可以去研究一下liteflow这个业务编排开源框架。

从业务编排晋升为低代码框架

从业务编排晋升为低代码框架,需要改进几个地方,第一个就是流程节点的Node, 在业务编排中,Node节点是一个可以自定义的业务模块,可以由程序员自行写业务逻辑。业务编排做到的是把复杂的业务变成简单的业务,但简单的业务也是需要开发的。如果我们把简单的业务也原子化和配置化,那么就可以成为一个入门级的低代码框架了,那么,我们的架构该如何调整呢?

【程序员日记】——从业务编排到低代码 | 京东云技术团队

首先我们需要将Node节点晋升为微流程节点,同时需要元数据模型支持。在微流程节点内,我们可以自定义CRUD模块,也可以自定义动作和发布时间,所有的缓存,查询都会定义为一个个的微流程节点,当微流程节点丰富度可以覆盖我们的业务代码需求时,我们就可以是先业务开发的配置化。然后在配合部署管理模块,实现代码的一键发布,这样就实现了一个简单的低代码框架。而这也是所有主流的商用低代码框架的思路。

总结

业务编排是实现低代码的路径之一,但不是唯一路径。尤其是当我看到ChartGPT4.0出来之后,人工智能,可以通过一个网页草图自动生成html代码时,我觉得,这可能才是低代码的最终归宿吧。

作者:京东物流 赵勇萍

内容来源:京东云开发者社区文章来源地址https://www.toymoban.com/news/detail-454838.html

到了这里,关于【程序员日记】——从业务编排到低代码 | 京东云技术团队的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 程序员业务,微信全文搜索技术优化

    一、iOS微信全文搜索技术的现状 全文搜索是使用倒排索引进行搜索的一种搜索方式。倒排索引也称为反向索引,是指对输入的内容中的每个 Token 建立一个索引,索引中保存了这个 Token 在内容中的具体位置。全文搜索技术主要应用在对大量文本内容进行搜索的场景。 微信终端

    2023年04月11日
    浏览(47)
  • 一个程序员的工作日记--每天就干两件事,一年后让别人刮目相看

    在当今快节奏的社会中,人们的精力和注意力往往被分散到太多的事情上,从而影响了工作效率和成就。但是,如果我们能够专注地做一两件事情,那么就可以把它们做到极致,进而发掘自己的潜能,实现成功和成就。成功源于专注,这已经成为了一个不争的事实。 每天早上

    2024年02月11日
    浏览(39)
  • 在京东工作8年的程序员,35岁被裁拿到30多万的赔偿,终于自由了

    在江东工作8年的程序员35岁被裁员 拿到了30多万的赔偿 终究呢还是没逃过35岁的魔咒 这位程序员呢 就是我老婆 她今年刚好35岁 这种情况已经见过不怪了 在我认识的中 有很多有这样的经历的人 还有一个我有亲戚 前段时间也是被百度裁员了 到现在还没找到工作呢 他是刚刚

    2024年02月02日
    浏览(63)
  • 程序员为啥要做副业(05)-业务解决方案缔造

    除了技术,副业也可以帮助我们在业务上获得新认知,保持敏感性。 之前我们在做程序员职业成长服务的时候,发现了一个问题。很多初阶的程序员没法升到中高阶,有两个很大的非技术影响因素: 每个程序员即使把自己的潜力发挥到极致,成为十倍开发者( 10x developer),

    2024年02月05日
    浏览(43)
  • 低代码——面向程序员,帮助程序员敏捷开发

    低代码是一套可视化开发工具,它帮开发者把前后端基础功能写扎实,开发者只需要 通过填表配置或拖拽生成前端组件 的方式,即可完成后台管理系统的快速搭建。由于低代码仍需要 写少量 JS 代码 ,所以低代码开发平台主要面向程序员,帮助程序员敏捷开发。 本文使用

    2024年02月01日
    浏览(54)
  • 《程序员的炫技代码》

      程序员,这个职业总是让人感到神秘而又充满魅力。他们手中的代码常常充满了令人惊叹的炫技操作,让人不禁感叹他们的技术能力之高。在这篇文章中,我想和大家分享一些我所知道的程序员的炫技代码。 一行代码实现斐波那契数列 斐波那契数列是一组数列,其中每个

    2024年02月06日
    浏览(48)
  • 无代码时代来了,程序员会失业吗?不,程序员又不够用了!

    有人问我无代码时代来了,程序员会失业吗?太难了,秃了头就算了,连工作也保不住了? 先说观点: 并不会 因为,无代码不是真正意义上的 无代码 。 “无代码”开发平台可以说是为“编程小白”量身打造的,使用者无需编程语言基础,通过简单拖拽、连接应用程序模块

    2024年02月03日
    浏览(61)
  • 程序员的炫技代码写法

    程序员,这个职业总是让人感到神秘而又充满魅力。他们手中的代码常常充满了令人惊叹的炫技操作,让人不禁感叹他们的技术能力之高。在这篇博客中,我想和大家分享一些我所知道的程序员的炫技代码写法。 一、代码美感——灵动转换 美感是良好的编码风格的基础,也

    2024年02月08日
    浏览(63)
  • 程序员如何提高代码能力?

    作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以

    2024年02月01日
    浏览(55)
  • 程序员如何提高代码能力

    C++ 是一种功能强大的编程语言,广泛应用于操作系统、数据库、游戏开发等领域。而要成为一名优秀的 C++ 程序员,不仅需要掌握 C++ 的基本语法和特性,还需要不断提高自己的代码能力。 以下是一些具体的方法和建议,帮助你提高 C++ 代码能力: 阅读优秀的代码 阅读优秀代

    2023年04月25日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包