乐于分享
好东西不私藏

每个程序员都需要的AI编程时代的软件工程范式

每个程序员都需要的AI编程时代的软件工程范式

摘要:AI 编程真正的分水岭,不是提示词,也不是工具数量,而是从 Vibe Coding 走向以 Context、Intent、Specification 为核心的软件工程范式。

我自己 AI 编程实践了几个月的时间之后,之前每天都在追赶最新的各种概念、技术、模型、工具 等等,从一开始的轻微 FOMO (Fear of Missing Out),到逐步的去芜存真,透过各种纷杂的表面去看本质。

  • • 最早是:智能提示、补全,最早使用 Github Copilot,感觉能猜到我的意思一样,自动补全的不仅仅是某个函数名称,而是一段代码块,就觉得比自己写要快一些,节省了不少手写的时间,但是也没那么经验,也就那么回事而已。
  • • 到了 YOLO / Vibe Coding ,有种当下真好的感觉,无与伦比的正反馈,以前感觉很复杂的事情,只有一个团队的配置,多角色多工种协作的方式,按照传统软件工程的方式,才能完成的项目,现在真的是可以一个人搞定:
    • • UI 设计,我用 pencil、google stitch,还能自动生成各种变种设计,要啥设计师啊
    • • 终端,感觉巨复杂的开发环境和工具配置,在 AI 的帮助下,1 个小时搞定了
    • • 各种工具、命令脚本,一句话搞定了,再也不用担心记不住命令、查参数或者用 man 命令了
    • • 代码生成的速度,不用自己搬砖了,几天的代码量,1 小时不到搞定
    • • 直到,发现 AI 搞了各种屎山代码,缺乏结构,各种漂移的发生,也逐步认识到 AI 的短板和不足
  • • 到现在的基于Agentic ,提示词已经没那么重要了,Context 和 Harness,当行其道

因此,最近也越来越觉得完美驾驭 AI编程 不是一件容易的事,我预测有些团队今年早晚会遭到 AI 编程的反噬,甚至我听说有些公司,都是运动式的全面拥抱 AI,各种认证,总感觉嗅到了几年前熟悉的味道,那么结果也是必然的。

其实去年就发现了这个斯坦福的课程,最近又重新看了看,越来越觉得工程在 AI 时代的重要性,最强大的大模型,也是经常各种故障,一旦 ChatGPT、Claude Code、Google Gemini 有故障,基本上全球的程序员都无法干活了。工程,本质上就是通过系统性的方法,去消除风险、不确定性,进而提升确定性。

那么斯坦福的这个 cs146s 课程,我觉得也是堪称AI 时代软件工程范式的最新教科书了。

我用 AI 生成了这个课程的大纲,也建了一个公共的 NotebookLM 笔记,汇总了 90 个资源,包括课内课件和相关资料,你可以在 NoteboolLM 中自己问答、提问、学习,或者生成自己想要的 PPT、视频/音频等等。 可以关注这个公众号,输入“课程”,发你 NotebookLM 的共享笔记本链接。包括 AI 编程的方方面面,以及课程本身的 Slides 和各种参考。


斯坦福 CS146S 课程完整幻灯片总结:The Modern Software Developer

Summary

目标受众:掌握 AI 工具并向“AI Agent 管理者”转型的现代软件工程师核心理念:良好的代码只是良好上下文的副产品(Good context leads to good code)

🚀 Slide 1: 课程总览与软件开发的演进

The Modern Software Developer

  • • 在过去几年中,Large Language Models (LLM) 引入了软件开发的全新范式。
  • • 软件工程正在从从头编写代码,转变为“计划、AI 生成、修改并重复”的迭代工作流。

团队演进史

  • • 过去:单人开发者 -> 专业化软件团队 -> AI 辅助的开发团队(如使用 Copilot)
  • • 2025 及未来:单名开发者管理众多 AI Agents 产出的多 Agent 协作系统(Agent manager)

开发者的新定位

  • • 你不会被 AI 取代,而是会被一个懂得如何使用 AI 的胜任工程师所取代。

🧠 Slide 2: 第 1 周 – LLM 基础与提示工程 (Prompt Engineering)

LLM 是如何炼成的 (Training Process)

Pre-training(预训练)

  • • 通过海量互联网数据(语言和代码)训练模型的“下一个 Token 预测”能力。
  • • 构建世界知识的基础模型。

