登录社区云,与社区用户共同成长
邀请您加入社区
TDD(测试驱动开发)采用"先测试后编码"的逆向流程,通过"红-绿-重构"循环推进:红阶段定义失败测试,绿阶段实现最小化通过方案,重构阶段优化代码结构。在AI时代,TDD优势凸显——AI能快速生成测试用例,配合该流程可产出更健壮的代码。但需注意:复杂分支逻辑更适合TDD,而简单调用则收益有限;且频繁变更的需求会导致前期测试用例失效,反增开发成本。传统开发中TDD因耗时未被广泛采用,但AI辅助使其重
TDD 管的是"怎么把一件确定的事做对",SDD 管的是"先把这件事到底是什么想清楚"。对新手来说,不用纠结"该学哪个",它们解决的是软件开发里两个不同阶段的问题——而在 AI 帮你写代码的今天,"先把事情想清楚"这一步,正在变得比以前更重要。
我使用一个技能进一步扩展此模式。当会话开始退化时,该命令导出一个结构化交接文件,包含已完成工作、未决决策、需避免的陷阱和相关文件路径。下一个会话读取该文件,仅携带重要信息,没有会话臃肿。你也可以通过延迟加载工具来主动节省上下文。一个项目通过使用钩子,仅在用户提示触发关键词时注入技能定义,而不是在启动时预加载所有内容,从而为每次会话节省约15,000 token。所有这些背后的简单规则:一次对话只处
《AI辅助测试驱动开发实战指南》摘要: 本文针对AI生成代码缺乏测试覆盖的问题,提出结合TDD(测试驱动开发)的方法论。文章详解TDD红-绿-重构三步骤循环,提供AI生成测试用例的提示词模板和最佳实践,重点覆盖边界条件与异常场景。通过用户注册功能的完整案例,展示如何用AI高效生成单元测试、模拟依赖和验证交互。同时构建测试金字塔策略,推荐单元测试(70%)、集成测试(20%)、E2E测试(10%)的
传统开发流程里,需求文档写完,开发就开始写代码。规格如果写的话,往往夹在需求文档的段落里,或者散落在各个接口文档中,不是独立的一级产物。SDD 把这个顺序倒了过来:在动手写任何实现代码之前,先把"做成什么样算对",写成一份独立、完整、人能审的规格,审过之后,代码从规格生成。好的 spec 讨论的是场景——在什么情况下、解决什么问题、输入和输出是什么。它不讨论用什么框架、数据库怎么设计、服务怎么拆分
在古法编程时代,TDD 因为人力的局限性,成为了一座可望而不可及的象牙塔;而在 AI 编程时代,代码的生成和跑测成本被降到了近乎为零。TDD 的那套“红-绿-重构”规则,不再是束缚程序员的紧箍咒,反而成为了 AI 智能体在线上自主开疆拓土时最坚固的安全绳。
本文介绍了如何深度整合OpenSpec、Superpowers和Claude Code三种工具,提供三种CI/CD集成方案构建规范驱动开发(SDD)工作流。首先详细说明了10分钟环境搭建步骤,包括OpenSpec CLI安装、项目初始化等。重点阐述了三种联合工作模式:标准交接模式、嵌入式协作模式和轻量级TDD模式,并以"订单退款功能"为例演示标准交接模式的完整开发流程。最后给出
作为一名独立开发者,我最近大半年几乎每天都在和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 从一个“概率性文本生成器”转化为“确定性工程工具”的核心。开发者不直接写代
摘要 Midscene.js 是一套基于视觉识别的UI自动化运行时系统,其核心创新点在于将传统UI自动化流程重构为四个层次:视觉理解、设备执行、结果校验和报告记录。与传统的基于元素定位的自动化工具不同,Midscene采用"先识别屏幕内容再操作"的模式,通过截图让AI模型判断目标位置,再转换为设备坐标执行操作。该系统特别适用于selector不稳定、自绘界面复杂、弹窗变化频繁以
参数配置层是整个代码系统的“数据地基”,负责初始化整车、动力总成、电池及工况相关参数,为后续模型计算与算法寻优提供输入条件。该层通过硬编码与外部文件读取结合的方式,确保参数的灵活性与可维护性。本文解读的ECVT功率分流型混合动力客车DP能量管理代码,通过系统化的模块设计、精准的物理建模与严谨的算法实现,构建了一套完整的全局最优能量管理解决方案。代码不仅能够输出高精度的能耗与效率数据,还能为工程化的
Qt+OpenCV图像视觉框架全套源码上位机源码工具可扩展。除了opencv和相机sdk的dll,其它所有算法均无封装,可以根据自己需要补充自己的工具。基于 Qt5.14.2 + VS2019 + OpenCV 开发实现,支持多相机多线程,每个工具都是单独的 DLL,主程序通过公用的接口访问以及加载各个工具。包含涉及图像算法的工具、 逻辑工具、通讯工具和系统工具等工具。最近捣鼓了一个超有趣的项目—
今天的主角是下面这张图,它全景式展现了敏捷开发在不同粒度上的关注点。(看不清可以看最后的Slideshare) 这张图主体上是要给敏捷在不同粒度上下一个定义,并且告诉我们它的产出是“Working software” 从最内部的环开始看,什么是持续要做的呢?测试驱动开发(TDD),编译构建,集成,代码重构,协作开发,这些事情仿佛是心跳一样,
卡尔.波普尔的理论能很好的解释目前的科学, 艺术, 政治, 社会等方面一般性的问题. 它对软件开发过程中一些显而易见的问题有着明确的答案. 比如, 我们都知道我们无法证明软件已经没有Bug, 用波普尔的话说就是: 科学理论都是假说, 爱因斯坦的竞争理论表明对牛顿理论的即使如海王星发现般严格的检验都不能确保其正确性, 即对白天鹅的一千次观察都不足以断言黑天鹅的不存在. 能否证伪是科
嵌入式系统TDD策略这篇文章中主要介绍嵌入式TDD周期和如何不受跨平台问题影响而保持开发的步伐。我们看到了双目标系统的优势和如何包容在目标系统中测试所带来的风险。然后也解答了一些常见的关于TDD的疑惑。5.1目标硬件的瓶颈对于很多嵌入式项目来讲,并行进行硬件和软件开发是个现实。如果开发的软件只能在目标硬件上运行,你很可能会遭遇到下面的一个或多个浪费时间的因素。直到项目的后期硬件还没
契约也就是合约,是双方当事人意见一致并且要共同遵守的行为表示,服务的调用者和提供者就好比签订契约的甲方和乙方。契约测试就是验证签订契约双方的行为是否符合契约。通常我们并不知道服务间的依赖关系是怎样的,如每个接口的消费者是谁,相同的接口不同的消费者都需要哪些数据,这些消费者正在消费哪个版本的接口等,要在一个项目中厘清这些问题显然有些困难,哪怕管理做得再好,也不可能面面俱到,而且文件记录和实际情况往往
编辑。
所以,直接用手机号注册这个功能是不需要的,真正需要的是绑定邮箱和手机号的功能。在开发过程中,开发人员可以不断的调试这个功能,通过测试>失败>修改/重构>测试>成功的过程,使开发的代码符合预期,而不是等所有功能开发完成后,再将一个笨重的产品交给测试人员进行一个长周期的测试,发现缺陷后再整个打回来修改,然后由此又可能会引入新的缺陷。因为在TDD过程中编写的测试用例,首先一定是贴合用户实际需求的,然后又
之前已经说过很多关于敏捷开发的东西,过多的鸡汤就不再鳌述。其实,敏捷开发已经成为常态化,随着计算机与网络技术的日渐成熟,互联网以及以互联网为平台的各种网上应用如火如荼,在给传统产业带来无限商机的同时,也带来更多的挑战。首先,经历多年的激烈竞争历程,企业之间的竞争已达白热化状态,产品生命周期愈来愈短,产品更新换代速度愈来愈快,为企业盈利的新产品寿命比工业社会的产品明显缩短。随着BTOB(企业对企业)
本文探讨了如何将测试驱动开发(TDD)理念应用于AI技能开发,提出"技能TDD"方法论。作者指出未经测试的AI技能在真实场景中容易被Agent合理化绕过,强调必须通过RED-GREEN-REFACTOR三阶段验证:首先在不加载技能的情况下观察Agent的真实失败(RED);然后针对观察到的失败编写最小技能(GREEN);最后通过迭代优化使技能具备"防弹"能力
单元测试便宜又快,可以多写。E2E测试贵又慢,要少写。如果你反过来,80%的测试是E2E,那你的CI流水线会跑半小时。没人愿意等。而单元测试可以在几秒内跑完上千个用例,给你快速反馈。项目类型建议覆盖率说明核心业务逻辑80-90%关键路径必须覆盖工具库90%+被广泛使用,需要高可靠UI组件50-70%主要测逻辑,不测样式原型/MVP30-50%快速验证,后续补充遗留代码逐步提升改哪里,测哪里记住:覆
无桥PFC和逆变方案(原理图pdf+PCB+stm源码两份+仿真等文件)1.输入电压AC220V,50Hz交流电2.PFC输出390V,150KHz开关频率3.PFC输出最大功率400瓦,输入电流最大2A,最小负载电流0.1A输出功率越大PF值越高,电流波形越接近正弦因为小电流时纹波电流占比大5.电压电流采样电路原理,环路补偿算法,STM32库函数操作,GPIO,ADC,DAC,HRTIM等。
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}\),哦刚才伪代码里把电流微分的小尾
tdd
——tdd
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net