这款自研底层框架,你说不定已经用上了

大家好,我是陈哥。

当下,国产化替代稳步推进,不少企事业单位对工作中所用的到信创产品提出了更高的要求。硬件、操作系统和数据库等产品的国产化替代受到了一定的重视,但底层框架的国产化同样不容忽视。

正如华为创始人任正非所说:"核心技术是买不来的,只有自主创新才能立于不败之地。" 这与禅道的观点不谋而合,我们一直在不断探索和优化软件的架构。

《国产化替代是个伪命题?被误解多年的开源软件,如今怎么样了?》一文中,我提到禅道正处于创新迭代阶段。在这篇文章,我打算从技术视角切入,和大家深入聊聊禅道软件的底层框架。


一、自主研发的框架,为国产化加速

禅道团队完全自研了 「前端框架ZUI 3」「底层开发核心框架ZenTaoPHP」,协同打造了集成交付的环境。此外,还围绕着研发管理领域,打造了一个丰富的软件生态,以满足客户的各种场景的需求。

支撑禅道前台页面展示交互的框架:ZUI 3

ZUI框架是禅道团队在完善自己产品过程中形成的一个开源前端实践方案,同时也是禅道项目管理软件的基础UI框架。ZUI 3作为一个开源的UI组件库,提供了大量实用组件,支持最大限度的开发定制,不依赖任何其他JS框架,可以在任何Web应用中通过原生的方式使用。

ZUI 3功能特性如下:

这些特性使得ZUI 3不仅能够满足企业内部项目管理系统的开发需求,还为其他Web应用的开发提供了灵活且高效的前端解决方案,为国产化替代进程中的软件开发提供了有力支持。

支撑禅道实现任意功能扩展的底层框架:ZenTaoPHP

禅道项目管理系统的核心框架是ZenTaoPHP,将系统的业务逻辑、数据处理和界面展示分离,使得系统结构清晰,易于维护和扩展。

通过ZenTaoPHP框架,禅道实现了对项目管理全流程的覆盖,包括产品管理、项目管理、测试管理等核心功能。

ZenTaoPHP框架具有以下特点:

目前,禅道已经将ZenTaoPHP 框架的版权完全捐献给了公众领域。任何人或者任何单位可以用ZenTaoPHP框架做任何的使用,而没有任何的限制,包括重新发布、改名、商用等等。


二、灵活的扩展机制,自定义你的软件

我在一次拜访客户时,聊到他们公司过往的管理软件使用经历。他提到,以前他们想在原有软件基础上进行功能扩展和定制,但是实现起来比较难。那些软件大多是黑盒式架构,扩展机制限制比较多,他们很难深入修改代码。但在迁移到禅道后,情况大为改观。

这是因为禅道软件在设计ZenTaoPHP框架之初,就特别注意框架的扩展性,想要为企业提供灵活、高效、低成本的扩展机制。开发者只要按照禅道的扩展机制,把相应的扩展代码部署到对应的目录,即可实现对现有功能的重新定义或者新增功能。

禅道软件的功能都是由一个个的模块组成的,通过ZenTaoPHP框架的扩展机制,可以实现对任一层的扩展。每个模块会对应到Module下面的一个目录,比如Project、User等模块。每个模块下按照MVC进行划分,有自己的Control(控制层)、Model(模型层)和view(视图层)。同时,我们还补充了其他几个辅助的概念:Config(配置)、Lang(语言)、CSS(样式)和JS(js脚本)。

用户可以使用PHP、HTML、CSS或者JS代码来对现有的代码功能进行改动。更值得一提的是,禅道扩展机制能做到扩展代码与主干代码物理隔离,这样就不用担心主干代码升级时,会覆盖扩展代码。

这种"核心稳固+灵活扩展"的架构设计,使禅道既保证了基础系统的稳定性,又为企业预留了充足的创新空间。通过分层解耦的扩展机制,企业可根据业务需求在任意层级进行功能增强,既能快速响应业务变化,又能避免重复造轮子,真正实现"自主可控不设限,敏捷扩展有章法"。


"国产替代不是简单的替换产品,而是要构建起一个从底层技术到顶层解决方案完全自主可控的产业链。这不仅是一场技术较量,更是一场民族工业崛起的马拉松。"

这些框架的出现,体现了国内企业在软件开发基础架构领域的自主创新能力。它们的存在,使得企业能够在软件开发过程中减少对外部技术的依赖,逐步实现从底层技术到应用层面的自主可控。

这正是国产化替代战略在软件领域的重要体现,也是推动我国软件产业走向自主可控、安全可靠的关键一步。

相关推荐
uzong2 小时前
技术故障复盘模版
后端
GetcharZp2 小时前
基于 Dify + 通义千问的多模态大模型 搭建发票识别 Agent
后端·llm·agent
加班是不可能的,除非双倍日工资3 小时前
css预编译器实现星空背景图
前端·css·vue3
桦说编程3 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
IT毕设实战小研3 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
wyiyiyi3 小时前
【Web后端】Django、flask及其场景——以构建系统原型为例
前端·数据库·后端·python·django·flask
gnip4 小时前
vite和webpack打包结构控制
前端·javascript
excel4 小时前
在二维 Canvas 中模拟三角形绕 X、Y 轴旋转
前端
阿华的代码王国4 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
一条上岸小咸鱼4 小时前
Kotlin 基本数据类型(三):Booleans、Characters
android·前端·kotlin