背景

AI大行其道的当下,AI要取代程序员了程序员这个职业要消失了之类的声音可谓是不绝于耳,所以就体验一把AI编程

体验过程

选型

首先是选模式,像代码补全这种辅助型的肯定是不在考虑范围内的。

之前,同事使用智能体自动帮他改程序,结果被狠狠坑了一把:代码看起来很不错,但是测试后却发现很多问题,比如别的很多没让改的功能和原来的不一样了,比如多了一个假死的特性,比如再也不会触发docker的自动重启了……总之,甩手掌柜的方式是pass了。而Cline这种先规则再执行,而且中间必须要人工确认的方式,反倒是挻符合软件开发的核心流程。

然后是选模型。国外的需要梯子,pass了。国内的,DeepSeek算是领军模型了吧,而且刚发了V4;另外一个,选了智谱GLM-5.1,无他,刚好有key而已。

**说明:**刚开始时Cline默认只能接入deepseek-chatdeepseek-reasoner,后来才有deepseek-v4-flashdeepseek-v4-pro

使用

正式使用之前,还是做了一些功课,包括如何使用Cline,如何写提示词等。

写函数

先写好函数的声明,定义好入参和返回值,然后让AI写具体实现。

测试一

先来个简单的:给一个初始日期和周期,列出截止到当天的所有符合的日期。结果,很不错。

测试二

来个现实场景的:输入N列数据,每个数据为电能表读数的k-v,要求得出有电量变化的时间段,多列之间取并集,同时要剔除掉电量为0等异常值。

结果,很糟糕!粗看代码,很像回事,注释也把逻辑写得比较清楚,但是一给数据跑出来的结果就让人火大:有起止时间完全一样的时间段,还有电量根本没变化的时间段……

据说AI很擅长写测试,那就先写测试再实现。结果,测试用例的数据跑出来是正确的,换一批数据又让人火大了……

耐着性子交流了一下午,结果还是没达到预期的正确结果,怒了,丢掉AI采用已被称之为古法编程的纯手工编写方式,不到半小时,完美通过。

测试三

根据当前日期和历史统计记录,把测试二的成果——时间段数据,按归属统计出每日时长,并依次统计出周、月、季、年对应的数据。

结果,磕磕绊绊的总算把日统计做好了,周统计费了点工夫也搞定了,至于倒是一次通过。呵,好吧,这代码的能力也就那样吧,倒是代码的能力那真是顶呱呱!

知识库

这此考察重点不是写代码,是知识库。

  1. var a *int = new(1) 这段go代码是否正确,这是go1.26.0的新特性,发布于2026-02-10。结果,只有deepseek-v4知道这个特性。

  2. 为pg18创建一个最简用户表,要求主键用uuid v7,这是pg18.0的新特性,原生支持uuid v7,发布于2025-09-25。结果,全军覆没,要么让安装插件,要么就开始瞎猜。

  3. 把上面两个发行日志的页面地址给AI,让它自己去提取新特性并写入规则文件。结果,跑了很长时间都还没跑完,强行给终止了。

写项目

上面的测试其实都是小儿科,实实在在从0开始去写个项目,才更考验AI的能力。

项目一

目标,写一个文件去重工具,要求支持tuiweb两种操作界面,支持多种哈希算法。技术栈是go+Bubble Tea+templ+Tailwind CSS+Alpine.js

虽然有些小波折,但结果还算满意,比我写的强多了。一下午的时间,目标基本完成了,随后又抽空优化了几次,但仍有已知bug

项目地址如下:

  • Gitee:https://gitee.com/afrusrsc/duplicate-cleaner

  • Github:https://github.com/afrusrsc/duplicate-cleaner

项目二

精心选择了pg+pgx+sqlc+gin+templ+Tailwind CSS+Alpine.js这个技术栈,前端、后端、数据库都有,主流、非主流也都有。

目标,写一个精简版的ERP,因为有前同事刚用codex花了10元完成了一个内部使用的ERP,使用c#的技术栈,刚好可以进行对照。

本想项目完成之后再写这一章节的,但是,现在放弃继续测试了。

三天了,成果如下:

功能 结果 备注
登录 通过
修改密码 通过
查看登录日志 基本能用
超时无操作后锁定 勉强通过 仍有bug
部门管理 进行中 在此放弃的,基本的CURD,前端都能bug满天飞,而且同一个bug,这次改没了,下次又改出来了,烦不胜烦

额外发现

  • deepseekglm-5.1响应速度要快

  • deepseek-v4thinking中经常会狂飙英文

  • deepseek-v4Cline配合,经常会读不到终端的输出结果而死等

使用小结

  • 从结果上来说,国产模型和国外模型的确是云泥之别

  • 从速度上来说,AI确实碾压程序员

  • 从质量上来说,AI程序员算是打平吧,因为都有垃圾

  • 从效果上来说,AI更适合写静态页面、SQL、api接口、测试这一类基本只有固定范式的东西

  • 从能力上来说,AI的能力和技术栈是否主流呈正相关,也就是说,AI的能力和可用于训练的数据量呈正相关

  • 从性价比上来说,像工具这一类的小项目AI更占优,但上了点规模的项目AI只会让你口吐芬芳

心得

前前后后、断断续续花了两周时间,有惊艳,也有抓狂,但更多的是口吐芬芳。无论如何,也算小有心得:

  • 一定要选顶尖模型,迫不得已也要瘸子里挑将军

  • 可以骂AI,但不要发给它,因为除了会让你更生气外,还会让你的钱包更瘦小

  • 不要把AI当人,因为它本质还是机器,冰冷、简要、命令式的语言往往更有效

  • 要把AI当人,因为它也会忘记(超出上下文)、会瞎猜(AI幻觉)、会钻牛角尖(死循环),当然还会摆烂(我怀疑这个才是AI真正从人类这里学到的)

  • 发现AI有以上行为了,果断换,换个新的会话,甚至换个模型,不然就会演变成你在钻牛角尖了

  • 使用Cline要善用.clinerules,定好规则,多用必须禁止这类偏向两个极端的词汇

  • AI写测试确实更成熟些,以后可以把测试放心交给AI

  • 纯粹的码农一时半会还不会被AI替代,但不久的将来是必然会被替代的

  • 和早年随便个阿猫阿狗去培训班转一圈出来就能写代码一样,现在随便个阿猫阿狗也都能用AI写代码,但是,只有具有扎实编程基础的人才能高性价比的驾驭AI,也只有具有架构思维和产品思维的人才能把AI用成一把利剑