每日技术文章:Vibe Coding 不是低质量代码的借口

“Move faster and break even more things”

That twist on Silicon Valley’s old mantra echoes through recent engineering circles as “vibe coding” enters the chat. Yes, AI-assisted development is transforming how we build software, but it’s not a free pass to abandon rigor, review, or craftsmanship. “Vibe coding” is not an excuse for low-quality work.

硅谷那句老口号的新说法最近在工程师圈子里传开了 —- 这都因为“氛围编码(vibe coding)”火了起来。是的,AI辅助开发确实改变了我们写代码的方式,但这可不代表就能丢了严谨、不做审查,也不管活儿干得糙不糙。“vibe coding”可不是敷衍了事的借口。

Let’s acknowledge the good: AI-assisted coding can be a game-changer. It lowers barriers for new programmers and non-programmers, allowing them to produce working software by simply describing what they need. This unblocks creativity – more people can solve their own problems with custom software, part of a trend some call the unbundling of personal software (using small AI-built tools instead of one-size-fits-all apps). Even experienced engineers stand to benefit.

让我们承认好的方面:AI辅助编码可以改变 编码规则。它降低了新程序员和非程序员的编码门槛,使得他们能够通过简单的描述自己的需求来生成可运行的软件。这消除了创造力的障碍 —- 更多的人可以通过定制软件来解决自己的问题吗,这是某些人称之为 个人软件解耦 (使用小成本AI构建的工具,而不是通用应用程序)趋势的一部分。即使是经验丰富的工程师也受益其中。

However, as any seasoned engineer will tell you, speed means nothing if the wheels fall off down the road. And this is where the cracks begin to show – in the gap between the vibe and the reality of building maintainable, robust software.

然而,任何有经验的工程师都会告诉你,如果车轮在道路中途滑落,速度就毫无意义。而问题就出在这,vibe 在和可维护性、健壮性软件的现实之间的缝隙。

残酷的事实:代码质量不是自动化的

