登录社区云,与社区用户共同成长
邀请您加入社区
西门子PLC自带的时间记录功能用过的都知道,那玩意儿就跟闹着玩似的,扫描周期造成的误差能气死人。西门子PLC精确计算设备运行时间程序,1200PLC和1500PLC通用,两次读取PLC的实时时间做比较,这样就可以不算入PLC每次扫描时间,非常准确的记录设备运行时间。PLC的扫描周期虽然不稳定,但两次读取动作发生在同一个扫描周期内,系统时间的差值刚好就是程序处理实际业务逻辑的时间。这段处理跨天的逻辑
但实际应用中,工程师更喜欢手动锁定工作模式。比如充电器设计中故意让轻载时进入DCM模式降低损耗,这时候Mathcad的变量联动功能就派上用场了——修改负载电阻值时,所有关联参数实时更新,比Excel的循环引用可靠多了。输入电压范围、输出功率、开关频率这些参数拍在桌面上时,Mathcad的符号运算能直接生成关键参数。不过别忘了,实际选型时得考虑散热条件,Mathcad里可以加个温升估算模块,避免纸上
不要对号入座。实际工作中别教条,bug修复、快速验证这些,直接上TDD修就行的,没必要为了方法论而方法论。如果你开始做一个有一定规模的新功能、新模块时,才值得花时间先写规格再动手。很多公司的代码规范和流程已经固定了,不可能因为你读了这篇文章就推倒重来。你可以在自己的新项目里试试"SDD在上、TDD在下"的工作流,感受一下跟"边写边想"的区别。
已知openspec一条命令有对应的skill。如果要在本地openspec的基础上扩充功能,比如扩充一条命令,需要找到本地路径。C:\Users\你的名字\.cursor\skills\opsx-superapply\├── SKILL.md ← 主编排器(146行)├── implementer-prompt.md ← 实现子agent提示词模板├── spec-reviewer-prompt
自动压缩在约83.5%触发,且是有损的:有开发者因此丢失了3小时的重构工作,压缩后只保留了约20%-30%的细节。Anthropic对偏离轨道的会话的建议非常坦诚:在让智能体工作前保存状态,让它运行,然后要么接受结果,要么重新开始,而不是费力纠正。智能体在无引导下的单步决策准确率可能很高,但当面对包含20个决策点的特性开发时,即便每步准确率80%,最终完全正确的概率也仅有0.8²⁰≈1%。Anth
作者是一名工龄 20+ 的嵌入式软件工程师,在探索 GitHub Copilot 结合 TDD 的过程中,总结出一套注释型提示词模板。用例命名采用"验证什么结果,通过做什么动作(verifyWhatResult_byDoWhatAction)"的句式,如。按这个模板写完整注释后,Copilot 能生成约 80% 的测试代码。,相当于告诉模型"参考答案在哪里",生成质量会直线上升。
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);最后通过迭代优化使技能具备"防弹"能力
tdd
——tdd
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net