/
May 30, 2025
/
#
Min Read
随着汽车软件复杂性的持续上升,工程团队正在转向人工智能辅助工具,以提高开发人员效率、减少错误并保持安全关键系统的质量。在Sibros,我们采用了Cursor IDE、Windsurf、Cline、Claude Code和其他大型语言模型(LLM)等工具来支持我们的联网汽车平台的开发——从OTA更新到数据记录和诊断。
在本文中,我们将分享将 AI 编程助手集成到您的工作流程中的实用模式、经验教训和技巧,尤其是嵌入式和基于云的汽车软件的技巧。这些不是理论上的想法,而是真实的应用方法,我们正在将其纳入日常工作流程中以构建生产系统。你也可以。
在汽车系统中, 在设计阶段早期犯下的错误在以后修复时会付出高昂的代价。 在 OTA 更新编排或日志流等紧密耦合的服务中尤其如此。借助 Cursor IDE,我们从使用人工智能进行广泛规划来共同设计我们的系统,开始所有新功能。
我们提示LLM定义服务职责,草拟领域模型并预测通信合同。
我们正在为 OTA 软件更新构建部署服务。请概述:
提示示例:
这种前期设计可以减少以后的流失率,并使整个团队在架构决策中保持一致。
开箱即用,LLM 没有关于您的特定回购的上下文。那就是那里 .cursorrules 文件进来了。可以把它们看作是你项目的 AI 入门文档。
我们用它们来定义:
示例片段:
这使人工智能能够完成符合我们风格的代码,并避免内部不一致。
汽车代码经常涉及关键功能,例如固件更新、制动控制器或遥测诊断。这意味着 AI 生成的代码必须是可测试、可预测和可验证的。
我们使用 “测试优先” 的提示方法:在要求人工智能编写逻辑之前,先定义成功是什么样子。
提示生成测试:
这可确保 AI 在限制条件下运行,并避免下游出现不良行为。
我们不再手动读取完整的堆栈跟踪。相反,我们将它们直接粘贴到Cursor中,并要求进行根本原因分析。这在 Go 中特别有用,因为恐慌经常会级联。
提示示例:
当尝试在 OTA 推出逻辑中调用 `.Deploy () `时会发生这种情况。帮我调试。
人工智能会返回可能的原因,建议记录线路,甚至提供修复方法。这取代了过去 30 分钟的橡皮躲和原木筛选。
在使用 LLM 时,一个常见的陷阱是倾向于在损坏的代码之上进行修复。这就产生了 “cruft” ——我们用这个术语来表示基础不佳的多层编辑。
为了避免这种情况:
这种习惯可以保持代码整洁,并最大限度地降低运送被巧妙破坏的东西的风险。
许多 AI 用户未充分利用 Cursor 进行重构。我们积极使用它来减少科技债务。Cursor 非常擅长发现长函数、重复方块或不一致的模式。
提示:
这有助于我们更快地对旧代码进行现代化改造,同时保持对测试覆盖率的信心。
我们了解到,有些框架和模式比其他框架和模式更适合人工智能。当系统采用模块化、打字和文档化时,Cursor 的效果最佳。
我们赞成:
避免使用仅限内部的 DSL 和非类型化 API 可显著提高 AI 的有效性。
人工智能不只是写代码,它还会写文档。我们使用 Cursor 来生成内部文档、API 规范,甚至架构决策记录 (ADR)。
提示:
这减少了手动开销,并使我们的内部文档随着功能的发展而保持最新状态。
这些人工智能辅助开发模式并非来自理论。它们是从构建真正的汽车级系统所花费的数百小时演变而来的。我们的建议:像对待合作者一样对待人工智能,而不是预言机。让它处理重复和建议,但一定要分层进行人工审查,尤其是安全关键逻辑。
对于希望在不影响可靠性的前提下更快行驶的联网汽车开发人员来说,采用这些模式提供了真正的优势。