SFT(监督微调)

  • • 通过高质量的提示-响应对(Prompt-response pairs)教导模型遵循指令。
  • • 塑造助手人格。

RLHF(基于人类反馈的强化学习)

  • • 通过对推理步骤进行偏好调整,让模型学会如何评估逻辑、自我反思和纠错。

核心 Prompting 技巧

Zero-shot / K-shot

  • • 直接请求或提供少量示例(In-context learning)。

Chain-of-Thought (CoT)

  • • 通过 <think> 标签或“一步步思考”强制展示逻辑链。
  • • 非常适合编程和数学任务。

Self-consistency

  • • 多次采样并聚合最常见结果。
  • • 通过模型集成(Model ensembling)减少幻觉。

Retrieval Augmented Generation (RAG)

  • • 将动态的上下文数据注入 LLM。
  • • 在不重新训练的情况下保持信息最新并减少幻觉。

Reflexion

  • • 让模型对输出进行批判和自我修正的多轮提示技术。

⚙️ Slide 3: 第 2 周 – 编码 Agent 的剖析与 MCP

Agent 的核心架构

  • • LLM 本身只是一个没有手的“大脑”。
  • • AI Agent 则是将 LLM 作为一个组件,结合 Orchestrator(编排器)、Tools(工具)、Memory(记忆)和 Policies(策略)的外部软件系统。

Model Context Protocol (MCP)

定义

  • • MCP 是一个开放标准协议,旨在为 AI 模型提供上下文和工具,使其能够与现实世界进行交互。

运作流程 (Flow)

  • • MCP Client 向 MCP Server 请求工具列表
  • • Server 返回包含工具模式的 JSON
  • • Host 将其注入模型的上下文
  • • 模型生成结构化 Tool call
  • • Server 执行并恢复对话

RAG 与 Tool-calling

  • • 鉴于 LLM 的世界知识是静态的,利用工具调用与外部 API 或 MCP 交互,是我们目前获取动态数据的最佳方式。
  • • 典型场景包括 Jira 看板、实时报错等。

💻 Slide 4: 第 3 周 – AI IDE 与上下文工程 (Context Engineering)

AI IDE 的底层原理

Tab-complete(内联补全)

  • • 围绕当前代码的小型加密上下文窗口。
  • • 由 Server 接收并运行填充 LLM,极速返回建议。

Chat(聊天)

  • • 将代码块作为 Embeddings 存储在语义索引中。
  • • 利用 Merkle 树进行高效更新。
  • • 通过检索(RAG)将最相关的代码块喂给 LLM 作为上下文。

最佳实践 (Best Practices)

Spec is the new source code

  • • 规格说明(Prompt)正在成为新的源代码。
  • • 生成的代码只是意图的“有损投影(lossy projection)”。

Repo Orientation

  • • 使用 claude.md.cursorrules 或 AGENTS.md 帮助 LLM 导航代码库。
  • • 记录常见的 Bash 命令、核心工具函数、代码风格和测试指令。

🕹️ Slide 5: 第 4 周 – 编码 Agent 模式 (Coding Agent Patterns)

指挥 Agent 的核心技术

Hooks

  • • 在特定事件(如 PreToolUse 或 PostToolUse)触发时运行的确定性脚本。

Commands

  • • 自定义指令体系。

Subagents

  • • 在运行时进行任务委托(Runtime delegation)。
  • • 为前端、后端等不同类型的工作创建独立的开发者 Persona。
  • • 干净地隔离各自的工作流上下文。

工作流模式

Human-in-the-loop

  • • 人类负责制定高层次架构和验证。
  • • 将执行层面的繁重工作异步委托给 Agent。
  • • 通过测试(Test suites)作为边界护栏。

⌨️ Slide 6: 第 5 周 – 现代 AI 终端 (The Modern Terminal)

UX/UI 范式转变

  • • 随着自动化工具的进化,Chat 已经成为开发者环境中的 First-class citizen。
  • • 交流意图(Intent)比编写语法更加重要。

Vibe Coding vs Strategic Agent

YOLO / Vibe coding Agent

  • • 不受约束,速度极快。
  • • 用于快速生成原型和试验。
  • • 但缺乏结构。

Strategic Agent

  • • 步步为营,高准确率。
  • • 适合需要审计的核心生产代码开发。

工具与配置整合

  • • 工具必须提供极低门槛的入门体验(Ergonomics)。
  • • 同时具备让高级用户(Power users)定制提示词、专有规则和灵活切换大模型的能力。

