你比Deepseek优秀在哪里

最近看到一个面试截图

面试截图

抛开HR态度的问题,未来我们都不得不回答一个问题——随着AI越来越智能,我们当前的工作在多大程度上会被AI及其相关的新技术所替代?如果工作被替代,我们应该如何应对?

如果是我,我可能会这么回答:
我会借助包括Deepseek在内的AI工具,因为我不必比工具本身更优秀。你+AI做不到的事情,我+AI就能做到。就像你不会开车,雇佣个司机的意义就是让司机帮你开车;即便你会开车,由于时间非常宝贵,雇佣司机仍然更高效。
这也证明了一个道理——雇佣我对你来说更合算,所以你的最佳策略就是雇佣我。

我是如何使用AI的

接下来需要证明在AI时代,我是如何利用AI工具使自己更加强大的。

首先是大家都能直观感受到的部分:

before(大模型时代之前): 开发功能需要查阅官方文档、访问StackOverflow、使用Google等多种途径。
after(大模型时代): 这三件事情大多数情况下都可以直接通过大型模型的对话解决。(前提是我们都掌握了正确的提问方式)

我把这种效率提升称为“大模型的基本提升”,后续的分析不再赘述这部分提升。

接下来回顾一下我的工作内容,并分析在每个环节中如何利用AI改进:

  1. 需求分析

    这部分主要由产品经理负责,而我主要关注以下几点:

    • 技术可行性分析

    • 架构预研
      对这两点来说,AI的作用有限,更多依赖于自身经验,AI只是在一些基础上提供了辅助。

    • 快速构建Demo
      这一环节中,AI的作用尤为显著。

      • before:先与前端同事讨论需求,再由前端绘制Demo设计图;在必要时还需要搭建一个简单的SpringBoot项目进行联调。对于简单的Demo,可能需要两个人一天的工作;而复杂的Demo则需要多次沟通联调。
      • after:利用AI工具,可以在同一上下文中完成前后端联动,复杂度由“沟通+开发”转化为“调试+prompt”,通常能节约20%-50%的时间。
  2. 系统设计

    • 概要设计

      • 技术栈选型:对于成熟团队来说,技术栈往往已经固定,更换成本较高,因此引入新技术需要慎重。但在大模型时代,我们曾尝试过新方案。2023年下半年,我带领团队现学现用,利用Python、Langchain、Flask、PostgreSQL和pgVector开发了一个RAG应用。在大模型的助力下,团队成员的学习速度远超预期。
    • 详细设计:包括数据库表结构设计、API接口定义、模块划分等。
      命名方面:
      “计算机科学中只有两件难事:缓存失效和命名。”
      在这方面,AI的作用非常大,尤其对中国程序员来说更是一大助力。命名方式可以有多种选择:

      命名法以“审批”为例我的看法
      拼音首字母缩写法shenpi与简单的abc命名无异,难以忍受
      单词一对一翻译法approve可以接受,但若英语不好,容易搞混单词差别
      带入句子的语义翻译法区分“提交审批”(submit)和“审批”(approve)最佳选择,更能区分单词细微差别
      AI生成简单高效,用词准确

      如果一张表有十个字段,AI可以瞬间生成建表语句、实体对象等。字段越多,效率提升越明显。

      对于API接口定义,除了设计阶段,联调阶段也能大大提升效率。使用Swagger生成Entity时也可以生成相应的接口文档;如果不使用,也可以让AI基于代码自动生成Markdown文档给前端同事参考。

      • 画图
        我目前仍习惯使用ProcessOn绘制流程图、时序图等,目前尚未找到与AI更好结合的方式。
  3. 开发实现

    • 写代码与写注释
      只要明确需求,写好注释,其余工作交由AI生成代码,不仅安全性与健壮性有保障,而且生成的代码风格也会与现有代码保持一致。但这过程中也可能存在隐患,就像自动驾驶,不能完全把方向盘交给AI。

    • 调试
      AI在调试方面表现优秀。特别是现在的GitHub Copilot插件,能结合代码分析迅速定位问题并给出可靠的建议,因此成为程序员解决问题的首选工具。

    • Code Review
      尽管大部分code review工作可以交给Sonar等插件辅助,但人肉审查仍然是降低Bug的重要手段,多花点时间审查代码总能带来质量提升。

    • 测试
      借助AI生成单元测试不仅更高效,还能覆盖更多边界情况。

  4. 测试验证

    使用AI生成测试数据可以大幅节省时间。

  5. 运维部署

    • 脚本编写
      • before:需要手动编写Shell脚本、Python脚本、Curl验证脚本等;
      • after:所有这些工作均可交给AI完成,无需记住不同工具间的使用差异,也不再需要纠结如何使用grep或awk的问题。
  6. 迭代

    相较于全新项目的开发,AI在迭代项目上的表现可能略显不足。因为项目的历史信息有限,若将所有信息一次性喂给AI,其效果可能还不如开发者逐步迭代的方式高效。

我对AI的一些思考

  • 嘲笑AI的愚蠢和担心AI会抢走人类的饭碗都是没必要的,我的态度是拥抱AI,让AI帮我做事。
  • AI总是想当我大哥,而不是小弟,对于复杂的问题,他很喜欢给出意见,而不喜欢解决问题。