0. 写在前面
"一个人维护一套微服务?" "20天从零写一个带编译器的低代码平台?" 放在 2023 年,我会觉得你在吹牛。 但在 2026 年,如果你还觉得这不可能,那你可能真的低估了 AI (Agent) 的力量。
本文如果不聊虚的,直接复盘我刚刚封版的一个工业级项目------Sentinel-K 电力数据融合平台 。 历时 24天 (1.21 - 2.13),我一个人 ,加上 Cursor (Claude-3.5-Sonnet) ,完成了以前需要一个 5 人小队(后端x2 + 前端x1 + 测试x1 + 产品x1)干两个月的工作量。
1. 成果展示:这到底是个啥?
这不是一个简单的后台管理系统,而是一个 "算子编排与执行引擎" 。
-
核心能力 : 用户在前端 (AntV X6) 拖拽算子,画出一张流程图。后端实时将这张图 编译 成可执行代码,并在 TDengine 海量时序数据流中跑起来。
-
技术栈 (The Stack) :
- 内核: JDK 17 + Spring Boot 3.4
- 大脑 (编排) : LiteFlow (国产规则引擎之光)
- 存储: TDengine (时序数据库) + MySQL 8 (元数据)
- 前端: Vue 3 + TypeScript + Tailwind CSS v4 + AntV X6
- AI 助理: Cursor + Sentinel-K 规约
2. 核心难点:AI 是怎么帮我破局的?
在这个项目中,我有三次差点想放弃,都是 AI 即使把我拉回来的。
难点一:手搓编译器 (Graph -> EL) 🤯
挑战 : 前端 X6 传过来的是一个巨大的 JSON (Nodes + Edges),后端 LiteFlow 需要的是精简的 EL 表达式 ( THEN(a, WHEN(b, c), d) )。这中间需要一个 Compiler ,涉及 DAG 环路检测 、拓扑排序 和 AST 转换。
传统做法: 翻《编译原理》,手写递归,大概率栈溢出。
AI (Vibecoding) 做法 : 我给 AI 下达了一个 Intent (意图) :
"我的意图是将 X6 JSON 转换为 LiteFlow EL。请实现一个
Compiler类。
- 先用 Kahn 算法检测有没有环,有则报错。
- 识别所有入度为 0 的节点作为 Start。
- 递归遍历下游,遇到分叉生成
WHEN,遇到串行生成THEN。- 反向测试 : 给我造一个带环的死循环 JSON,你的代码必须能拦截并抛出
CircularDependencyException。"
结果: AI 在 30 秒内生成了完美的递归逻辑。我只负责为它写了 5 个极端的测试用例(包括一个极其复杂的嵌套并联),全部一次通过。
难点二:高并发下的"惊群效应" 🌊
挑战: 平台不仅要跑,还要承载数千个测点的秒级计算。SnailJob 调度器一触发,CPU 瞬间飙升 100%,数据库连接池爆满。
AI 做法 : 我问 AI:"如何平滑秒级任务的洪峰?" AI 并没有给我推销 Redis 队列(太重),而是利用 Sentinel-K 架构思维 提出了一个 Project-Specific 的方案:Execution Jitter (执行抖动) 。
代码逻辑:
Thread.sleep(instanceId % 6000)。 利用每个任务的 ID 对 6 秒取模,强行把数千个任务打散在 0-6 秒内执行。
代码只有 3 行,但瞬间削平了 CPU 峰值。这就是 "指挥官思维" ------ 用最小的成本解决最大的问题。
难点三:TDengine 的方言适配 💾
挑战: TDengine 的 SQL 语法(超级表、Tags)和标准 MySQL 不一样,MyBatis-Plus 根本不支持。
AI 做法 : 我把 TDengine 的官方文档喂给 AI(作为 Context Pack),然后命令它:
"帮我生成一个
TDengineMapper模板。
- 使用
INSERT INTO ... USING ... TAGS语法。- 自动处理时间戳精度(毫秒转微秒)。
- 封装成泛型方法,不要让我每次都写 SQL。"
它写了一个通用的批量写入器,我现在写数据只需要调 insertBatch(list),完全感知不到底层的方言差异。
3. 一个人的团队:Sentinel-K 规约
很多人问:"AI 写代码一时爽,维护火葬场。你这一万多行代码怎么维护?"
秘密在于 Sentinel-K 开发规约。 我从来不把 AI 当作"生成器",我把它当作"下属"。
- SOLID 资产: 接口定义、数据库 Schema、核心算法。这些文件被我锁死,AI 不许乱动。
- LIQUID 资产: 增删改查、DTO 转换、单元测试。这些文件 AI 随便写,写错了就删了重写。
- ADR 决策日志 : 我把"为什么选 TDengine"、"为什么用 Jitter"都记录在
.md文档里。每次对话前,AI 都要先读这些"家规",所以它永远不会忘记我们之前的约定。
4. 结语
这个项目让我确信了一件事:AI 不会取代程序员,但"全能型程序员"的时代来了。
在 Sentinel-K 体系下,你不需要精通 Vue 的每一个 Hook,不需要背诵 Netty 的每一个参数。你只需要懂得 架构设计 (Design) 和 验收标准 (Audit) 。
剩下的,交给 AI。
如果你对这套 "一人成军" 的开发心法感兴趣,或者想围观这个项目的架构源码,欢迎关注我即将上线的掘金小册 《Vibecoding 实战:AI 时代的编程生存指南》 。
下期预告:揭秘我是如何用"反向测试"逼 AI 自己给自己找 Bug 的。