【程序员日记】---从业务编排到低代码

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

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

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

如何理解低代码

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

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

当计算机刚起步的时候,大家还用打孔卡片来跑程序的时候,这时候一个牛逼的汇编语言可以说就是那个时代的低代码;再到后来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-454745.html

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

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

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

相关文章

  • 一个程序员的工作日记--每天就干两件事,一年后让别人刮目相看

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

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

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

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

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

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

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

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

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

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

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

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

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

    2023年04月25日
    浏览(40)
  • 程序员的炫技代码写法

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

    2024年02月08日
    浏览(52)
  • 程序员如何高质量重构代码?

    有道无术,术尚可求也,有术无道止于术。你好,我是程序员雪球,今天和你聊聊程序员重构代码那些事。   程序员重构代码的重要性不言而喻,但如何进行有效的重构呢?下面是一些建议和指导。 为什么要重构? 重构是提高代码质量和可维护性的重要手段,旨在在不改变

    2024年02月15日
    浏览(47)
  • 低代码时代来临,程序员如何保住饭碗?

    随着低代码/无代码时代的到来,程序员需要适应这一变化来保住他们的饭碗。虽然低代码/无代码平台能够简化应用程序开发过程,但仍然存在许多机会和挑战供程序员利用。 以下是一些程序员可以采取的策略来适应低代码时代并保住饭碗的建议: 深入了解低代码/无代码技

    2024年02月11日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包