Vibe Coding初体验
初出茅庐
你看到这个博客网站整体都是我通过Vibe Coding的方式编写出来的,作为体验Vibe Coding的项目,重构我的博客网站是一个不错的尝试。
VC-BLOG 正如起名字一样,这是一个通过Vibe Coding的方式写出来的博客网站。整个项目基于以下技术栈搭建:
- Next.js
- Prisma + Prisma
- TailwindCSS
- AI-SDK
功能方面主要包含了两个部分:
- 博客前台部分,主要方面用户访问和浏览
- 博客后台部分,方面管理员对文章进行管理
架构设计上,前台部分整体采用SSG静态生成整个网站,这样可以方便CDN对整个博客前台进行缓存,对浏览体验帮助很大。我的博客部署在Vercel上,十分感谢Vercel公司,其免费策略对我这种个人项目十分友好。在不用花钱的情况下就能体验上最先进的Edge架构,让我感到十分兴奋。好像最近几年基于边缘计算架构的基础设施越来越火,这让我对其Infrastructure的设计十分好奇。
言归正传,这篇文章我并不打算对 VC-BLOG 项目过多介绍,感兴趣的朋友可以自己阅读项目的readme文档。当然,readme文档也是AI写的,(〃 ̄︶ ̄)人( ̄︶ ̄〃)~~~~
个人感受
当我第一次让AI写出一个页面时,我确实被震撼到了。作为一个对前端一窍不通的后端开发,仅凭与AI聊天就能写出一个还不错的页面(本人审美不高),我当时的第一感觉真的是时代变了。
我14年毕业,搞过C端业务、公有云、中间件、Kubernetes,现在在做B端的业务,也算是见过各种技术了,能让我感到如此印象深刻的,Vibe Coding算一个。25年上半年听到Vibe Coding的概念,我还有点不屑一顾,认为又是炒作概念。完全无法想象,仅靠聊天怎么能把一个完整的应用写出来。事实证明,真的可以!
也许真的像Martin Fowler说的,现在编程的抽象层次提高了。过去我们面向机器、面向代码编程的方式需要转成面向业务流程编程,面向领域逻辑编程了。Vibe Coding帮我们把代码这一层彻底抽象掉了。
体验过程
由于我平时工作比较忙,我大概每天下班后会抽一到一个半小时左右在Vibe Coding上,就这么持续了大概一个半月左右吧,完成了1.0版本。当然几乎所有的编程工作都有工具完成。这里我可以列一下我做VC-BLOG用到的一些工具。
- stitch Google出的一款免费的UI设计工具,通过提示词就可以生成一整套UI页面。我就是通过它来生成我现在博客的原型图的。
- trae 字节出的一款AI IDE,类似于cursor,都是VS CODE的套壳IDE。前期我花了很长时间使用trae,可以说前期60%的工作基本都是有trae完成的。tare的体验很不错,尤其是它的
cue功能,我觉得在一些代码细节手动调整,或者写文档的时候非常有用,这是我觉得trae最好用的功能了。当然,我使用的国内版,内置的国内的最顶级的模型都是免费使用的也很有吸引力。 - kiro 后面我接触到AWS推出的这款AI IDE,当然也是套壳VS CODE,界面设计的比较好看。在trae的使用过程中,我发现涉及到一些复杂问题的时候,容易陷入原地打转的现象,不知道是模型的问题,还是我的提示词不够准确,那段时间确实挺让人抓狂的。而kiro内置的SPEC CODING的方式让我耳目一新,对我遇到的问题先进行分析、设计,最后才开始编码。而且修改的内容一定是符合我的预期的,不会为了达成目的乱改一通。kiro的SDD的开发方式让我真正觉得,这玩意说不定真的可以在真实项目中使用。
- opencode 既然是vibe coding,就绕不过
claude code。但是我不想折腾网络,再去买一些中转服务,所以一直没有尝试。后面opencode越来越火,听说这是claude code的开源平替,我也下载后进行了尝试。搭配上oh-my-opencode ,不得不说,让我真正体验到了最先进的生产力。虽然在终端上编码让我一直有点排斥,但是通过使用open code的方式,让我觉得这才是vibe coding的正确打开方式,这是一种一次性把事情作对的力量。
目前我的主力就是opencode,再配合kiro的可视化界面观察opencode的变更。当然,还有一些常用的MCP和Skill我这里就不贴了,相信大家都能搜到。我一直相信好的工具能让编码事半功倍,当然适合自己的才是最重要的。
即将发生的事
- 初级程序员的处境将更加困难。当一个神器降临时,越牛的人越能发挥出它的真正威力。当然,这个现象将很快传导到所有领域,初级岗位将被AI迅速的替代。这不由的让我担心起来整个链条的成长机制。当初级程序员的上升之路被AI锁死,那么整个生态最终会青黄不接,最终可能导致两级分化更加严重。高级资深程序员在AI的加持下,生产效率持续提高,反过来对AI工具的使用越发的得心应手;初级程序员因为经验不足,要么被替代要么被困在AI暂时够不着的地方苦苦挣扎,最终还是逃不过被取代的命运。我目前也想不到太好的办法,可能像乔布斯说的:Stay Hungry, Stay Foolish。保持一个持续学习的精神,向高手学习、向AI学习。
- 会使用AI工具的人将获得极大的生产力提升。我相信,顶级AI模型的成本将急剧降低,token将越来越普惠。会使用AI的高手和资深程序员可以利用AI工具将他们的创造力延伸到以前无法触及的地方。越来越多的公司将不再区分具体的岗位,尤其是初级岗位,比如前端工程师、后端工程师、UI/UX、测试、产品,我能想到的岗位基本上都能被AI取代或者赋能。当然,高级和资深人员还是至关重要的,他们有着决定方向的智慧。我相信在AI的加持下,一人公司 将不再停留在概念阶段,个人能力将边界将是他们的想象力和创造力。
- 中间管理者将减少。大公司因为组织架构臃肿,人员冗余,所以需要大量的管理人员来维持组织的稳定性。在AI时代,基层的执行人员将减少,一个资深开发配上高效的AI工具就能完成以前3~4人工作量,这将减少大量的沟通管理成本。自然,也不需要那么多中间层的管理人员了。
DDD与Vibe Coding
大家知道,我是DDD的忠实拥趸,这些年的技术潮流并没有让我改变看法,反而加深了对DDD的认知。
在微服务流行的时候,我并没有多大的感触。从DDD的视角下看,微服务并没有什么新意,只是把领域服务里面的一个个子域拆解开独立进行部署和维护。如果你能掌握好DDD的领域建模和界限上下文,那么在一个服务里维护起来反而能带来更多的优势。
这次Vibe Coding的流行,让我觉得DDD中的战术部分可能没那么重要了。之前大家总是对DDD的落地实践十分好奇,所以对其中的一些战术部分比较看重,比如怎么实现一个领域服务、如何对实体建模、什么是领域事件等等。但是战术实践恰恰并不是DDD最重要的部分。不是说这些技巧不重要,而是说知道这些概念,通过恰到好处的封装为自己可用的部分就可以了。之前大家总是纠结为什么DDD没有一个像Spring一样的框架,大家照着写就能写出原滋原味的DDD风格代码。我要说的是,如果真的有这样一个框架,那也一定是骗你的,DDD的精髓在“意”不在“力”,战术固然重要,战略才是王道。
Vibe Coding让DDD的战术实现门框降低了不少,我相信不久之后,就会有人将这些技巧打包成为一个SKILL开放给大家使用,所以大家不要再纠结哪些风格更符合DDD Style了。虽然代码实现的难度降低了,但是要做什么以及为什么这么做,这些还是目前不能被AI取代的地方。Know why比Know how将更加重要。业务的复杂性不会因为你用了什么工具而改变,拆解问题域和解空间的探索还需要资深程序员抽丝剥茧的分析,这种洞见能力需要日积月累的经验和直觉。而DDD的战略设计恰恰是应对业务复杂性的一套方法论,它的领域建模、界限上下文、统一语言都是为了应对业务的复杂性而存在的。我觉得用DSL的形式来描述战略部分将是一种不错的尝试,说不定形成标准后,也能让Agent和我们形成统一语言,我很看好这个方向。
写在最后
我曾在《架构为什么会腐化》 中提到Talk is not cheap ,想不到一语成谶,真有一天靠聊天就可以写代码了。在这个AI发展以日为单位的时代,我也时常会有FOMO的感觉。虽然我时常会关注最新的技术,但是某一天发现,自己做的事情不再是最酷的,还是有一种恍然若失的错觉。被困在传统的枷锁里,我也渴望做点不一样的事情。相信有不少人跟我有同样感觉,还是乔帮主的那句话与君共勉:
Stay Hungry, Stay Foolish