登录社区云,与社区用户共同成长
邀请您加入社区
TDD(测试驱动开发)采用"先测试后编码"的逆向流程,通过"红-绿-重构"循环推进:红阶段定义失败测试,绿阶段实现最小化通过方案,重构阶段优化代码结构。在AI时代,TDD优势凸显——AI能快速生成测试用例,配合该流程可产出更健壮的代码。但需注意:复杂分支逻辑更适合TDD,而简单调用则收益有限;且频繁变更的需求会导致前期测试用例失效,反增开发成本。传统开发中TDD因耗时未被广泛采用,但AI辅助使其重
TDD 管的是"怎么把一件确定的事做对",SDD 管的是"先把这件事到底是什么想清楚"。对新手来说,不用纠结"该学哪个",它们解决的是软件开发里两个不同阶段的问题——而在 AI 帮你写代码的今天,"先把事情想清楚"这一步,正在变得比以前更重要。
传统开发流程里,需求文档写完,开发就开始写代码。规格如果写的话,往往夹在需求文档的段落里,或者散落在各个接口文档中,不是独立的一级产物。SDD 把这个顺序倒了过来:在动手写任何实现代码之前,先把"做成什么样算对",写成一份独立、完整、人能审的规格,审过之后,代码从规格生成。好的 spec 讨论的是场景——在什么情况下、解决什么问题、输入和输出是什么。它不讨论用什么框架、数据库怎么设计、服务怎么拆分
在古法编程时代,TDD 因为人力的局限性,成为了一座可望而不可及的象牙塔;而在 AI 编程时代,代码的生成和跑测成本被降到了近乎为零。TDD 的那套“红-绿-重构”规则,不再是束缚程序员的紧箍咒,反而成为了 AI 智能体在线上自主开疆拓土时最坚固的安全绳。
作为一名独立开发者,我最近大半年几乎每天都在和AI(Cursor、Copilot、Claude)一起写代码。AI经常“理解错”我的意图。我说“加一个用户登录功能”,AI自作主张加了邮箱验证、找回密码、记住我……我说“优化性能”,AI重构了整个架构,改了一堆我根本不想改的地方更糟糕的是,AI写了一大堆代码,跑起来全是Bug,我甚至不知道该从哪儿开始测试直到我把TDD(测试驱动开发)和BDD(行为驱动
摘要:AI时代软件开发方法论的演进与挑战 本文探讨了在AI编程工具兴起的背景下,传统软件开发方法论(TDD、BDD、DDD)与新范式(SDD)的定位与价值。文章首先梳理了五种"DD"方法论的演进历程:从TDD的测试驱动、BDD的行为描述、ATDD的验收标准,到DDD的领域建模,再到新兴的SDD规范驱动。这些方法分别解决了代码正确性、业务理解一致性、功能完成标准、业务复杂性映射等
DDD 分层架构在 Java 里有 Spring 做依赖注入,在 Rust 里怎么办?本文记录了我在 Pico-CRM 项目中用 Rust trait + 泛型 + 构造器注入实现 domain/application/infrastructure 三层架构的完整过程。没有 DI 容器、没有框架黑魔法,靠 Rust 类型系统本身就实现了严格单向依赖。包含各层真实代码、mock 测试方案、trait
要让AI在Spring Boot项目中落地TDD开发,需通过配置文件约束、环境集成和指令诱导三管齐下。关键是在项目根目录创建claude.md文件,明确规定TDD流程:测试先行、红灯运行、最小实现、绿灯验证和重构。同时确保AI能操作终端运行测试命令,并通过精准指令引导AI按TDD步骤开发。针对Spring Boot项目,还需加入特殊校验技巧如JsonPath校验、数据库回滚和依赖模拟。这种模式下,
简单来说,TDD for AI就是在让 AI(如 Claude Code, Cursor, GPT-4)编写逻辑代码之前,先由人工或 AI 定义好自动化测试用例。需求 -> 人写代码 -> 人写测试 -> 运行。需求 ->定义测试(断言结果)->AI 生成代码->自动运行测试->AI 根据报错自修复-> 成功。它是将 AI 从一个“概率性文本生成器”转化为“确定性工程工具”的核心。开发者不直接写代
参数配置层是整个代码系统的“数据地基”,负责初始化整车、动力总成、电池及工况相关参数,为后续模型计算与算法寻优提供输入条件。该层通过硬编码与外部文件读取结合的方式,确保参数的灵活性与可维护性。本文解读的ECVT功率分流型混合动力客车DP能量管理代码,通过系统化的模块设计、精准的物理建模与严谨的算法实现,构建了一套完整的全局最优能量管理解决方案。代码不仅能够输出高精度的能耗与效率数据,还能为工程化的
本文探讨了如何将测试驱动开发(TDD)理念应用于AI技能开发,提出"技能TDD"方法论。作者指出未经测试的AI技能在真实场景中容易被Agent合理化绕过,强调必须通过RED-GREEN-REFACTOR三阶段验证:首先在不加载技能的情况下观察Agent的真实失败(RED);然后针对观察到的失败编写最小技能(GREEN);最后通过迭代优化使技能具备"防弹"能力
单元测试便宜又快,可以多写。E2E测试贵又慢,要少写。如果你反过来,80%的测试是E2E,那你的CI流水线会跑半小时。没人愿意等。而单元测试可以在几秒内跑完上千个用例,给你快速反馈。项目类型建议覆盖率说明核心业务逻辑80-90%关键路径必须覆盖工具库90%+被广泛使用,需要高可靠UI组件50-70%主要测逻辑,不测样式原型/MVP30-50%快速验证,后续补充遗留代码逐步提升改哪里,测哪里记住:覆
AI编程时代TDD为何焕发新生?随着AI代码生成速度提升,其代码质量缺陷也日益凸显。测试驱动开发(TDD)因其"先测试后编码"的特性,正成为AI编程的黄金搭档。
现在大家都在使用ai写代码,手写代码的时代慢慢过去了,但是现在有一个问题,就是如何判断ai写的代码有效,这就离不开测试用例。那么应该先写代码,还是应该先写测试用例呢,今天主要说下TDD。TDD(Test-Driven Development,测试驱动开发)是一种开发方法,其核心流程是:RED:先写测试(且必须失败)GREEN:写最小实现让测试通过REFACTOR:在测试保护下优化代码这里最重要的一
本文系统介绍了SDD、TDD、DDD三种软件工程方法论在AI编程时代的应用。TDD通过"红-绿-重构"循环确保代码质量;DDD以业务领域为中心实现业务与技术的深度契合;SDD作为AI时代新兴方法,强调规范先行驱动全流程开发。三者形成互补体系:DDD解决业务建模,SDD实现规范定义,TDD保障代码质量,共同构建AI编程工程化闭环。文中列举了各方法的代表项目和实践案例,展示了三种方
模糊 PID 在桥式起重机防摇控制中确实是个实用的思路。它不像纯模糊控制那样完全抛弃 PID 的精度,也不像固定 PID 那样死板。通过模糊规则把人的经验融入参数调整,实现了“软硬结合”。但也要注意,模糊规则的设计很考验经验,调不好反而会引入振荡;而且实时计算量比固定 PID 大,对硬件有一定要求。另外,如果系统动力学参数变化剧烈(比如吊重质量大变),可能还需要更高级的自适应方法。/project
dataclass“”“用户输入数据模型”“”age: intemail: str@dataclass“”“用户数据处理结果模型”“”is_valid: bool# 数据是否合法msg: str# 处理提示信息data: Optional[Dict[str, Any]] = None# 处理后数据TDD测试用例(基于SDD规格)
冲击是有的,但加了个简单的电流平滑和角速度平滑过渡策略,I-f的参考电流在切换前100ms从设定的I-f启动电流(2A)慢慢降到ESO闭环的q轴参考电流(根据转矩计算的,TMotor AK80-6裸机额定电流大概10A,轻载0.5A左右),角速度平滑用的是一个简单的一阶低通滤波器,时间常数50ms,切换的时候示波器看电流和轴速的波形,几乎没有尖峰!q)}{dt}\),哦刚才伪代码里把电流微分的小尾
MATLAB/Simulink搭建电动助力转向模型,EPS模型,包括PID控制算法,传递函数回正控制,有完整的模型公式搭建过程,可直接仿真出图像,参数自己数据齐全,建模过程详细!MATLAB/Simulink搭建电动助力转向模型,EPS模型,包括PID控制算法,传递函数回正控制,有完整的模型公式搭建过程,可直接仿真出图像,参数自己数据齐全,建模过程详细!视频操作,截图说明,简单易懂,一一对应。视频
摘要:本文揭示了AI编程的高效开发模式SDD+TDD,通过规格驱动和测试驱动开发,将AI从“随机盲盒”升级为“精准巡航”。文章对比了野路子与正规军开发模式的差异,展示了4天开发Agent评测系统的实战案例,强调80%机械工作由AI完成,20%创造性工作由人把控。核心观点是:清晰规格和测试标准能解放AI生产力,开发者需从编码者转型为“导演”角色,通过SDD+TDD实现10倍效率提升。(149字)
基于储能电站服务的冷热微网系统双层优化建立考虑不同时间尺度问题的双层规划模型上层负责求解长时间尺度的储能配置问题下层求解短时间尺度的微网优化运行问题才用KKT条件将双层转化为单层又采用大M法将模型线性化处理最后用cplex/gurobi求解器进行求解在能源领域,基于储能电站服务的冷热微网系统双层优化是一个充满挑战与机遇的课题。今天就来跟大家分享下其中的关键思路与实现过程。