Harness新范式:建模驱动开发

课程 ID: 19184

描述:
话题概述: 当前 AI Coding 工具在企业级复杂系统中面临“结构不可控、上下文幻觉、资产难维护”的落地困境,代码采用率往往不足 10%。本演讲将分享 Toco AI 探索的 “建模驱动开发 (MDD) + LLM” 新范式。 演讲题纲: 1. 痛点:为什么 Chat-to-Code 在复杂系统中失效? (5 min) - 现象: “Vibe Coding” 的繁荣与企业级落地的“10% 采用率”悖论。 - 根因分析: - 熵增效应: 概率性生成导致代码同义异表(Same Intent, Different Code),维护成本指数级上升。 - 信任危机: 上下文窗口限制导致的“结构性幻觉”(引用不存在的类/循环依赖)。 - 结论: 在 AGI 到来前,必须引入“中间层”(DSL)来锁定确定性。 2. 新范式:构建“神经符号”双核架构 (10 min) - 核心设计: Agent (右脑/概率) + Engine (左脑/确定性)。 - Agent 职责: 意图理解、模糊匹配、非结构化胶水代码生成。 - Engine 职责: 拓扑计算、架构约束、DDD/CQRS 骨架渲染。 - 工作流解密: - Input: 自然语言需求 -> Output: 中间态 DSL -> Action: 静态语法校验 -> Result: 渲染标准 Spring 代码。 3. 关键技术实践与 DSL 边界 (15 min) - 技术点 1:DSL 的“克制”哲学 - 挑战: 如何避免重蹈 UML 覆辙(变得极其复杂且难用)? - 方案: 坚决不侵入 if/else。DSL 仅描述实体 (Entity)、聚合 (Aggregate) 和读写契约 (Contract)。 - 技术点 2:解决“N+1”与复杂查询的读写建模 - 方案: 引入 CQRS(读写分离) 策略。 - Write Model: 基于聚合根的事务一致性保障。 - Read Model: 基于 Toco-DTO 的自动组装器(Auto-Assembler)实现,解决跨表 JOIN 与脱敏。 - 技术点 3:从模型到代码的渲染机制 (M2C Engine) - 如何通过 AST 操作生成人类可读、可 Debug 的原生 Java 代码,而非二进制黑盒。 4. 踩坑经验与反直觉教训 (10 min) [重点] - 坑 1:Brownfield(存量系统)的阻抗失配 - 问题: 在“屎山”代码上强行叠加 MDD 模式遭遇失败。 - 认知迭代: 承认技术的适用边界。该模式最适合 Greenfield(新模块/重构)。对于老系统,采用“双模开发” + “防腐层(ACL)”策略。 - 坑 2:AI 并非全自动驾驶 - 问题: 试图让 AI 全自动设计架构,结果出现不合理的聚合边界。 - 认知迭代: 强调 Human-in-the-loop。人必须作为“架构审核员”介入 DSL 的确认环节。 - 坑 3:All-in Prompt 的失败 - 教训: 无论 Prompt 多精妙,无法解决长链路依赖。必须用 Engine 兜底结构正确性。 5. 实施效果与总结 (5 min) - 数据支撑: 某电商场景重构,Code Review 耗时下降 70%,架构类 Bug 归零。 - 终局思考: AI 时代,Code 是过程,Model 才是资产。 话题亮点: 1. 目前基于DSL实现的Spec coding在业内属于探索阶段,我们的方案完整实现了服务端的dsl spec coding的完整实现 2. 在大型团队管理、大项目上下文管理领域mdd模式展现出更易落地的能力