我最近总有一种感觉,AI出现后,效率提升了,但程序员的水平反而更低了。
现在大家要么有各种AI代码生成工具,要么索性就是AI智能编辑器,从代码review能看出,有不少逻辑/算法都是AI生成的。但从局部功能看,这些AI生成的代码并无问题,AI的出现大大提高了程序员解决问题的效率。
然而将这些代码带入项目来看,往往会脱离项目的整体思路和规则,显得格格不入。

AI不善宏观理解
比如说,项目中有一个列表数据,需要转换成树,并且在不同的组件中,树节点的name展示的内容不一样。AI能够轻易地写出2个树组装的方法,不同方法的name取值不一样。但AI不会想到以rawName和displayName的抽象来理解name展示的区别,而优秀的程序员通过良好的抽象,以更高的性能和扩展性来实现该需求。
再比如,对同一个树形数据,有多种数据处理规则,AI能轻易地写出各种算法来实现数据处理,不管是深度优先递归或者广度优先递归。然而AI不会想到以"迭代规则------迭代器------迭代对象------数据处理规则 "的模式代码解决类似问题。
当"锤子"过于"便利",使用者便不再关注"钉子"本身

在AI之前,程序员解决问题的思考过程是"理解需求------理解问题------规则/模型抽象------寻找架构方法/设计模式------解决问题------封装 ",在AI时代,很多程序员解决问题的思考过程是"将需求翻译为问题------将问题翻译为AI提示词------判断AI代码的正确性"。两种方式都能解决问题,但后者明显更快更省力。
AI过于"聪明 "和"便利 ",反而导致了程序员的"懒惰"。
可能有人觉得,使用AI后,能更快解决问题,生产效率提升了,这是社会的进步。我也非常认同这一点,但切换到微观视角,AI对每个人的赋能并不一样,也许很多人可能会面临更多的淘汰风险。