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 这类工具检查。