跳到主要内容

软件开发技术的重大突破:从编程走向编排

· 阅读需 5 分钟

过去几十年,开发工具在编程能力上不断演进,但编排能力始终缺失。业务系统由门户、页面、组件、模型、服务等模块构成,这些模块的组织关系决定系统架构的质量,而传统开发工具缺乏可视化编排支持,系统结构隐藏在代码中难以维护。软件开发正在经历从编程为主到编程与编排并重的转变,面向编排的架构、框架和工具,在提升开发效率的同时保持架构的长期优雅。

编程与编排的本质关系

任何系统都由结构和过程构成。编程产生函数,将函数嵌入对象形成新的结构,这是编排;编排产生对象,在函数中使用对象实现业务流程,这是编程。二者互为补充、相互转化。

编程擅长表达过程逻辑,描述系统如何运行;编排擅长表达结构关系,描述系统如何组织。过去几十年的开发工具和框架在编程能力上不断演进,但编排能力始终缺失。大量对业务系统结构的管理工作依然是开发者个人能力的体现,而非工具和框架提供的系统性支持

传统开发范式的结构性缺陷

现有开发工具普遍缺乏模块编排能力,系统架构如何设计、模块如何组织、关系如何理清,完全依赖开发者自身经验。工具层面没有可视化编排能力,框架层面也不支持模块的可视化管理。

部分低代码平台试图通过DSL解决这一问题,但DSL的表达能力受限于设计者的预见性,面对复杂多变的企业需求力不从心。DSL引擎的封闭性使得技术集成能力严重受限,无法跟上现代技术生态的演进速度。在npm拥有数百万包、GitHub积累海量开源项目的今天,用户期待使用的新技术往往需要等待平台方的适配。

可视化的本质是结构表达

可视化开发的真正价值在于编排而非编程。将抽象的系统结构具象化,让开发者能够直观地看到系统模块及其关联关系,通过可视化方式进行组织和配置。这需要开放的编排协议而非封闭的DSL引擎,需要无限的扩展性而非受限的表达能力。

这要求从技术路线上实现根本转变:基于开放的架构协议构建系统,让每个模块都能自描述、可感知、可驱动;支持开发者自由扩展和集成各种技术实现,而不是受制于平台方的封闭生态。只有这样,可视化开发才能承载企业级应用的复杂需求。

面向编排的系统架构

JitAi基于开放的JAAP协议构建面向编排的系统架构。通过Meta/Type/Instance分层结构定义系统模块:Meta定义模块类别,Type封装技术实现,Instance承载业务配置。这种设计支持开发者无限扩展已有模块、无限集成新的技术实现。架构的开放性体现在每个模块都是自描述的,支持动态加载和热插拔,模块之间没有静态依赖,作为独立资源包可以在不同应用中自由复用。JitAi的可视化工具在支持编排的同时保留编程能力,开发者可以通过可视化方式组装模块、实时预览效果,系统自动生成的代码可以继续手工修改。

在业务系统层面,企业应用由门户、页面、组件、模型、服务、审批、事件、任务、权限、组织架构、登录方式、数据库等元素构成。JitAi开发框架将这些元素封装为不同的元素族类,提供大量开箱即用的Type元素,开发者通过创建Instance并进行可视化编排即可组装完整系统。这种可视化编排带来两个核心价值:其一是开发效率的显著提升,系统结构及模块关联关系清晰可见,无需在代码中反复查找依赖;其二是架构的长期优雅,结构问题在可视化界面上直接暴露,开发者会主动优化。传统开发中架构腐化往往源于结构的不可见性,当问题被发现时已经难以修复。

从编程走向编排,本质是对系统认知的深化。编程与编排不是对立选择,而是相辅相成的两个维度。面向编排的系统架构、开发框架、可视化工具以及应用代码,代表了软件开发技术的演进方向,也是企业级复杂应用开发的必然选择。