1. 工具

        工具还是使用opencode,本着开源工具优先,自然不选择claude code和qwen code等。

2. 方法论

        没有去专门研究具体的方法,微信看一看默认推荐的文章一大堆,随意看了一些opencode编程短文,主要是vibe coding和spec coding,对我来说长期编程的习惯是先做需求分析、系统设计、然后才进行编码,故先写一份requirements.md,自己写全写也累,直接把真实项目的总体要求发在千问/豆包上,自动生成一份很长的requirements.md,感觉不错。

3. 实际项目

        使用开源大模型不是我自己要来尝鲜新技术的,自嗨不可能让公司买一块nvidia L20, 专门搞一台服务器,放在机房声音都比其他普通服务器声音大几倍,这个真实项目是客户自己提出来:他们给了一个excel,里面有十几列,以后会不定期上传新文件,口头讲法是要做环比、同比和分析趋势。

        几句话需求肯定没法开工,于是线上运维人员和产品人员就去接触客户的具体做事人员,随后就给了一份真实的数据8000多条,还给了一个word报告,平时他们是自己手工在excel统计分析,然后自己手写word报告,各种维度统计,表格、图表和文字说明,这个报告是要给上级领导的。

        使用opencode编程,基本功能就是用中文文字驱动它去帮我们编程,先别说那些技能插件,就先测试一下这个开源LLM和opencode能力去到哪里,具体方法是枯燥的,下面说说碰到的问题:

3.1 问题1

        最开始我在网上生成的requirements.md,是从业务人员那里听到的几句话而生成,opencode也真是很能发挥,洋洋洒洒生成了一大堆,但是,这根本不是客户想要的,不但不是,而且还是开篇就得到了一个一大坨垃圾功能,之后导致各种问题。

3.2 问题2

        当客户第一个完整的需求,那份真实的手工制作word报告给到我们,我开始做第一部分统计分析生成功能,在已有代码基础上各种修改折腾,终于把它统计出来,文本描述部分本来是要调用LLM来动态生成分析报告文字的,也没去调用LangChain, requests直接post会返回中间思考过程,没处理会出错,没时间理它,即使这样,时间都花了我1天多,这比手工编程还慢还累。

        为什么这么累,因为有时需求的实现,平时我们手写,看看产品的任务单和原型图,和产品人员面对面聊一聊,哪个开发人员回去之后做了详细的系统架构设计、模块设计、功能描述呢,有些开发人员连基本注释都懒得写,全英文代码的情形比比皆是,用中文把业务流程细节描述清楚,不是一件容易的事,这种输出word报表的细描述更是麻烦,可能有直接贴图让它去自己识别,暂时没去尝试。

3.3 问题3

        之后实现了2个小功能类,都是读取产品人员定义的配置文件excel,  这种小功能实现没碰到什么大问题,但是发现一个问题,它生成的功能类,读取excel没文件编码问题,而它自动写pytest测试代码,却总是搞不定编码问题。

3.4 问题4

        感觉前面3个功能都能成功,就计划写一个大一点的功能规格让它来一次性搞定,于是乎来一个统计最多的功能点:
1)从1点多~3点40多:写了一份需求功能说明md,  11点小分析统计处理,9个word输出,然后一个大md文件提交给opencode;
2)  第1次自动编程: 近1个小时完毕,手工测试,统计逻辑错误,word输出格式细节都不对:
3)然后不断让它自己修复,每次都要跑很长时间,AI看来面对现实中复杂而功能多的情况,一次性搞定是很难的;

4)最重要的是:在它自己编写pytest测试过程中,自动搜索我的配置文件excel,然后读取出文件编码错误,它干脆:

        把配置文件内容删除掉!

        自己填写几条垃圾测试数据!!

        最后还是搞不定,直接把相关源代码文件删除!!!

        最后询问我,有没有git可以获取以前的代码,因为它搞不定了!!!!

        我滴个妈,我还没来得及git clone,本来想下午在gitlab上开一个仓库,虽然这个开始是实验性的,但这个项目是真实需要交付的,我大意了,以为写清楚需求规格了,不至于删除文件吧。

 3.5 问题5

        之后我不敢喂大块需求,一个个小要求喂给它,但是,发现它:

1)代码结构混乱;

2)数据结构定义混乱,喜欢用大而全class;

3)各种细节bug,还不是需求理解错误,是基本逻辑错误;

4)不用的变量定义,到处可见;

5)注释在方法或代码块首次生成时写了,之后不管你怎么要求怎么修改代码,注释永远不变;

6)要求它重构代码,改了东墙,塌了西墙,还中途随意添加新功能,完全是它自认为的新功能;

7)每次执行速度太慢了,根本没法保证正常速度;

8)总结文字不够直观,反正不喜欢,在AGENTS.md配置文件和命令行多次提醒它要用中文回答,多几次交付又变成全英文,不长记性。

4.总结

        总之我对AI coding完全失去信心,不要说要上什么OMO,superpowers之类skill,基本细节编程搞成这样,没法在真正业务系统上开发,网文每篇都写得天花乱坠, 我并没有怀疑opencode能力,而是让我对Qwen系列的大模型产生极大怀疑,因为:

        真实情况是这样吗,请听下回分解。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