🛡️ Slide 7: 第 6 周 – AI 测试与安全 (AI Testing and Security)

新的安全防线

Good

  • • 利用 AI Agent 的能力改进传统的 SAST(静态分析)、DAST(动态分析)和 SCA 测试流程。

Bad

  • • 必须警惕针对 Agent 的新攻击向量。
  • • 包括 Prompt Injection、系统侦察、过度授权(Excessive Agency)和工具代理利用。

防御机制

  • • 通过在流水线中结合人类安全审查机制(Human diligence)。
  • • 防止 AI 引入关键的安全漏洞或产生回归。

👀 Slide 8: 第 7 周 – 现代软件支持与 AI 代码审查 (Code Review)

代码审查的核心目的

  • • Alignment confirmation(确认对齐)
  • • Knowledge diffusion(知识扩散)
  • • Proofreading(校对)

AI vs 人类 (Limits of AI)

AI 的优势

  • • 极其擅长捕捉逻辑错误、性能瓶颈、可读性问题。
  • • 能够应用项目级标准(如 Graphite Agent)。

AI 的局限

  • • 难以理解深度的组织历史(Institutional memory)。
  • • 难以处理高度模糊的业务逻辑。
  • • 人类必须保留对架构和关键路径的最终合并决定权(Human in the loop)。

In the Limit 的演进

  • • AI 正在让 Inner loop(代码编写与调试)快上 10 倍。
  • • 接下来 Outer loop(代码审查与协作部署)也将被 AI 彻底改变。

三种演进路径

  • • Cyborg:AI 增强人类审查
  • • EM:人类管理 AI 的架构
  • • Agency:AI 作为全职第三方承包商

🎨 Slide 9: 第 8 周 – 自动化 UI 与应用构建 (Automated UI & App Building)

从 Vibe Coding 到可靠部署

  • • 使用诸如 Vercel v0、Lovable 和 Replit 等工具。
  • • 只需通过 Prompt 就能在数小时内生成完整的、基于 React/Next.js 的全栈应用程序雏形。

核心质量控制系统 (Autofixers)

Stream manipulation

  • • 拦截过时或不存在的 API 调用。
  • • 替换为有效代码。

Real-time error detection

  • • 在后台运行小而快且便宜的 LLM。
  • • 捕捉语法缺失等“愚蠢的错误 (silly mistakes)”。

Data-driven finetuning

  • • 利用生产环境中的真实错误历史对开源模型进行强化学习微调。
  • • 防止重复犯错。

🚨 Slide 10: 第 9-10 周 – 部署后的 Agent 与未来系统运维

SRE 的演进

  • • 从传统的 Sysadmin(手动管理运维)。
  • • 到 Site Reliability Engineering (SRE)(用写代码的方式解决运维问题)。
  • • 如今正在迈向 AI SRE(如 Resolve AI、Datadog Bits AI Agent)。

Multi-agent Systems 的必要性

问题

  • • 现代微服务和多云架构极其复杂。
  • • 单体 LLM 无法应对这种“不可简化的相互依赖性 (Irreducible interdependence)”。

解决方案

  • • 部署多个具备专业能力的 Multi-agent systems。
  • • 例如数据库 Agent、日志 Agent、警报 Agent。
  • • 并行测试排障假设,快速锁定根本原因(Root Cause Analysis)。

🔮 Slide 11: 总结与 AI 软件工程的未来 (Future Paradigms)

三大工程学科演进

Context Engineering(上下文工程)

  • • 不仅仅是 Prompt 调优,而是设计 AI Agent 决策的完整信息环境。
  • • 包括提取、压缩、过滤。
  • • 防止长对话导致的“上下文腐烂 (Context Rot)”。

Intent Engineering(意图工程)

  • • 将组织的目标、价值观和权衡优先级编码到 Agent 的基础设施中。
  • • 确保 Agent 不仅“知情”,更“有方向”。

Specification Engineering(规范工程)

  • • 将企业的隐性知识转化为机器可读的基础设施。
  • • 彻底淘汰模糊的开发流程。

终极启示

  • • 未来的软件工程师将转型为 Agentic AI 的管理者。
  • • 通过专注于最高杠杆的高层系统架构验证和业务定义,实现超越以往几个数量级的生产力。

关注我,输入“课程”,发你 NotebookLM 笔记本的链接,一共90 个资源,包括 AI 编程的方方面面,以及课程本身的 Slides 和各种参考。