项目开发与工程实践问答合集
本合集重组自星球内 8 篇关于需求管理、开发模型、可靠性设计与开发环境的项目实战短问答。原始提问帖保留作为来源层。
一、需求与产品的分解
一个产品 = 需求的集合?功能又是什么?
是的:产品由各种需求组成,需求由各种功能组成,功能由各种技术路径去实现,实现后又由各种测试手段去验证。需求 → 功能 → 技术路径 → 测试验证,是产品分解的完整链条。
— Q:一个产品是不是可以理解成由各种需求组成,需求又由各种功能组成:(Jack)
项目前期需求的优先级怎么确认?
项目前期一般由项目经理把交付要求对应的需求列为最高;其次是被依赖较多的需求放首位。例:做智能手机,"能上 4G 网"是基本功能——有了它,微信、抖音等后续功能才能开发。依赖链上游 = 高优先级。
— Q:项目前期的需求导入中的需求的优先级要怎么确认:(Jack)
二、开发模型的选择
为什么瀑布开发周期长、反馈少,还适用于大项目?
瀑布开发在前期就把架构设计考虑得很清楚,适合需求明确、不会随便变化、且需要长周期维护的项目,比如大型仪器。周期长反馈少是代价,换来的是前期设计的完备性。
— 为什么瀑布开发周期长,反馈少还适用于大项目(Jack)
嵌入式产品与互联网产品对新技术的态度差异
互联网产品:有什么新技术就上什么新技术——试错成本小,还能低成本快速引导甚至创造用户需求。嵌入式产品:除资金雄厚者外,往往以成熟技术为主——开发成本大,且很多新功能带研究性质(该业务领域没有落地案例),不一定能研发出来。成本敏感的公司会尽可能用成熟方案。
— 嵌入式的产品和互联网产品在这块区别很大,互联网产品有什么新技术,就上什么新技术(Jack)
三、可靠性与现场问题处理
项目中的喂狗线程设计
两条核心逻辑:
1. 喂狗线程没有给看门狗喂狗 → 说明系统没能在看门狗设定时间内正常运行到喂狗点,此时硬件看门狗复位系统;
2. 看门狗长时间没收到某个线程的喂狗 → 说明该线程调用已产生阻塞,需要尝试重启该线程恢复,并保存阻塞现场供事后分析。
— 项目中的喂狗线程: 1.如果喂(Jack)
同一工程:CLion 烧录不正常、Keil5 烧录正常,为什么?
不同编译器在汇编和编译上都存在差别。在大项目中,客户甚至会要求指定编译环境和优化等级。遇到"代码一样、工具链不同、行为不同"的问题,先从编译器差异和优化等级查起。
— 老师,我发现了一个奇怪的问题。就是我今天在进行“任务的挂起与恢复”实验时(Jack)
四、开发环境与工具
VSCode 代码不能跳转怎么办?
把 C/C++ 扩展插件更新到最新,重新打开项目;按 Ctrl + Shift + P,输入 Developer: Reload Window 重新加载窗口。
— VScode代码不能跳转?(Jack)
流程文档与架构原理:驾驭 AI 的底层能力
这些流程文档和架构设计原理,是支撑未来每个人驾驭 AI 的底层能力——不要告诉 AI"你该这么做",而是把 AI 关进一个可靠的笼子里,它的目标是成功从笼子里跑出来。规范和架构就是那个笼子。
— 这些流程文档和架构设计原理,是支撑未来每个人驾驭AI的底层能力(Jack)
来源笔记
- Q:一个产品是不是可以理解成由各种需求组成,需求又由各种功能组成:(Jack)
- Q:项目前期的需求导入中的需求的优先级要怎么确认:(Jack)
- 为什么瀑布开发周期长,反馈少还适用于大项目(Jack)
- 嵌入式的产品和互联网产品在这块区别很大,互联网产品有什么新技术,就上什么新技术(Jack)
- 项目中的喂狗线程: 1.如果喂(Jack)
- 老师,我发现了一个奇怪的问题。就是我今天在进行“任务的挂起与恢复”实验时(Jack)
- VScode代码不能跳转?(Jack)
- 这些流程文档和架构设计原理,是支撑未来每个人驾驭AI的底层能力(Jack)