什么是模块化设计
模块化设计是LinaPro的核心设计理念之一。其核心思想是:框架的所有功能均以解耦模块的形式存在,模块之间通过稳定接口协作,而非硬依赖彼此的内部实现。
每个模块都是一个完整、独立的功能单元,可以按需安装、启用、禁用或卸载,整个过程对系统的其他部分没有任何侵入性。模块之间的边界始终清晰,职责不重叠,也不相互干扰。
框架的模块化设计
LinaPro从设计之初就将模块化作为核心原则,而不是在框架成型后才加入的补丁式扩展。
-
内置能力按领域边界拆分:主框架(
lina-core)的每个能力域——认证、权限、用户、菜单、字典、参数、文件、调度、插件治理——均独立设计、独立演进,彼此互不渗透。每个能力域有清晰的入口和契约,外部只能通过公开接口访问,无法绕过边界直接调用内部实现。 -
插件系统是一等公民:插件不是框架的附加能力,而是框架扩展机制的核心。从框架立项之初,插件运行时就与主框架服务并列设计,具备完整的生命周期管理和治理模型。任何官方业务功能,都遵循与第三方插件完全一致的模块规范交付。
-
前后端同步模块化:每个插件同时拥有自己的后端服务、前端页面、数据库资源和权限声明,前后端作为一个完整的模块单元协同交付,而不是分离的两个半截。这意味着安装一个插件,就是安装了一个具备完整能力闭环的功能模块。
-
稳定的扩展接口:主框架向插件暴露定义良好的扩展点,插件只能通过这些扩展接口与主框架交互——注册路由、响应事件、过滤菜单等——永远不直接触碰主框架内部实现。这种边界设计让模块之间的依赖关系始终清晰可控,主框架的内部演进也不会意外破坏已有插件。
框架精简原则
LinaPro主框架的设计遵循一条简明的原则:只放核心的、通用的能力,能用插件提供的就交给插件。
主框架不是一个功能的集合地,而是一个稳定的能力底座。随着业务需求的增长,扩展的路径是丰富插件生态、添加新插件,而不是往主框架里堆砌新实现。这让主框架始终保持轻量,核心逻辑可控,对外演进更加稳定。
以云存储支持为例:接入七牛云或AWS S3这类对象存储时,具体的接入逻辑并不直接写在主框架里,而是由对应的存储插件提供实现。插件启用后,文件写入会自动路由到云端;主框架在这个过程中只承担一件事——定义存储接口的抽象。这层接口让不同的存储后端可以无缝切换,调用方无需感知底层实现的差异。
认证方式同理:LDAP、OIDC等认证协议的对接,主框架仅提供薄薄的一层认证接口抽象,具体的协议握手和用户映射逻辑由插件完成。这样的分工让主框架不必为每一种第三方集成而膨胀,开发者也可以灵活地按需扩展认证方式,而不依赖主框架的发布周期。
这一原则是LinaPro插件生态的立论基础:框架提供接口化的抽象能力,插件提供可组合的具体实现。两者各守边界、协同工作,让系统在面对多样化需求时始终保持结构上的清晰。
积木 vs 从零搭建
即便在AI时代,从零开发一个完整功能的成本依然不低:需求分析要消耗token,数据库设计要消耗token,前后端实现要消耗token,测试和调试还要消耗token。大量时间、精力和算力投入之后,新产出的功能模块也未必成熟稳定——往往需要在真实使用中经历多轮打磨,才能趋于可靠。
LinaPro的模块化设计提供了另一种路径。框架提供的模块和插件,本身就是经过大量时间、精力和token反复开发、测试、验证过的成熟积木。开发者借助AI只需极少的token来完成「组装」——描述需求、选择积木、配置组合——就能快速构建出稳定可靠的系统,而不是每次都从零开始造轮子。
成熟的积木,天然比重新造的轮子更稳定、更可预期。
两类积木
LinaPro提供两类积木供开发者选择:
-
主框架内置模块:框架核心服务中开箱即用的能力,包括用户与权限体系、字典与参数管理、文件存储、任务调度、插件治理等。这些模块随框架一同交付,无需额外安装,是每个项目的稳定地基。
-
官方插件生态:以独立插件形式交付的扩展能力,包括通用业务类插件(如组织架构、内容管理、监控审计等)和垂直行业类插件。官方插件生态将持续丰富,覆盖越来越多的常见业务场景。未来开发者可以通过组合官方插件,用极低的成本快速搭建出一个功能完整的业务系统。
模块的可组合性
模块化设计的价值不仅在于「有哪些积木」,更在于「如何灵活使用积木」。
LinaPro的模块具备完整的生命周期管理能力:
| 操作 | 说明 |
|---|---|
| 安装 | 注册模块的菜单、路由、权限和数据库资源 |
| 启用 | 激活模块,对用户可见可用 |
| 禁用 | 隐藏模块能力,已有数据完整保留 |
| 卸载 | 移除模块,可选择是否同步清理数据 |
每个操作都是原子的,对系统其他部分没有侵入性。禁用只是让能力不可见,并不破坏任何已有数据,重新启用后一切恢复如初。这种设计让系统可以在不停机、不改代码的前提下灵活调整能力边界,极大地降低了变更风险,也是「可持续交付」理念的具体体现。
模块化与 AI 原生的结合
在AI原生的研发工作流下,模块化设计的价值被进一步放大。
传统开发中,AI需要从零理解业务需求、设计数据结构、编写完整实现——每一步都在消耗算力,产出质量也参差不齐。在LinaPro的模块化体系中,AI的角色发生了本质转变:从「造砖」变成「搭房子」。
AI不再需要重复发明已经验证过的轮子,而是在成熟积木的基础上,专注于理解业务组合逻辑、选择合适的模块、完成针对性的配置与扩展。这样的分工让AI的精力集中在真正创造价值的地方——理解业务、做出决策、把积木组合成符合需求的系统。