AI 相关问题
1️⃣ 日常是怎么使用 AI 的?
- 结论: 日常使用
AI更多是把它当成辅助工具,而不是直接替我完成开发。 - 举例:
- 比如看不熟悉的库时,我会让它先帮我梳理接口使用方式;
- 写代码前,也会让它给一个大致思路或伪代码,然后我自己再结合项目约束重写。
- 如果是
C++代码,我会特别注意 生命周期、边界条件、线程安全、异常路径 这些问题,因为AI生成的代码经常在这些地方比较粗糙。
- 所以我更倾向于用
AI提高检索和理解效率,但最终代码还是要自己review、编译、测试和压测。
1️⃣ 你认为 AI 目前有什么问题?
- 结论:
AI最大的问题是它经常给出 “看起来很合理” 的答案,但不一定真的正确。 - 举例:
- 尤其是
C++、操作系统、网络编程这类问题,如果涉及内存模型、并发、系统调用,它可能会忽略很多细节。 - 另外
AI对上下文依赖比较强,如果需求描述不清楚,它可能会补全出一个错误假设,然后沿着错误假设继续生成。 - 还有一个问题是它不理解真实线上环境,比如性能瓶颈、历史包袱、团队规范、异常数据和兼容性,这些都需要开发者自己判断。
- 尤其是
1️⃣ 你会如何解决 AI 存在的问题?
- 结论: 我一般会把
AI输出当成候选方案,而不是最终结论。 - 举例:
- 如果它给的是概念,我会去查官方文档、标准库说明或者源码;
- 如果它给的是代码,我会先跑编译,再补单元测试和边界测试。
- 如果是项目代码,我不会直接复制进去,而是根据项目已有风格、错误处理方式、日志规范重新整理一遍。
1️⃣ 你会信任 AI 写的代码吗
- 结论: 不会无条件信任,AI 写的代码可以作为参考,尤其是一些样例代码或者模板代码,但不能直接默认它是正确的。
- 举例:
- 它可能忘记处理空指针、边界条件、线程安全;
- 它也可能用了不符合当前项目编译标准的语法。
- 我会先看它的实现思路是否合理,再看复杂度和资源释放是否正确,最后通过编译、测试和
review来验证。
1️⃣ 你现在写代码是完全让 AI 写,还是自己也会写
- 结论: 大部分主要还是
AI写。 - 举例:
- AI 可以帮我加快一些重复性工作,比如生成测试样例、整理接口说明、提示某个 API 的用法,但核心逻辑、架构拆分、异常处理和性能优化还是要自己来。
- 特别是 C++ 里对象生命周期、智能指针所有权、锁粒度、网络连接关闭这些地方,不自己写和调试,很难真正理解。
- 我觉得 AI 更适合辅助开发,而不是替代开发者的判断。
1️⃣ 你会如何验证 AI 写的代码是否正确
- 结论:
- 我会先从 静态层面 看代码是否符合需求,比如输入输出、边界条件、异常路径、资源释放和线程安全有没有问题。
- 然后会编译运行,补一些正常用例、边界用例和异常用例。
- 如果是性能敏感代码,还要做压测或 benchmark,不能只看功能跑通。
- 如果是并发代码,我会特别关注锁保护范围、对象生命周期和是否存在 ABA、死锁、数据竞争等问题,必要时配合 ASan、TSan、Valgrind 这类工具检查。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 GYu的妙妙屋!