The hard truth: quality isn`t automatic.

For all the hype, vibe coding has earned plenty of skepticism from veteran developers. The core critique: just because an AI can spit out code quickly doesn’t mean that code is any good. In fact, it can be downright dangerous to accept AI-generated output at face value. The joking complaint that “two engineers can now create the tech debt of fifty” contains a grain of truth. Unchecked AI-generated code can massively amplify technical debt, the hidden problems that make software brittle and costly to maintain.

对于所有的炒作,vibe coding已经存在许多资深开发者的怀疑。核心批评:仅仅因为AI可以快速输出代码,并不意味着代码有多好。事实上,从表面上接受ai生成的输出的非常危险的。“两个工程师现在可以创造50个工程师的技术债务”,这一开玩笑式的抱怨并非毫无道理。未经检查的AI生成的代码会极大的放大技术债务,这些隐藏的问题使软件变得脆弱,维护成本高昂。

Many early vibe-coded projects look good on the surface (“it works, ship it!”) but hide a minefield of issues: no error handling, poor performance, questionable security practices, and logically brittle code. One might say such projects are built on sand. I’ve used the term house of cards code – code that “looks complete but collapses under real-world pressure”. If you’ve ever seen a junior developer’s first big feature that almost works but crumbles with one unexpected input, you get the idea. AI can churn out a lot of code quickly, but volume ≠ quality.

许多早期通过vibe编写的项目表面上看起来很好(“它能跑起来,发布!”),但是忽视了一系列问题:没有错误处理、性能不佳、可疑的安全实践以及逻辑上脆弱的代码。有人可能会说,这样的项目是建立在沙子上的,我是用了“纸牌屋代码” — 代码“看起来完整,但在现实世界的压力下崩溃”的代码。如果你曾经看到过初级开发人员的第一个大几乎可以工作,但由于一个意想不到的输入就会崩溃,那么你就会明白,AI可以快速生成大量代码,但数量≠质量。

“AI is like having a very eager junior developer on your team” an idea well illustrated in this illustration by Forrest Brazeal.

“AI就像在你的团队中拥有一个非常热心的初级开发者”,Forrest Brazeal在这幅插图中很好地说明了这一想法。

The dangers aren’t purely hypothetical. Consider maintainability: Who will maintain an AI-written module if it’s obscure or overly complex? If even the original developer doesn’t fully understand the AI’s solution, future modifications become nightmares. Security is another huge concern – AI might generate code that appears to work but has SQL injection flaws or unsafe error handling. Without rigorous review, these can slip into production. There’s also the risk of overfitting to the prompt: an AI will do exactly what you ask, which might not be exactly what you truly need. Human coders often adjust a design as they implement, discovering misassumptions along the way. AI won’t catch those misassumptions unless the human in the loop notices and corrects it.

这些危机并非纯粹是假设的。考虑可维护性:如果AI写的模块晦涩难懂或过于复杂,谁来维护它呢?如果连最初的开发者都不能完全理解AI的解决方案,那么未来的维护就会变成噩梦。另一个巨大的担忧的安全性 —- AI可能会生成看似有效但存在SQL注入缺陷或不安全错误处理的代码。如果没有严格的审查,这些代码可能会泄露到生产环境中。这也存在过度拟合的风险:AI将完全按照你的要求去做,而者可能不是你真正需要的。人类程序员在研发过程中经常调整设计,在此过程中发现错误的逻辑。AI无法捕捉到这些错误逻辑,除非处于编码中的人类注意到并纠正它。

None of this is to say AI can’t write good code – it sometimes does – but rather that context, scrutiny, and expertise are required to discern good from bad. In 2025, we are essentially using a very eager but inexperienced assistant. You wouldn’t let a first-year junior dev architect your entire system unsupervised; similarly you shouldn’t blindly trust an AI’s code without oversight. The hype of “AI magic” needs to meet the reality of software engineering principles.

“这并不是说AI不能编写出好的代码” —- 有时确实可以 — 但是需要上下文、审查和专业知识来辨别好和坏。在2025年,我们基本上都是在使用一个非常热衷开发但经验不足的助手。你不会让一个第一年进入的初级开发人员在你不知情的情况下接手你的整个项目。类似地,你也不应该盲目相信一个没有监督审查的AI代码。AI 魔法 的炒作需要满足软件工程原则的现实。

So, how do we strike the balance? The key is not to throw vibe coding out entirely – it can be incredibly useful – but to integrate it in a disciplined way. Engineers must approach AI assistance as a tool with known limitations, not a mystical code genie. In practice, that means keeping the human in the loop and maintaining our standards of quality. Let’s explore what that looks like.

那么,我们该如何找到平衡呢?关键在于不要完全抛弃 vibe coding — 它可以非常有用 – 但要以有规则的方式将其投入其中。工程师必须将AI助手视为一个已知局限性的工具,而不是神秘的代码精灵。在实践中,这意味着人类参与进来并保持我们的质量标准。让我们来看看它是什么样子的。

AI可以作为你的实习生,而不是你的替代者(保持人类参与其中)

AI as your intern, not your replacement (keeping humans in the loop)

To use vibe coding effectively, change your mindset: treat the AI like a super-speedy but junior developer on your team. In other words, you – the senior engineer or team lead – are still the one responsible for the outcome. The AI might crank out the first draft of code, but you must review it with a critical eye, refine it, and verify it meets your quality bar.

要有效地使用vibe coding,就需要改变你的思维:将AI视为团队中写代码很快的一个初级开发人员。换句话说,你 —- 高级工程师或团队负责人 — 仍然是负责结果的人。AI 尽可能生产第一个代码草稿,但你必须用批判的眼光审阅它,完善它,并验证它是否符合你的质量标准。

Experienced developers who successfully incorporate AI follow this pattern intuitively. When an AI assistant suggests code, they don’t just hit “accept” and move on. Instead, they:

  • Read and understand what the AI wrote, as if a junior dev on their team wrote it.
  • Refactor the code into clean, modular parts if the AI’s output is monolithic or messy (which it often is). Senior engineers will break the AI’s blob into “smaller, focused modules” for clarity.
  • Add missing edge-case handling. AI often misses corner cases or error conditions, so the human needs to insert those (null checks, input validation, etc.)
  • Strengthen types and interfaces. If the AI used loose types or a leaky abstraction, a human can firm that up, turning implicit assumptions into explicit contracts
  • Question the architecture. Did the AI choose an inefficient approach? Maybe it brute-forced something that should use a more optimal algorithm, or perhaps it introduced global state where a pure function would suffice. A human should examine these decisions critically.
  • Write tests (or at least, manually test the code’s behavior). Treat AI code like any PR from a coworker: it doesn’t go in until it’s tested. If the AI wrote unit tests (some tools do), double-check those tests aren’t superficial.

有经验的开发人员在成功地将AI和代码结合时,会直观地遵循这个模式。当AI顾问建议代码时,他们不会简单的点击“接受”然后继续。相反,他们:

  • 就像对待团队中的初级开发人员一样,阅读和理解AI编写的内容
  • 重构代码以提高清晰度。如果AI的输出是单一的或混乱的,将代码重构为干净的模块化部分。
  • 添加未处理的边缘情况。AI通常会忽略边缘情况或错误条件,因此人类需要添加这些情况(空检查、输入验证等)
  • 加强类型和接口。如果AI使用松散类型或缺陷的抽象,人类可以强化这些类型,将隐式类型转换成显式
  • 质疑架构。AI是不是选择了不高效的解决方案?也许它强行使用了 应该使用更优算法的 某种东西,或者它引入了全局状态,而纯函数就足够了。人类应该批判性的审查这些决策
  • 编写测试(或至少手动测试代码的行为)。将AI代码视为任何同事提交的PR:它必须经过测试才能提交。如果AI写出了单元测试(有些工具会这样做),请务必检查这些测试是否合理。

By doing this, you inject engineering wisdom into the AI-generated code. The combination can be powerful – the AI gets you a lot of code quickly, and your oversight ensures it’s solid. In fact, studies and anecdotes suggest senior devs get more value from AI coding tools than juniors. The reason is clear: seniors have the knowledge to steer the AI properly and fix its mistakes. Juniors may be tempted to treat the AI as an infallible authority, which it isn’t.

通过这种方式,你将工程智慧注入到AI生成的代码中。这种结合可以非常强大 — AI能快速为你生成大量代码,而你的监督确保这些代码是可靠的。事实上,研究和资料表明,资深开发人员从AI编码工具中获得的收益比初级开发人员更多。原因很明确:资深开发人员拥有指导AI正确运行并修正其错误的知识。初级开发人员可能会被诱惑将AI视为不会犯错的权威,但它并不是。

So, a critical rule emerges: Never accept AI-written code into your codebase unreviewed. Treat it like code from a new hire: inspect every line, ensure you get it. If something doesn’t make sense to you, don’t assume the AI knows better – often it doesn’t. Either refine the prompt to have the AI clarify, or rewrite that part yourself. Consider AI output as a draft that must go through code review (even if that review is just you). On a team, this means if a developer used AI to generate a chunk of code, they should be prepared to explain and defend it in the code review with peers. “It works, trust me” won’t fly – the team needs confidence that the code is understandable and maintainable by humans.

因此,一个关键的规则出现了:不要未经审查就接受AI编写的代码进入你的代码库。将其视为新员工的代码:检查每一行,确保你理解它。如果你觉得某部分不合理,不要假设AI更懂 —- 通常它并不懂。要么改进提示让AI澄清,要么自己重写那部分。将AI输出视为必须经过代码审查的草稿(即使审查者只是你自己)。在团队中,这意味着如果开发人员使用了AI生成了一段代码,他们应该准备好向同事解释和维护它。“它可以跑,相信我”是行不通的 — 团队需要确信代码是可被人类理解和维护的。

Another best practice: keep humans in the driver’s seat of design. Use the AI to implement, not to decide fundamental architectures. For example, you might use vibe coding to quickly create a CRUD REST API based on an existing schema – that’s well-defined work. But you shouldn’t ask the AI to “design a scalable microservice architecture for our product” and then blindly follow it. High-level design and critical decisions should remain human-led, with AI as a helper for the tedious parts. In essence, let the AI handle the grunt work, not the brain work.

另一个最佳实践:在设计过程中始终以人为主导。使用AI来实施,而不是决定基础架构。例如,你可以使用vibe coding快速基于现有模型创建一个CRUD REST API — 这是明确的工作。但你不应要求 AI “为我们的产品设计可扩展的微服务架构”,然后盲目遵循。高级设计和关键决策应保持由人主导,将AI作为繁琐工作的助手。本质上,让AI处理基础工作,而不是脑力工作。

Communication and documentation also become crucial. If you prompt an AI to generate a non-trivial algorithm or use an unfamiliar library, take the time to document why that solution was chosen (just as you would if you wrote it yourself after research). Future maintainers – or your future self – shouldn’t be left guessing about the intent behind AI-crafted code. Some teams even log the prompts used to generate important code, effectively documenting the “conversation” that led to the code. This can help when debugging later: you can see the assumptions that were given to the AI.

沟通和文档也变得至关重要。如果你提示AI生成一个非寻常的算法或使用不熟悉的库,花时间记录选择该解决方案的原因(就像你自己研究后编写它一样)。未来的维护者 — 或未来的你自己 — 不应被AI生成的代码背后的意图所迷惑。有些团队甚至会记录生成重要代码时使用的提示,有效地记录了导致代码的“对话”。这有助于后续调试:你可以看到提供给AI的假设。

In summary, human oversight isn’t a “nice-to-have” – it’s mandatory. The moment you remove the human from the loop, you’re just rolling dice on your software quality. Until AI can truly replace a senior engineer’s holistic understanding (we’re not there yet), vibe coding must be a partnership: AI accelerates, human validates.

总之,人工监督不是“锦上添花”的事 — 它是强制性的。一旦从流程中移除人工,你就是在软件质量上掷骰子。直到AI能够真正取代高级工程师的整体理解(我们还没到那一步),“vibe coding”都必须是合作关系:AI加速,人工验证。

高质量”vibe coding”的规则(实用指南)

Rules for high-quality vibe coding (practical guidelines)

Let’s crystallize the discussion into some actionable rules and best practices for teams adopting AI-assisted development. Think of these as the new “move fast, but don’t break everything” handbook – a set of guardrails to keep quality high when you’re vibing with the code.

让我们凝结一些可操作的规则和最佳实践供采用AI辅助开发的团队使用。将这些视为新的“快速行动,但不要破坏一切”手册 —- 一套在享受代码生成时保持高质量的护栏。

Rule 1: Always Review AI-Generated Code – No exceptions. Every block of code that AI produces should be treated as if a junior engineer wrote it. Do a code review either individually or with a peer. This includes code from Copilot, ChatGPT, Cursor, or any AI agent. If you don’t have time to review it, you don’t have time to use it. Blindly merging AI code is asking for trouble.

规则1:始终审查AI生成的代码 —- 没有例外。AI生成是每一块代码都应被视为由初级工程师编写。无论是单独深处还是与同事一起进行代码审查。这包括 Copilot,ChatGPT,Cursor 或任何AI agent生成的代码。如果你没有时间审查它,你就没有时间使用它。盲目合并AI代码是在自寻麻烦。

Rule 2: Establish Coding Standards and Follow Them – AI tools will mimic whatever code they were trained on, which is a mixed bag. Define your team’s style guides, architecture patterns, and best practices, and ensure that any AI-generated code is refactored to comply. For instance, if your rule is “all functions need JSDoc comments and unit tests,” then AI output must get those comments and tests before it’s done. If your project uses a specific architecture (say, layered architecture with service/repository classes), don’t let the AI shove some ad-hoc database calls in UI code – fix it to fit your layers. Consider creating linting or static analysis checks specifically for common AI mistakes (e.g. flagging use of deprecated APIs or overly complex functions). This automates quality control on AI contributions.

规则2:简历编码规范并遵循它们 —- AI工具会模仿它们所训练的任何代码,而这结果参差不齐。定义你团队的样式指南、架构模式和最佳实践,并确保任何AI生成的代码都经过重构以符合这些规范。例如,如果你的规则是“所有函数都需要JSDoc注释和单元测试”,那么AI输出必须在这些注释和测试完成前进行。如果你的项目使用特定的架构(比如分层架构与服务/仓库类),不要让AI在UI代码中硬塞一些临时的数据库调用 —- 将其修正以符合你的分层结构。可以考虑创建专门针对常见AI错误的检查工具(例如标记使用已弃用的API或过于复杂的函数)。这自动化了AI贡献的质量控制。

Rule 3: Use AI for Acceleration, Not Autopilot – In practice, this means use vibe coding to speed up well-understood tasks, not to do thinking for you. Great uses: generate boilerplate, scaffold a component, translate one language to another, draft a simple algorithm from pseudocode. Risky uses: have the AI design your module from scratch with minimal guidance, or generate code in a domain you don’t understand at all (you won’t know if it’s wrong). If you intend to keep the code, don’t stay in vibe mode – switch into engineering mode and tighten it up.

规则3:用AI加速,而非全托管 —- 实际操作中,这意味着使用vibe coding来加速那些你非常熟悉的任务,而不是替你思考。好的用法:生成模版代码、搭建组件框架、将一种语言重构成另一种语言、从伪代码草拟简单的算法。高风险用法:让AI在极少指导下从头设计你的模块,或在完全不了解的领域生成代码(你将无法判断是否正确)。如果你打算保留代码,不要停留在 vibe模式 —- 切换到工程模式并加以完善。

Rule 4: Test, Test, Test – AI doesn’t magically guarantee correctness. Write tests for all critical paths of AI-written code. If the AI wrote the code, it may even help you write some tests – but don’t rely solely on AI-generated tests, as they might miss edge cases (or could be falsely passing due to the same flawed logic). Do manual testing too, especially for user-facing features: click through the UI, try odd inputs, see how it behaves. Many vibe-coded applications work fine for the “happy path” but fall apart with unexpected input – you want to catch that before your users do.

规则4:测试、测试、再测试 —- AI并不能神奇地保证正确性。为所有AI编写的代码的关键路径编写测试。如果AI编写了代码,它甚至可能帮你写一些测试 —- 但不要完全依赖AI生成的测试,因为它们可能会遗漏边界情况(或者可能由于相同的错误逻辑而错误地通过)。也要进行手动测试,特别是对于面向用户的特性:点击UI、尝试异常输入、观察其行为。许多vibe 编码的应用程序 在“快乐路径”上运行良好,但在意外输入时会崩溃 —- 你希望在用户发现之前就捕捉到这些问题。

Rule 5: Iterate and Refine – Don’t accept the first thing the AI gives you if it’s not satisfactory. Vibe coding is an iterative dialogue. If the initial output is clunky or confusing, you can prompt the AI to improve it (“simplify this code,” “split this into smaller functions,” etc.). Or you can take the draft and refactor it yourself. Often, a good approach is using the AI in cycles: prompt for an implementation, identify weaknesses, then either prompt fixes or manually adjust, and repeat.

规则5:迭代和优化 —- 如果AI给出的结果不令人满意,不要接受第一个版本。Vibe coding是一个迭代对话的过程。如果初始输出显得笨拙或令人困惑,你可以提示AI进行改进(“简化这段代码”、“将这段代码拆分成更小的函数”等)或者你可以拿ai的代码自己进行重构。通常,一个有效的方法能循环使用AI不出问题:提示实现方案,识别缺陷,然后要么提示修复,要么手动调整,并重复这个过程。

Rule 6: Know When to Say No – Sometimes, vibe coding just isn’t the right tool. Part of using it responsibly is recognizing scenarios where manual coding or deeper design work is needed. For example, if you’re dealing with a critical security module, you probably want to design it carefully and maybe only use AI to assist with small pieces (if at all). Or if the AI keeps producing a convoluted solution to a simple problem, stop and write it yourself – you might save time in the end. It’s important not to become overly reliant on the AI to solve every problem. Don’t let “AI did it” become an excuse for not understanding your own code. If after a few attempts the AI isn’t producing what you need, take back control and code it the old-fashioned way; you’ll at least have full understanding then.

规则6:知道何时拒绝 —- 有时候,vibe coding 并不是合适的工具。负责任地使用它的部分内容是识别需要手动编码或更深入设计工作的场景。例如,如果你再处理一个关键的安全模块,你可能需要小心设计它,也许只使用AI来协助处理小部分(如果可以的话)。或者如果AI不断为简单的问题生成复杂的解决方案,停下来自己编写 —- 你最终可能会更节省时间。重要的是不要过度依赖AI来解决所有问题。不要让“AI完成了”成为你不理解自己代码的借口。如果几次尝试后AI没有生成必须要的内容,夺回控制器并用传荣方式编写代码;至少那时你是完全理解的。

Rule 7: Document and Share Knowledge – Ensure that any code coming from AI is documented just as thoroughly as hand-written code (if not more). If there were non-obvious decisions or if you suspect others might be confused by what the AI produced, add comments. In team discussions, be open about what was AI-generated and what wasn’t. This helps reviewers pay extra attention to those sections.

规则7:记录和分享知识 —- 确保来自AI的任何代码都像你手写的代码一样(甚至超过)详尽的记录。如果存在不明显的选择或你怀疑其他人可能会对AI生成的内容感到困惑,请添加注释。在团队讨论中,要公开说明哪些是AI生成的,哪些不是。这有助于审查者特别关注这些部分。

Following these rules, teams can enjoy the productivity perks of vibe coding while mitigating the worst risks. Think of it as augmenting human developers, not replacing them. The goal is to co-create with AI: let it handle the repetitive drudge work at high speed, while humans handle the creative and critical thinking parts.

遵循这些规则,团队可以享受Vibe Coding带来的生产力优势的同时,降低最坏的风险。将其视为增强人来开发者,而非取代他们。目标是与AI共同创造:让AI高速处理重复性繁重工作,而人类负责创意和批判性思维部分。

当氛围编程有效时(以及何时失效)

When vibe coding works (and when it falls apart)

It’s also important to recognize where vibe coding shines and where it doesn’t. Not every project or task is equally suited to an AI-driven workflow. Here’s a breakdown drawn from industry discussions and early experiences:

同时,也要认识到vibe coding的优势和局限。并非每个项目或任务都同样适合AI驱动的流程。以下是基于行业讨论和早期经验的分析:

Great Use Cases:

  • Rapid prototyping is perhaps the sweet spot of vibe coding. If you have an idea for a small app or feature, using an AI assistant to throw together a quick prototype or proof-of-concept can be incredibly effective. In such cases, you don’t mind if the code is a bit hacky; you just want to validate the idea. Many engineers have found success in weekend projects using only AI to code – a fun way to test a concept fast. Another good use case is one-off scripts or internal tools: e.g., a script to parse a log file, a small tool to automate a personal task, or an internal dashboard for your team. These are typically low-stakes; if the script breaks, it’s not the end of the world. Here, vibe coding can save time because you don’t need production-grade perfection, just something that works for now.
    快速原型制作或许正是 vibe coding 的绝佳应用场景。如果你有一个小型应用或功能的想法,使用 AI 助手快速搭建一个原型或概念验证,可以非常高效。在这种情况下,你并不介意代码略显粗糙,你只是想验证想法。许多工程师通过周末项目仅使用 AI 编写代码取得了成功——这是一种快速测试概念的好方法。另一个好的应用场景是一次性脚本或内部工具:例如,解析日志文件的脚本、自动化个人任务的简单工具,或团队内部使用的仪表板。这些通常风险较低;如果脚本出问题,也并非世界末日。在这里,vibe coding 可以节省时间,因为你不需要生产级的完美代码,只需要一个能暂时运行的东西。
  • Vibe coding also works well for learning and exploration. If you’re working in a new language or API, asking an AI to generate examples can accelerate your learning. (Of course, double-check the AI’s output against official docs!) . In exploratory mode, even if the AI’s code isn’t perfect, it gives you material to tinker with and learn from. It’s like having a teaching assistant who can show you attempts, which you then refine.
    氛围编程也适用于学习和探索。如果你正在使用一种新语言或 API,让 AI 生成示例可以加速你的学习。(当然,要对照官方文档再次检查 AI 的输出!)在探索模式下,即使 AI 的代码不完美,它也能为你提供可供修改和学习的内容。这就像有一个教学助理,可以向你展示尝试,然后你进行改进
  • Additionally, AI code generation can excel at structured, boilerplate-heavy tasks. Need to create 10 similar data classes? Or implement a rote CRUD layer? AI is great at that kind of mechanical repetition, freeing you from the tedium. As long as the pattern is clear, the AI will follow it and save you keystrokes (just verify it followed the pattern correctly).
    此外,AI 代码生成在结构化、模板化任务上表现优异。需要创建 10 个相似的数据类吗?或者实现一个常规的 CRUD 层?AI 擅长这种机械重复,能让你从繁琐中解脱出来。只要模式清晰,AI 就会遵循它并帮你节省按键(只需验证它是否正确遵循了模式)。

Not-So-Great Use Cases:

  • On the flip side, enterprise-grade software and complex systems are where vibe coding often falls flat. Anything that requires a deep understanding of business logic, heavy concurrency, rigorous security, or compliance is not something to fully trust to AI generation. The AI doesn’t know your business constraints or performance requirements unless you explicitly spell them out (and even then, it may not get it right). For example, a fintech application handling payments or an aerospace control system must meet standards that current AI simply isn’t equipped to guarantee. In these domains, AI can assist in parts, but human expertise and careful QA are paramount for the final product.
    另一方面,企业级软件和复杂系统往往是 vibe coding 表现不佳的地方。任何需要深入理解业务逻辑、高并发处理、严格安全措施或合规性的工作,都不应完全依赖 AI 生成。除非你明确说明(即便如此,它也可能无法完全理解),否则 AI 并不了解你的业务约束或性能要求。例如,处理支付的金融科技应用或航空航天控制系统必须符合当前 AI 无法保证的标准。在这些领域,AI 可以辅助部分工作,但最终产品的质量仍取决于人类的专业知识和细致的质量保证。
  • Vibe coding also struggles with long-term maintainability. If you’re building a codebase that will live for years and be worked on by many developers, starting it off with a hodge-podge of AI-generated code can be a poor foundation. Without strong guidance, the architecture might be inconsistent. It’s often better to spend extra time up front building a clean framework (with or without AI help) than to patchwork a whole product via successive AI prompts. Many early adopters have observed that the initial time saved by vibe coding can be lost later during code cleanup and refactoring when the project needs to scale or adapt.
    Vibe coding 同样难以保证长期的可维护性。如果你正在构建一个将存在多年并由许多开发者维护的代码库,从一堆 AI 生成的代码开始可能会是一个糟糕的基础。缺乏明确的指导,架构可能不一致。通常,在项目初期投入额外时间构建一个干净的框架(无论是否借助 AI)比通过连续的 AI 提示来修补整个产品要好得多。许多早期采用者已经观察到,Vibe coding 最初节省的时间,在项目需要扩展或适应时,会在代码清理和重构阶段被浪费掉。
  • Another scenario to be wary of is critical algorithms or optimizations. AI can produce a sorting algorithm or a database query, sure – but if you need it to be highly optimized (say, a custom memory management routine, or an algorithm that must run in sub-linear time), you’re in territory where human ingenuity and deep understanding are still superior. AI might give you something that works on small data, but falls over at scale, and it won’t necessarily warn you about that. A human performance engineer would design and test with those considerations in mind from the start.
    另一个需要警惕的情况是关键算法或优化。AI 当然可以生成一个排序算法或数据库查询——但如果需要它进行高度优化(比如一个自定义的内存管理例程,或一个必须在亚线性时间内运行的算法),你将进入人类才智和深刻理解仍然占优的领域。AI 可能会给你一个在小数据集上运行正常但在规模扩大时崩溃的方案,而且它不一定会提醒你这一点。一个人类性能工程师从一开始就会考虑到这些因素进行设计和测试。
  • Finally, any situation where explainability and clarity are top priorities might not be ideal for vibe coding. Sometimes you need code that other people (or auditors) can easily read and reason about. If the AI comes up with a convoluted approach, it could hinder clarity. Until AI can reliably produce simple and clearly structured code (which it’s not always incentivized to do – sometimes it’s overly verbose or oddly abstract), a human touch is needed to keep things straightforward.
    最后,在任何解释性和清晰性是首要考虑的情况下,氛围编码可能并不理想。有时你需要其他人(或审计员)能够轻松阅读和推理的代码。如果 AI 提出一种复杂的方法,它可能会妨碍清晰性。直到 AI 能够可靠地生成简单且结构清晰的代码(而它并不总是有动力这样做——有时它过于冗长或奇怪抽象),就需要人类的介入来保持事情的简单明了。

In summary, vibe coding is a powerful accelerator, but not a silver bullet.

总之,vibe coding是一个强大的加速器,但不是万能药。

Use it where speed matters more than polish, and where you have the leeway to iterate and fix things. Avoid using it as a one-shot solution for mission-critical software – that’s like hiring a race car driver to drive a school bus; wrong tool for the job. Maybe one day AI will be so advanced that vibe coding truly can be the default for all development – but today is not that day. Today, it works best as a helper for the right problems and with the right oversight.

在速度比完美更重要,且你有空间迭代和修正的地方使用它。避免将其作为关键任务软件的一劳永逸的解决方案——这就像雇一个赛车手来开校车;用错了工具。也许有一天 AI 会如此先进,以至于 vibe coding 真正可以成为所有开发的默认选择——但今天还不是那一天。今天,它最适合作为解决正确问题并得到正确监督的助手。

结论:负责任地 vibe——拥抱 vibe,但尊重工艺。

Conclusion: vibe responsibly – embrace the vibes, but honor the craft

Vibe coding, and AI-assisted software development in general, represents a thrilling leap forward in our tools. It’s here to stay, and it will only get more sophisticated from here. Forward-looking engineering teams shouldn’t ignore it – those who harness AI effectively will likely outpace those who don’t, just as teams that embraced earlier waves of automation and better frameworks outpaced those writing everything from scratch. The message of this article is not to reject vibe coding, but to approach it with eyes open and with engineering discipline intact.

“情绪化编程,以及 AI 辅助的软件开发,代表着我们工具的一次激动人心的飞跃。它将长久存在,并且只会变得更加复杂。面向未来的工程团队不应忽视它——那些有效利用 AI 的团队可能会超越那些没有利用 AI 的团队,就像那些拥抱早期自动化浪潮和更好框架的团队超越了那些从零开始编写所有内容的团队一样。这篇文章的信息不是要拒绝情绪化编程,而是要保持清醒的头脑和完整的工程纪律来应对它。”

The big takeaway is that speed means nothing without quality. Shipping buggy, unmaintainable code faster is a false victory – you’re just speeding towards a cliff. The best engineers will balance the two: using AI to move faster without breaking things (at least not breaking things any more than we already do!). It’s about finding that sweet spot where AI does the heavy lifting and humans ensure everything stands up properly.

最重要的启示是,没有质量,速度就毫无意义。更快地交付有错误、难以维护的代码是一种虚假的胜利——你只是在加速走向悬崖。最好的工程师会平衡这两者:利用 AI 来提高速度而不破坏事物(至少不会比我们原本已经破坏的更严重!)。关键在于找到那个 AI 承担重活而人类确保一切正常运行的甜蜜平衡点。

For tech leads and engineering managers, the call to action is clear: set the tone that AI is a tool to be used responsibly. Encourage experimentation with vibe coding, but also establish the expectations (perhaps via some of the rules we outlined) that safeguard your codebase. Make code reviews mandatory for AI-generated contributions, create an environment where asking “hey, does this make sense?” is welcome, and invest in upskilling your team to work with AI effectively. This might even mean training developers on how to write good prompts or how to evaluate AI suggestions critically. It’s a new skill set, akin to the shift to high-level languages or to distributed version control in the past – those who adapt sooner will reap benefits.

对于技术主管和工程经理来说,行动号召很明确:确立 AI 应被负责任使用的基调。鼓励进行氛围编码的实验,但也要通过我们概述的一些规则来建立预期,以保护你的代码库。要求对 AI 生成的贡献进行代码审查,创造一个可以自由提问“嘿,这合理吗?”的环境,并投资于提升团队与 AI 高效协作的技能。这可能意味着培训开发人员如何写出好的提示,或如何批判性地评估 AI 建议。这是一种新技能,类似于过去转向高级语言或分布式版本控制的转变——那些更早适应的人将获得收益。

We should also keep in perspective what truly matters in software engineering: solving user problems, creating reliable systems, and continuously learning. Vibe coding is a means to an end, not an end itself. If it helps us serve users better and faster, fantastic. But if it tempts us to skip the due diligence that users ultimately rely on (like quality and security), then we must rein it in. The fundamentals – clear thinking, understanding requirements, designing for change, testing thoroughly – remain as important as ever, if not more so.

我们也应保持清醒,认识到软件工程中真正重要的是:解决用户问题、创建可靠的系统,以及持续学习。编码时的感觉只是一种手段,而非目的本身。如果它帮助我们更快更好地服务用户,那太好了。但如果它诱使我们跳过用户最终依赖的尽职调查(如质量和安全),那么我们必须加以约束。基础要素——清晰的思维、理解需求、设计以应对变化、彻底测试——其重要性不仅没有降低,反而可能更加重要。

In the end, perhaps the ethos should be: “Move fast, but don’t break things – or if you do, make sure you know how to fix them.” Leverage the vibes to code at light speed, but back it up with the solid bedrock of engineering excellence. AI can coexist with craftsmanship; in fact, in the hands of a craftsman, it can be a powerful chisel. But the craftsman’s hand is still needed to guide that chisel to create something truly enduring and well-made.

最终,或许理念应该是:“快速行动,但不要破坏事物——如果你破坏了,确保你知道如何修复它们。”利用氛围以高速编码,但用卓越工程学的坚实基础来支撑。人工智能可以与手工艺共存;事实上,在匠人的手中,它可以是强大的凿子。但匠人的双手仍然需要引导那把凿子,以创造出真正持久且精良的作品。

So, vibe on, developers – just do it with care. Embrace the future, but don’t abandon the principles that got us here. Vibe coding is not an excuse for low-quality work; rather, it’s an opportunity to elevate what we can achieve when we pair human judgment with machine generative power. The teams that internalize this will not only move fast – they’ll build things worth keeping.

所以,开发者们,大胆去尝试吧——但务必小心谨慎。拥抱未来,但不要抛弃带我们走到这里的那些原则。氛围编程不是低质量工作的借口;相反,它是一个机会,让我们在结合人类判断与机器生成能力时,能够提升我们能达成的成就。那些内化这一理念团队不仅会行动迅速——他们还会创造出值得留存的作品。

Happy coding, and keep the vibes high and the quality higher.

评论

  1. 博主
    5 月前
    2026-2-19 3:44:35

    vibe

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