AI编程 擎天说

项目越做越多之后,我用 AI 做了一套可持续定制的软件底座

项目越做越多之后,我用 AI 做了一套可持续定制的软件底座
文章主图

这篇写了什么

项目越做越多之后,我用 AI 做了一套可持续定制的软件底座 在做中小企业数字化的过程中,我们遇到的需求往往很具体:同样是管理系统,不同企业的组织方式、业务流程、设备接入和数据口径都有差异。AI 让定制开发快了很多,于是项目很自然地多了起来,每个研发同时负责几个项目。 问题也随之出现。不同项目采用不同

项目越做越多之后,我用 AI 做了一套可持续定制的软件底座

在做中小企业数字化的过程中,我们遇到的需求往往很具体:同样是管理系统,不同企业的组织方式、业务流程、设备接入和数据口径都有差异。AI 让定制开发快了很多,于是项目很自然地多了起来,每个研发同时负责几个项目。

问题也随之出现。不同项目采用不同目录、接口格式、权限模型和页面写法,代码逐渐变得千奇百怪。原负责人还在时,靠经验可以继续推进;一旦换人,接手者需要重新理解整套系统。即使让 AI 先读代码,也会因为上下文缺乏秩序而消耗大量 token,读完之后还未必能准确找到业务边界。

我开始思考一个更长期的问题:既然定制会持续发生,能不能让每次定制都从同一个基础出发,再把差异收进独立模块?这个想法最终变成了 VUE+NOJS——一套面向 AI 二次开发的软件底座,可以由 DMP 平台构建、部署、在线定制,并下发到客户盒子。

先把“重复建设”重新定义成业务问题

最初看起来,这是代码风格不统一带来的维护问题。继续往下拆,我发现它实际影响了三个业务环节:项目启动速度、人员交接成本,以及后续升级能否稳定复用。

如果只统一技术栈,AI 依然可能在每个项目里重新设计登录、权限、组织、字典、文件、通知和审计。短期看,每次都能生成一套能跑的代码;时间一长,同一种能力会出现多个版本,修复无法同步,新增需求也很难判断应该改公共层还是业务层。

因此,我给 VUE+NOJS 确定了清晰定位:它是标准应用的起点。登录、租户、权限、国际化、文件、配置、消息等通用能力进入底座,客户特有的订单、流程、设备或其他领域需求进入业务模块。底座负责稳定契约,模块承载变化。

这个边界决定了后续所有工程选择。我的工作重点也从“完成某个页面”转向定义哪些内容应该复用、哪些内容允许变化,以及 AI 在什么范围内可以自主实现。

把想法拆成 AI 可以连续执行的结构

AI 参与复杂项目时,真正昂贵的是上下文混乱。文件再多,只要入口、边界和规则明确,它就能快速定位;结构含糊时,每次任务都要重新阅读和猜测。

我为底座建立了分层结构。前端集中处理路由、状态、国际化、主题和通用 UI,后端分为公共能力层与业务模块层。业务模块只能依赖公共能力,模块之间禁止随意引用。这样,AI 接到一个新需求时,可以先判断它属于底座还是业务,再进入有限范围工作。

文档也被纳入工程结构。架构索引负责说明系统全貌,AI 协作规范定义修改边界,任务进度记录当前状态,交接文档保存最近一次推送、修复点和未决事项。新增业务时,AI 无需遍历整个仓库,先读取入口文档和目标模块即可建立足够上下文。

这一步解决的核心问题是知识组织。代码、约束和任务状态拥有明确入口之后,模型读取成本才有机会随着项目积累下降。

用脚手架固定共性,把定制留给模块

有了边界,还需要让它变成可执行的动作。VUE+NOJS 为模块、接口、页面、数据库迁移和 AI 工具提供了脚手架。创建模块时,会直接生成约定好的结构;普通 CRUD 可以从统一样板继续扩展;需要给 AI 调用的能力,则通过带输入输出描述和安全级别的 MCP 工具接入。

这套方式没有试图消灭定制。它把定制集中到可识别的位置,让新模块天然继承登录、权限、响应格式、分页、错误处理、国际化和界面规范。前端模块还可以通过注册机制向门户添加摘要卡片,流程、IoT 等能力能够沿着相同边界扩展。

我在这里承担的是方案组织和结果校准:先给 AI 明确模块目标、依赖范围和验收条件,再让它完成实现;如果某种写法在多个业务中重复出现,就将它提升为底座能力,减少下一轮复制。这样积累下来的成果会进入系统,而不会只停留在某次对话里。

让规则进入检查器,而不是停在文档里

只靠提示词约束 AI,稳定性很有限。上下文变化、任务跨度增加之后,模型可能遗漏响应结构、模块边界、软删除、时间格式或样式规范。VUE+NOJS 把这些约定做成了自动检查。

仓库中已经形成 39 项硬约束扫描,并由统一的质量流程串联类型检查、单元测试、规则校验、代码风格、样式和国际化审计。提交前会自动执行质量检查,面向 DMP 部署还有独立预检。AI 产物能否合入,最终由可重复执行的门禁判断。

我也会专门处理自动生成难以覆盖的跨系统细节。例如部署启动时,数据库迁移和初始化数据必须先完成,服务端口才能进入可用状态。否则编排平台可能在业务尚未就绪时探测到端口,随后把健康检查判成失败。VUE+NOJS 将启动顺序、健康状态和降级能力明确拆开,使“进程启动”与“业务可用”保持一致。

这种判断体现了我在项目中的角色:理解部署平台如何工作,识别 AI 实现中的边界风险,再把修正沉淀为所有后续模块共同遵守的机制。

从一次性交付走向持续可交接

VUE+NOJS 已经可以生成具备登录、CRUD、仪表盘和通知能力的最小应用,也承载了流程、IoT、调度、消息、搜索、指标以及 AI 会话等扩展方向。对我来说,更重要的成果是建立了一条稳定路径:需求先归类,差异进入模块,共性回到基座,AI 按明确边界实现,质量门禁负责验证,DMP 完成构建和部署。

人员更换时,接手者可以从架构索引、任务进度和模块说明开始,不必先把所有代码完整读一遍。模型也能围绕目标模块获取上下文,减少无效 token 消耗。后续出现新的企业需求,我关注的重点已经变成业务规则、数据边界和交付条件,然后组织 AI 在既有体系中完成扩展。

这次项目让我更确定,AI 时代的工程能力会更多体现在如何定义问题、组织上下文、建立约束和验证交付。VUE+NOJS 就是这套方法的落地结果:它把不断增加的定制项目,收敛成一个可以持续复用、持续扩展、也更容易交接的产品基础。