斯坦福CS146S:现代软件开发者Week8学习笔记

Week8:自动化应用构建

自动化UI和APP构建

Modern SaaS development has focused on web apps for over two decades

经典的开发架构模式

缩写全称说明
LAMPLinux + Apache + MySQL + PHP/Python/Perl最经典的传统 Web 开发栈,2000年代主流
MERNMongoDB + Express + React + Node.js现代全栈 JavaScript 开发,2010年代流行
JAMJavaScript + APIs + MarkupJAMstack 架构,静态站点生成
Serverless无服务器架构使用云函数(如 AWS Lambda),无需管理服务器

What Has Changed

三大变化:

  • Prompt 编程:用自然语言代替手写代码
  • 工程师角色转变:从纯编码转向设计 + 产品 + 技术
  • 全民开发:非技术人员也能构建应用

代际演进:

第一代无代码(Wix/Squarespace/Webflow):可视化建站

第二代 AI 工具(Lovable/Vercel v0/Cursor):自然语言构建完整应用

对比之前复杂的 AWS 架构图,现在可以用 AI 工具在几分钟内完成同样的事情,这是"vibe coding"的真正实现——用自然语言编程。

Limitations

1 AI 生成的代码就像一个“黑盒”。当 AI 一次性写出了一个能跑的 App,一旦代码出现 Bug,或者需求稍微变复杂导致代码跑不通了,因为你是用“提示词”生成的代码,你可能根本没有逐行读过代码,也不理解底层的逻辑。这时候你想修 Bug,你会发现根本无从下手。

2 AI 不是神,它给出的代码只是基于概率生成的“建议”,它经常会产生幻觉(Hallucination)——比如编造一个不存在的函数,或者用一种错误的方式调用 API。不经Review的代码可能导致项目的后期灾难。

3 AI 生成的代码往往缺乏安全性考量。比如AI 可能会为了方便,直接把数据库密码写在代码里;AI 可能会引用有已知漏洞的旧版本第三方库;数据泄密;生成的代码可能没有做 SQL 注入防护或 XSS 防护等等

4 如何防止同质化。如果你让 AI 做一个登录页,它生成的界面虽然好看,但跟网上成千上万个 AI 生成的界面长得一模一样。这就导致了严重的“AI 味”,缺乏品牌独特性。想要做出独特的设计,目前还是得靠人工精细调整。

5 这些应用在实际需求的复杂性。目前的 AI 工具非常擅长做简单的 CRUD 应用(增删改查),比如待办事项列表、简单的博客、落地页。一旦涉及到企业级复杂度,AI 就搞不定了。比如:需要处理高并发、复杂的事务逻辑、微服务架构、或者对接遗留的老系统等

AI 的“记忆”(Context Window)是有限的,它无法理解一个拥有几万个文件的大型项目的整体架构。

虽然 AI 工具(Vibe Coding)很火,能快速生成原型,但它目前只能做表面功夫和简单应用。一旦涉及到调试、安全、复杂逻辑、独特设计,还是得靠懂技术的专业程序员。

Licensed under CC BY-NC-SA 4.0