• AI以后能否替代码农不好说,但现阶段真的缩小了资深与入门开发之间的差距
  • 发布于 1个月前
  • 125 热度
    14 评论
前几天 review 同事的代码,各种判断、场景、前后兼容、性能等方面都考虑齐全,非常完美,只是一眼 AI 写的。弱弱地当面向他求证,答曰确实是,还反我怎么看出来的?我有点没好意思回答他,但我内心知道:“因为我有数,你自己写不出这样。”

当然,说到底,这不是什么坏事,至少对于项目代码质量而言。只是有时候我自己在想,如果这些今后 AI 加持下都可以 refine ,那么我们面试那些所谓高级开发岗位的时候,那些八股、底层原理、算法、白板手写代码,是否依然有问的必要?意义又何在呢?是否,能真正用好 AI ,才是今后一个很重要的判断标准呢?
用户评论
  • 心在旅途
  • AI 的品味是需要,而且也在不断提高的。今天我刚好有一个例子。我有一个 VectorBuilder<T>的组件,这个组件是纯函数的,它接受 N 个 T 类型的输入,给出一个 vector<T>类型的输出。问题来了,在代码中,可以用 VectorBuilder<number>这样方式简单定义,但实际业务中,需要由用户在 UI 界面上选择这个 T 类型。在 UI 界面中,怎么决定某个组件是不是有可以配置的选项呢?这些选项又怎么呈现在 UI 界面上,供用户选择呢?

    AI 给出了它的通用解决方案(这个通用的方案,还是在我一再要求下给的,之前它给的就是针对这个组件写死的方案),它的方案就是在 VectorBuilder<T>这个类型的定义里面,添加一个配置项 genericConfig ,再添加一个 applyGenericConfig()函数。
    ```
    getGenericConfig?(): Record<string, {
    label: string; // 菜单显示名
    type: 'select' | 'number'; // 控件类型
    value: any; // 当前值
    options?: any[]; // select 的可选值
    min?: number; // number 的最小值
    max?: number; // number 的最大值
    }> | null;
    
    applyGenericConfig?(config: Record<string, any>): BaseComponent;
    ```
    然后被我一通批判:
    ```
    我觉得,最好不要将这些接口,比如 applyGenericConfig ,放到组件的定义里面!我来说明一下理由,这些接口,本质上仅仅是替换一下类型,与组件本身的功能几乎没有关系,比如 VectorBuilder 这个组件,将 number 替换为 string 类型,不应该由 VectorBuilder 来考虑实现类型替换这件事。可选的类型或者可以选择的配置,也不应该是 VectorBuilder 这个组件本身需要关心的事,因为 VectorBuilder 就是一个包含泛型的类!

    所以,我完全不能接受将这些东西放到组件定义里面!!当然,你的这个通过配置来实现通用化的方法,还是比较好的,但是能不能拿到组件定义的外面呢?而且,最好也不要写一个统一管理的函数,在里面用 if else 来分别判断!
    ```
  • 2025/12/1 18:08:00 [ 0 ] [ 0 ] 回复
  • 青春已去
  • 作为老码农,我是觉得非常扼杀新人的机会。很多体力活,之前需要招新人干,然后顺便慢慢培养上手到可以处理相对复杂的工作。现在直接扔给 AI 干,还有清晰的注释,甚至还能生成文档,没有了带新人的意愿。
  • 2025/12/1 18:05:00 [ 0 ] [ 0 ] 回复
  • 君子坦荡荡
  • 其实并不是,初级才是被秒死的那个
    企业更喜欢让高级替代初级 压榨高级的效率
    资深属于大头兵岗位 还是要用来抗事抗压提高团队上限的

    初级用了以后感觉自己能达到高级的水平水因为在初级的视角中很多不爱学习的躺平高级不学 ai 罢了,等再经过市场的清洗之后基本不会有初级中级的岗位了,要么初级快速成长为高级但是拿中级的薪资,要么高级变的更强薪资不变,原地踏步的高级和初级中级直接淘汰,估计明年会开始清洗了。
  • 2025/12/1 18:02:00 [ 0 ] [ 0 ] 回复
  • 尘世无情
  • 并不是缩小了,而是加大了差距...看过很多人写的提示词,一言难尽。工业级的项目,提示词并不能只考虑解决需求,还需要考虑架构、技术选型、难点测试、分工协作问题、代码规范与风格、已有模块与组件的对接、可调试性、注释与可阅读性、生成测试方案甚至接入自动化测试、生成文档等等。你完全可以找个小需求,自己写段提示词,然后和高手的比一比,就知道差距了。
  • 2025/12/1 17:54:00 [ 0 ] [ 0 ] 回复
  • 半生輕狂客
  • 作为老码农,我是觉得非常扼杀新人的机会。很多体力活,之前需要招新人干,然后顺便慢慢培养上手到可以处理相对复杂的工作。现在直接扔给 AI 干,还有清晰的注释,甚至还能生成文档,没有了带新人的意愿。
  • 2025/12/1 17:23:00 [ 0 ] [ 0 ] 回复
  • 山有木兮
  • 其实并不是,初级才是被秒死的那个
    企业更喜欢让高级替代初级 压榨高级的效率
    资深属于大头兵岗位 还是要用来抗事抗压提高团队上限的
    初级用了以后感觉自己能达到高级的水平水因为在初级的视角中很多不爱学习的躺平高级不学 ai 罢了,等再经过市场的清洗之后基本不会有初级中级的岗位了,要么初级快速成长为高级但是拿中级的薪资,要么高级变的更强薪资不变,原地踏步的高级和初级中级直接淘汰,估计明年会开始清洗了。
  • 2025/12/1 17:21:00 [ 0 ] [ 0 ] 回复
  • 远山迷雾
  • 并不是缩小了,而是加大了差距...看过很多人写的提示词,一言难尽。工业级的项目,提示词并不能只考虑解决需求,还需要考虑架构、技术选型、难点测试、分工协作问题、代码规范与风格、已有模块与组件的对接、可调试性、注释与可阅读性、生成测试方案甚至接入自动化测试、生成文档等等。你完全可以找个小需求,自己写段提示词,然后和高手的比一比,就知道差距了。
  • 2025/12/1 9:23:00 [ 0 ] [ 0 ] 回复
  • 城南诗客
  • 是的 在简单需求上可以缩短 但是...在复杂一点,逻辑再多一点... 如果他坚持自己不再 review 一边给 AI 出出主意的情况下, 这楼说倒就倒, 并且倒了之后没有重建可能.
  • 2025/12/1 9:18:00 [ 0 ] [ 0 ] 回复
  • 太伤人
  • 以为是缩小了,但其实并没有。反而在初期就扼杀了很多初级开发成长的机会。很多都是不知道 AI 写的是啥,只是知道能跑、能实现。
    但是也正好,这部分人也就会被快速淘汰掉。剩下的那一撮才是会利用 AI 快速成长缩小资历差距。
  • 2025/12/1 8:58:00 [ 0 ] [ 0 ] 回复
  • 诗人诗意
  • 可算了吧,我都懒得看同事用豆包、DeepSeek 生成的代码,他甚至自己都看不懂。很多时候我问他的问题他都听不懂,他把我问的话再拷贝到去问豆包,真他妈无语了。
  • 2025/12/1 8:56:00 [ 0 ] [ 0 ] 回复