2025年4月17日

有界限的氛围编程 — 如何在 AI 时代构建应用程序

随着AI编码工具的兴起,软件开发正在快速演进。本文探讨了开发者如何利用这些工具的速度和强大功能而不失控,以及为什么理解你的代码仍然很重要。

Vibe Coding with Limits — How to Build Apps in the Age of AI

有限度的“随心所欲”编码

“随心所欲”编码(vibe coding)的概念——即向AI描述你想要的功能,让它生成代码——已经抓住了开发者的想象力。其结果可能令人印象深刻:从简单的描述中具现出功能原型,在无需纠结语法的情况下实现复杂的算法,以及无需繁琐的CSS调整即可组装UI。

但任何尝试过这种方法的开发者都不可避免地会遇到其局限性。经过几轮提示后,原本干净的实现往往变得难以驾驭。细微的错误悄然潜入,变得越来越难以解决。轻松开发的承诺被熟悉的挫败感所取代——现在,这种挫败感又因代码不是自己所写而加剧。

2025年的现实是,开发者仍然需要理解他们正在发布的代码。AI可以显著加速开发,但它(目前)无法取代使应用程序健壮和可维护的关键思维和系统设计技能。

那么,在利用这些强大新工具的同时,构建全栈应用程序的最佳方法是什么?

理解AI工具的范围

AI编码工具存在于一个抽象的谱系中,每种工具都提供不同程度的协助和控制。选择哪种工具取决于你自身的经验和个人目标。

Blog image

让我们仔细看看抽象的层次,以及如何定位最受欢迎的AI软件开发工具。

低层次:AI辅助代码编写

在抽象阶梯的底部是那些帮助你更高效地编写代码而不改变你基本工作流程的工具。

  • Claude Code:一款与你的终端集成的AI助手,扮演一个响应自然语言的结对程序员。
  • Windsurf/Cursor:专门围绕AI辅助构建的IDE,在提高编码体验的同时让开发者保持完全控制。
  • GitHub Copilot:VS Code自带的“AI结对程序员”。

这些工具通过直接集成到开发者熟悉的工具和工作流程中来协助编写代码。它们特别适用于生成样板代码、编写“胶水代码”(如基本的CRUD操作或DTO)或实现测试等工作流程。

中层次:提示优先,可访问代码库

该谱系的中间部分是由以提示作为主要界面,但允许你直接修改生成代码的工具组成。这通常通过将你的代码“弹出”到一个GitHub仓库中来实现,你可以在其中根据需要进行手动更改。

这类工具的例子包括:co.dev、Lovable、v0、Replit、Bolt等。

这些方法在将大部分工作交给AI处理与在需要时保持精确控制之间取得了平衡。

高层次抽象:“无代码”AI平台

在最高抽象层次上是那些在过去几年中出现的“无代码”应用程序构建工具的演进平台。

  • Bubble.io:一个带有AI辅助的可视化编程平台。
  • Glide:通过AI驱动功能从电子表格创建应用程序。
  • Gamma:通过自然语言构建交互式演示文稿和轻量级应用程序。

虽然这些工具可以最大化简单用例的生产力,例如基本的CRUD应用程序或定义明确的单任务应用程序(如待办事项应用、国际象棋游戏或个人例行追踪器),但它们不提供直接定制代码的路径,因此不适用于具有更复杂要求的应用程序。

代码 vs 基础设施:AI无法帮助的地方

尽管AI在生成代码方面变得非常强大,但应用程序开发中有一个关键组成部分是它无法取代的:你的代码将运行的计算基础设施以及存储基础设施。

无论你的AI生成应用程序运行得多好,它仍然需要一个实际运行的地方。你需要:

  • 可靠执行代码的计算资源
  • 以适当保证维护数据的存储系统
  • 安全连接组件的网络基础设施

像Vercel这样的平台提供了计算基础设施并简化了应用程序的部署——然而,你的应用程序仍然需要与数据库通信。

运行在重量级操作系统上的传统数据库由于其高资源消耗、配置开销和缓慢的冷启动,不适合现代AI驱动的软件开发时代。

Prisma Postgres:为AI开发时代设计的数据库

这就是像Prisma Postgres这样的解决方案发挥特殊价值的地方!Prisma Postgres是首个基于高效微内核构建的无服务器数据库,旨在单机上运行数千个实例。

它提供了开发者所需的可靠性,而无需AI无法抽象掉的运维复杂性。当AI帮助你在代码生成上更快地前进时,你需要能够跟上步伐的基础设施——可扩展、按需提供且只需最少配置。

要试用Prisma Postgres,只需在你的终端中运行此命令

Prisma Postgres还通过模型上下文协议(MCP)直接与你喜欢的LLM和AI编码环境集成。

只需使用此JSON片段将其添加到你所需AI工具的MCP配置中

Prisma Postgres文档中了解更多信息。

何时使用AI?

尽管AI在编写代码方面已经变得非常强大,但它(目前)尚未取代开发者。理解AI擅长什么以及人类专业知识仍然至关重要的地方,是有效使用AI工具的关键。

让我们看几个抽象谱系低端AI工具(如Cursor、Windsurf、GitHub Copilot等)适用的一些用例和场景。

例行和单调任务 / 胶水代码

像实现CRUD操作、设置身份验证流程或创建标准API端点等任务,都遵循AI可以可靠复制的既定模式。这些是委托给AI助手的完美候选者,让你能够专注于开发的更具创造性的方面。

按规范编码

当你有清晰的需求和规范时,AI可以有效地将它们转化为可用的实现。对于具有明确输入、输出和行为的功能尤其如此。

快速原型制作

AI在快速创建功能原型以演示概念和验证想法方面表现出色。在探索想法或与用户测试新功能时,AI生成的代码可以显著加速反馈周期,即使你计划为生产重构或只是使用低质量的“一次性代码”构建初始版本。

你仍然需要理解你的代码(暂时!)

AI代表着编程抽象阶梯上的下一步——从机器代码到汇编语言再到高级语言,再到框架,现在是自然语言接口。管理先前转换的相同规则也适用于此:

  • 更高的抽象可以提高生产力:用自然语言描述功能比逐行编写更快。
  • 但抽象有漏洞:当出现问题时(它们会的),理解抽象之下发生的事情变得至关重要。
  • 调试复杂性不会消失:随着你所指定的与所实现之间的差距扩大,它通常会增加。

最有效的开发者将AI视为一个强大的工具,而不是理解力的替代品。他们使用AI来加速开发,同时对生成的代码保持足够的了解,以便随着时间的推移进行调试、优化和维护。

结论

在AI时代构建全栈应用程序并非盲目通过提示生成代码——而是在AI加速和人工监督之间找到适当的平衡。

在这个新时代最成功的开发者将是那些:

  • 利用AI执行适当的任务,同时保持架构控制
  • 选择与AI加速开发相辅相成的基础设施
  • 理解他们发布的代码,即使他们不是每行都亲手编写
  • 使用像Prisma ORM这样的类型安全工具,为人类和AI编写的代码提供保障

随着AI能力的不断发展,这种平衡将会发生变化。但就目前而言,成功的做法结合了两个世界的优点:人类开发者的创造力和判断力与AI助手的速度和模式识别能力。

不要错过下一篇文章!

订阅 Prisma 新闻通讯

© . This site is unofficial and not affiliated with Prisma Data, Inc.