氛围编程 vibe coding

vibe coding 这是最近很火的一个名词,氛围编程,大概意思就是通过和AI Agent的交互,来让AI负责主要代码的编写,工程师的角色或者说任务从一个主要的写代码的人,变成主要的思考框架输出者。 最近深度使用了这种方式,构建了几个project,有从零开始构建的类型,也有去加插件类的对已有代码的外挂式增强,也有直接去改项目的主要代码的。 这里说一下自己的感受 首先整体的使用方式,使用 Cursor, 通过配置 Cursor Rules 以及一些 MCP Tools 来对cursor进行一定的限制和增强。 这点尤为重要,因为大语言模型的一个问题是一定的不稳定性,而在编程当中,保持代码风格一致性,设计模式的一致性,是非常重要的。没有rules的限制,往往会造成每次生成的结果方差很大,无法在同个项目的多次迭代中保持一致。 Prompt 很重要,需要给出足够的上下文,描述清楚你到底想做什么,甚至是想用什么方式做。这些是需要自己去做研究,做 LLM Deep Research 的 – (可以借助openai o1的deep research 能力,或者grok的能力,去迅速掌握某个话题的一些核心的理念) 反馈机制,需要描述清楚你到底最终想要达到什么状态,让LLM确定出如何就算做完了。当前的agent是有工具调用能力的,可以多次迭代,需要使其清楚到底现在进展到了什么程度,是否真的完成了任务。 在上述的三个场景当中,用的最舒服的还是从零开始构建代码,前提是带着比较合理的cursor rules,对于写一些工具类的脚本的场景,还是很适合的,可以很快完成一个功能的开发; 插件式功能开发只要把如何算作完成这件事情定义好,做的也还okay;对于大型企业级工程项目,表现比较一般,尤其是涉及到多文件的改动的时候,如果需求描述不够明确,往往会改动到你没有设想的地方;以及会有一些风格,逻辑的不一致,这很可能会导致你使用更长的时间去调整cursor写出的代码。 Agent 本质上还是依赖于公开网站上的资料,以及已有的一些代码,很不幸工业级代码所占比例在互联网当中感觉占的还是有点少,直接输出的代码质量还是不太行。最近在探索的就是给更多的retro机制,让cursor把每次做的不好的地方记录下来,放到cursorrules当中,这样子至少同样的问题下次不会再犯。 有效,但是是不是很drama。Agent 解放生产力,但是往往很放荡不羁,于是还是需要人来加很多边界。只要人还需要读懂代码,那么就得按照我们约定俗成的方式,设计模式,MVC等等,来按照这些协议去书写更有边界的代码。 未来来了么? 我想总有一天,工程师会更像产品,对于技能术的要求会变化,考验的是端到端的思考能力,架构能力。哪怕是Vibe Coding,不同的人生成的代码质量还是会很不一样,vibe依旧不是银弹,但是他可以很大程度去增强一个工程师的能力边界,开发速度。试想一个本身就是10x的工程师,在用了这些工具之后,迅速变成30X,50X,这是一种什么体验!

March 27, 2025 · 1 min · Stometa

Flywheel effect

Context Amazon is famous for its Amazon Flywheel theory, as it builds a positive and self enhanced loops to make it drives faster and stronger. Our job is also to build such flywheel in our daily life, so it comes to be much more enjoyable daily for ourselves. Content Make the work itself come to be rewarding, thus itself motivates us to do more, in an enjoyable way. The reward should come from ourselves as we are changing ourselves to become better, we are consuming new info, learn brand new stuff, build more connections, etc. growth mindset But that should not come from external system, like people’s praise. That’s not sustainable ...

February 10, 2025 · 1 min · Stometa

Confirmation Bias

Confirmation Bias definition When we have a decision in advance, we’ll try to find all examples matching this decision, but ignore all dis-confirming objects, that’s build in stuff in our nature solutions To overcome it, we should not bring some theory in advance and try to find supportive data. Instead, start from all data first, accumulate them and see its relation, then build our theory based on all valid examples. ...

February 2, 2025 · 1 min · Stometa