最近的AI编码感受

虽然很早之前就已经是 vibe coding,但当时还是会手写代码,我确实没想到完全不用写代码这天会来的这么快。这个从写代码到完全不写代码的转变切换得如此快速,以至于还没有什么留恋以及体感就已经完全没有写代码了,甚至有点厌倦写代码了。

引入 harness engineering 之后,感觉代码的质量与可控性大大提高,在通过不断把自己想法实现的过程中完善与优化工作流,感觉目前已经跑的较为顺畅。这段时间利用业余时间做了不少以前想做但是又懒得做的事情。

时间管理

从大学毕业开始,我就不间断地进行时间记录,不知不觉十几年,其实我也没想过这个习惯居然会断,但实际上,这个习惯确实很自然地断掉了,忽然失去了记录的动力。但很早之前就想写一个时间记录的应用,用于将这一切记录数字化,然而因为懒一直都没进行。借着 AI 能力的急剧提高,写这样的东西已经不需要花太多气力了。

处理这样的页面,AI 简直得心应手,而且大部分都是简单逻辑。虽说很多逻辑自己改起来也非常快,但是一旦适应了 AI 的能力,一行代码都不想写了。

顺便也整合了待办在日历里,过去也一直没能找到合适的待办工具,这下可以按照自己的想法来实现了,虽然不难,简单的 UI,但是这些东西适合自己才是最好的。

语言学习

自动 AI 出来之后有一段时间我失去了语言学习的兴趣,感觉只要每天与 AI 聊聊天就能保持,但事实发现并非如此,如果想长久扎实地掌握一种语言,还是需要脚踏实地进行学习。

目前一些语言都已经有了一定基础,我感觉如果只是兴趣,并不是真正需要国外生活,那么阅读能力其实是一个非常重要的能力,而且投入产出比比较合理。虽然说口语才是真正掌握一门语言,但对于身处国内的我来说并不需要。

所以语言学习从语料开始,上传自己希望阅读的语料,进行阅读。

阅读过程中查词,并进行记录,这些词条可以生成学习卡片与学习计划,按照艾宾浩斯遗忘曲线作为每天出现的策略。

另外还实现了每日新闻,可以通过阅读这些简短的新闻来学习更为正式的表达,也可以起到咨询摄入的作用。

AI 查词其实能力已经很强大,不过如果考虑速度以及方便性,还是远远不如普通词典,所以本应用还支持上传词典,这些词典会经过预处理分析转化为同样的词条结构,方便阅读查询与展示。

麻将大师

前段时间打了几次麻将,输钱居多,以为自己对这个东西还是挺擅长的,没想到结果并不好。偶尔的机会和前领导吃了次饭,才得知他是卡牌高手,擅长德州,估计有业余顶尖水平。聊天中得知,他在德州的学习长达十年之久,可见这些东西都是需要长久的练习的,于是,我也想着借着 AI 的能力,来实现一个麻将训练器。

这类应用其实网上已经有很多,不过还是不得我心,我希望看到的决策数据基本上都不会展示,而且玩法会有所限制,高级功能甚至要收费,于是自己写还是更好。

目前只实现了自己需要的功能,主要是出牌和叫牌训练,选择之后有详细分析,并且有数据统计。

里面还包含模拟实战的能力,与三个 AI 对战,AI 会做最优的选择,这意味着如果自己选择有问题,那就会输,如果自己选择没问题,那就看概率。

经过这个应用的训练,我才意识到自己是多么的菜。即使是原来以为很简单的叫牌训练,在一般复杂的牌型下,连叫什么牌都找不全,难怪自己要输钱了。

总结

这里列出来的其实也只是冰山一角,AI 确实让我提升了效率,然而却没有让我的电脑时间减少。尤其到了深夜,当想法疯狂爆发的时候,AI 就像是阿拉丁神灯,可以满足你所有的愿望。当你说出了你的需求,接下来就只需要等待,这是一个神奇的过程,多次让我深夜奋战到两三点。

工作流目前基本遵循

  • /design:功能确认,技术设计
  • /feature:编码实现,严格遵循测试驱动开发
  • /commit:提交代码
  • /memory:整理记忆,归档文档

编码实验的时候测试先行非常重要,我觉得这个也是 harness engineering 的核心。就下面的项目而言,虽然核心代码只有区区几万行,但是测试用例已经有大百个,每次提交之前都要求所有测试用例通过,试问这样的项目逻辑,还能不放心吗?

日常工作很多时候的决策都是基于文档的阅读,所以基本上可以脱离过去使用的编辑器了,一个很简单的文档阅读器就能应对几乎所有情况。

以前编码,解决问题的快感,逐步转变为想法实现的快感了。有很多人提到开发会被 Agent 干掉,虽然我觉得并不无可能,但可能性也不高,在最近使用的过程中,我也有观察其他人的使用,甚至其他工种的人的使用,可以看出,对 AI 的使用能力,至少到目前为止还是受限于本身的架构素养与编程能力。当项目复杂到一定程度,并不是那么简单就能将 AI 用好的。

在我看来,只是编程语言从个别具体的编程语言转变为自然语言而已,而编程与实现本身,是非常需要工程能力的,而这个能力可能不是过去多层次的架构能力,而是需要更高层的抽象与掌控能力了。而我们,只是从xx工程师,统一编程了 Agent 工程师而已。