乐于分享
好东西不私藏

CS146S学习笔记:AI时代的软件工程

CS146S学习笔记:AI时代的软件工程

CS146S 学习笔记:AI 时代的软件工程

斯坦福第一门以 AI 驱动软件开发为核心的课程。不是编程入门课——是一份宣言。

讲师 Mihail Eric,斯坦福 AI 博士,前 Amazon Alexa 对话系统技术主管,YC 孵化过 AI 编程公司。课程邀请了 Anthropic(Claude Code 创造者 Boris Cherney)、Cognition(Devin 研究主管)、Semgrep(CEO Isaac Evans)、Vercel(v0)、a16z 等公司的核心人物做 guest lecture。


课程的核心论点

编程没有死,但它已经从根本上改变了。"现代软件开发者"不再是语法写手,而是系统架构师AI 输出的验证者自主 Agent 的管理者

贯穿十周的四条主线:

  1. 从语法到规格
     — Prompt 是新的源代码。编写清晰、无歧义的规格说明书已成为首要瓶颈
  2. "半异步"区域
     — 开发者必须学会将 10 分钟以上的任务委托给 AI Agent,实现真正的并行
  3. 防御性 Prompting
     — LLM 是随机、易出错的工具,需要一套全新的交互设计方法
  4. AI-Native 运维
     — 从手动 runbook 到动态的、AI 生成的事件响应

一、LLM 的本质:互联网的有损压缩

预训练:预测下一个 token

数据来源是 Common Crawl——自 2007 年起索引万维网的非营利组织。截至 2025 年,归档超过 3000 亿网页,约 11.3 PB。全球几乎所有大语言模型 70-90% 的 token 来自 Common Crawl。

但这数据充满了噪音——广告、Cookie 横幅、垃圾邮件、恶意软件。经过严格过滤后的高质量数据集(如 FineWeb)仍包含约 44 TB 文本、约 15 万亿 token。

预训练的核心操作极其简单:基于前文预测下一个 token。GPT-4 据报告有 1.8 万亿参数(16 个专家子模型,每次激活其中 2 个,实际激活约 2800 亿参数)。训练成本:约 25,000 块 A100 GPU 运行 90-100 天,数千万美元。

关键洞察:预训练的产出是"互联网的大规模有损压缩"——人类知识的概率性 ZIP 文件。它学到的是"什么通常跟在什么后面",不是"什么是真的"。

这解释了模型绝大多数失败模式的根源:它不是"推理",是在做统计预测。它能解奥林匹克数学题,然后告诉你 9.9 < 9.1——因为它的能力分布像瑞士奶酪,遍布不可预测的孔洞。

SFT:赋予模型人格

监督微调用几万到几十万组人类标注的对话教模型"怎么当助手"。SFT 的计算成本极低——几小时,不是几个月。

Mihail Eric 的原话很祛魅:

当你与 AI 助手对话时,你不是在与某种新形式的智能互动。你在与一个神经网络互动——它在模拟那个严格按照指令工作的、平均水平的熟练人类标注员。

这意味着:你的 AI 助手不是一个"思考实体",而是一个"角色扮演者"。它的所有"友好"、"耐心"、"专业"都是标注员行为的统计投影。

RL:教会模型思考

在数学、代码等可验证领域,RL 强制模型自己发现推理路径。这就是 Chain-of-Thought 产生的阶段——因为每个 token 的计算量有限,模型学会将推理分布到多个步骤。

关键实践启示:模型需要 token 来思考。 让它"逐步思考"不是风格偏好——它解锁了一种不消耗 token 就不能工作的能力。要求它一次性产出复杂答案而不做推理,就像要求一个人不用草稿纸做微积分。

六种可靠性策略

策略
核心
适用场景
Few-shot
在 prompt 中提供 1-5 组范例
格式控制、分类
Chain-of-Thought
要求逐步推理再给答案
数学、多步决策
Self-consistency
同一问题跑 5 遍取多数
高可靠性决策
RAG
检索外部文档→注入上下文
知识库问答
Reflexion
把错误信息喂回 prompt 自我修正
代码调试
Role prompting
赋予专家身份
专业领域咨询

高手不是用一种策略——是知道什么时候用哪种组合。格式控制类任务加 CoT 可能坏事(过度思考),Self-consistency 的成本是 5 倍 token。


二、Coding Agent 的解剖结构

Agent 循环

工业级 Agent(Devin、Claude Code、Codex)都遵循同一个核心模式:

while not task_complete:     context = build_context(task, history, available_tools)     action = llm.decide(context)          # 模型决定下一步          if action.type == "tool_call":         result = execute_tool(action)         history.append({"call": action, "result": result})         # 关键:工具执行结果作为新上下文输入,形成闭环          elif action.type == "final_answer":         return action.content

Agent 执行循环

精妙之处:没有显式的"如果失败则重试"逻辑。 Agent 的自我纠错是 emergent behavior——错误信息被追加到历史上下文中,模型下一轮"看到"错误,自然地尝试修正。这就是为什么清晰的错误信息对 Agent 如此重要——模糊的错误等于不给人类看报错信息。

Tool Use / Function Calling

工具调用不是模型"懂"了这个工具——是它在对话上下文中看到了工具的"说明书"(类似 JSON Schema),然后像生成其他文本一样生成了调用参数。工具描述的清晰程度直接影响调用成功率。

MCP:Agent 的"USB 接口"

Anthropic 2024 年底提出的标准化协议,三类原语:

  • Tools
    :模型可以调用的函数
  • Resources
    :模型可以读取的上下文数据
  • Prompts
    :预定义的 prompt 模板

课程要求学生从零构建一个 MCP Server——说明他们视"理解 Agent 如何与外部世界交互"为基本功,不是高级话题。


三、上下文工程:这门课技术含金量最高的内容

同步 vs 异步 Agent

类型
响应时间
工具示例
对开发者的影响
同步
20秒~1.5分钟
Copilot 内联建议、Cursor Tab
保持心流,像副驾驶
异步
10分钟~1小时+
Devin, Codex, Claude Code
真正的生产力倍增器
——Agent 在后台构建时,你做架构审查

半异步死区——课程最实用的概念

避免让 Agent 执行 30 秒到 5 分钟的任务。

原因:

  • 太短,不够你切换到需要深度思考的复杂任务
  • 太长,干等着足以破坏心流
  • 结果:既没推进工作,也没利用 Agent 的并行能力——两败俱伤

对策:

  • 要么缩小任务到 30 秒内(同步化)
  • 要么扩大到 10 分钟以上(真正异步委托)
  • 目标:最大化自己的并行度。你是一个多线程的编排者,不是单线程的等待者。

四大上下文失败模式

给 Agent 更多上下文 ≠ 更好的输出。超阈值后反而退化。

失败模式
症状
底层机制
对策
Context Poisoning
早期错误写入历史,Agent 固着在错误上永不修正
模型将"自己说过"视为已验证信息
发现走偏立即 /clear 重开;关键步骤插入人工检查点
Context Distraction
超 100K token 后不再基于最新事实推理
"Lost in the Middle"效应 + 注意力稀释
控制单次对话上下文总量;定期总结并重置
Context Confusion
工具列表太长→选择能力退化→调用不相关 API
选择过载:类似人类面对太多菜单选项的决策瘫痪
精简工具集;按需暴露而非全量暴露
Context Clash
上下文中包含矛盾信息时准确率骤降 39%,无法自行恢复
矛盾信号在注意力机制中互相抵消
确保提供给 Agent 的上下文内部一致

学术背景:斯坦福和 Meta 2024 年的论文《Lost in the Middle》首次证明 LLM 在长上下文中呈现 U 形性能曲线——开头和结尾准确率最高,中间显著下降。根源在 Transformer 架构中固有的 U 形注意力偏差。

防御性 Prompting 四原则

新的核心技能不是"写代码",是"做一个好的委托者"

  1. 精确而非笼统
     — 说怎么做,不是说什么。区别不在于详细程度,在于约束密度。好 prompt 创造窄而深的"管道",坏 prompt 给出宽而浅的"草原"
  2. 预测非显而易见的依赖
     — 显式声明隐藏约束。Agent 没有你的隐性知识:它没在这个团队工作过,没参加过架构评审,没处理过上次的线上事故
  3. 嵌入人工检查点
     — 多小时的复杂任务必须设阶段性审批节点。这不是不信任 AI——是不信任自己 prompt 的完备性
  4. 使用强类型语言
     — TypeScript 优于 JavaScript。Agent 从类型错误中获得的信息远比运行时 bug 丰富——类型错误精确地告诉它"哪个位置、什么类型不匹配"

Prompt 是新的源代码

课程引用了 Shawn Gross 的类比:

传统开发中,你保留源码(Python, TypeScript),丢弃编译后的机器码。源码包含意图、结构和所有设计决策。

在 AI 驱动的开发中,团队目前的实践是:精心撰写 prompt → 生成代码 → 丢弃 prompt,版本控制生成代码

这等于:撕掉源码,版本控制编译后的二进制。

Prompt 是新的源代码

生成的代码只是原始规格的有损投影。Spec 包含意图、业务逻辑、代码无法捕捉的细微语义。Prompt 应以与源码同等的纪律被版本化保存——理想情况下,修改功能 = 修改 prompt = 重新生成代码 = 审查 diff。


四、Agent 工具设计与 CLAUDE.md

为 Agent 设计工具 ≠ 为人设计 API

设计原则
具体做法
认知差异
合并函数
更少的工具,每个承担更多职责
人类可浏览 50 页 API 文档。Agent 面对 50 个工具时会触发 Context Confusion
语义化输出
返回 user: "Jane Doe" 而非 user_id: "A1B2C3D4"
Agent 需要在上下文中直接理解——每次额外查询都是一次认知跳转
允许详细度控制
Agent 可选"简洁模式"或"详细模式"
Agent 需要管理自己的 token 预算
镜像生产环境
相同语言版本、相同包依赖、相同运行时
"在我机器上能跑"对 Agent 更致命——它没有"换个环境试试"的判断力

CLAUDE.md:投资回报最高的单项投入

本质上是"Agent 的长期项目记忆"。每次对话启动时自动加载为 system prompt 前缀。

应该包含:常用命令、架构概览、数据流和依赖、团队约定、安全的可执行命令清单。

应该避免:冗长的历史背景、可被代码推导的信息、过期的内容、过于宽泛的通用建议。

关键提醒:CLAUDE.md 的全部内容出现在每一次对话中。5000 token × 20 次对话 = 为同样信息支付 20 次 token 成本。

好的 CLAUDE.md 像执行手册而非文档——它告诉 Agent"在这个项目里怎么正确地干活",不是"这个项目是干什么的"。

Strategic vs YOLO:课程最反直觉的实验

同一个 prompt("构建一个 NFL 预测 App"),两种 Agent 配置:

  • Strategic Agent
    (紧护栏、每次操作需人类批准、详细多步计划)→ 失败。卡在爬取失效的 URL 上,每次等待审批无法自主尝试替代方案
  • YOLO Agent
    (少护栏、可执行任意指令、不生成详细计划)→ 成功。自动搜索替代数据源,切换方案,完成可用 App

核心洞察:最"可控"的配置不一定产出最好的结果。 Agent 的自治级别应该与任务的风险容忍度匹配:

  • 低风险(个人原型、内部工具)→ 放宽约束,让 Agent 有更大灵活性去 pivot
  • 高风险(生产数据库、支付系统)→ 紧护栏、人类审批、多重验证

正确的决策框架不是"多少护栏最好",是"这个任务失败的成本是什么"。


五、AI 安全:不是理论演示,是已经在发生的攻击

三种攻击链

  1. SSRF 内网探测
     — 诱导 Agent 访问内网 IP,Agent 成为攻击者的跳板。本质:Agent 的"读取网页"工具是运行在可信网络内的 HTTP 客户端,没有内网访问控制
  2. 凭证窃取
     — 将窃密脚本 Base64 编码绕过输出过滤,提取环境变量中的 API key。本质:Agent 有 shell 权限 + 可访问环境变量
  3. YOLO 模式逃逸(CVE-2025-3773)
     — Prompt Injection → Agent 修改自己配置文件 → 禁用安全护栏 → 任意命令执行。本质:Agent 对配置文件的写权限 + 命令执行 = 持久化安全降级

共同特征:利用了 Agent 的"正常功能"作为攻击面。 安全漏洞来自功能的组合 + 缺少边界控制,没有哪个单独功能看起来是"漏洞"。

AI 安全扫描的可靠性——不能信任单次结果

Semgrep 在 11 个大型真实 Python Web 应用上测试:

工具
找到的真实漏洞
真正率
误报率
Claude Code (Sonnet 4)
46 个
14%
86%
OpenAI Codex (o4-mini)
21 个
18%
82%

更令人警醒的是非确定性:完全相同的扫描,不同时间运行三次,报告的 bug 数量分别是 3、6、11——3.7 倍差异。 问题不在于 AI 找不到漏洞——在于它找的东西中只有约 1/6 是真的,而且你无法仅凭单次扫描知道哪 1/6 是真的。


六、代码审查:找 bug 是最次要的目的

代码审查金字塔

优先级
审查层级
真正目的
★★★ 基础层
心理对齐
保持团队对系统的共同理解——这是代码审查最重要的价值
★★ 第二层
验证方案正确性
实现是否正确解决了实际的问题,不只是技术上"正确"
★ 第三层
设计讨论
架构选择、接口设计——这是工程师成长的土壤
第四层
找 bug
排到第四
第五层
风格检查
完全应该自动化(pre-commit hooks, linter),人类不该花时间

代码审查金字塔

如果审查只是为了找 bug,团队失去的是前三个更重要的价值。

很多团队的实际审查是"倒金字塔"——大多数评论在纠正格式和找简单 bug,很少有架构讨论。这恰恰说明审查流程没做好:如果风格检查占用大量时间→linter 配置不完善;如果 bug 是主要产出→缺少自动化测试。

健康的审查:风格由机器管,bug 由测试管,审查者专注于"这个方案对系统长期演变意味着什么"。

AI 审查四象限

区域
内容
策略
🟢 黄金区
简单 bug、性能热点、安全缺陷、风格一致性
AI 最适合,速度优势碾压人类
🔴 人类专属区
隐性知识、机构记忆、微妙的业务逻辑、合规判断
AI 不可能知道答案
🟡 噪音区
抽象"最佳实践"评论、"可以考虑..."式模糊反馈
应该压制,不是改善
。这些产生噪音、侵蚀信任

AI 审查四象限


七、UI 生成:LLM + 规则引擎的组合才是正解

专业化模型流水线(以 Vercel v0 为例)

① 意图理解 → ② 上下文组装(设计系统 token + API schema)→ ③ 代码生成 → ④ 自动验证(a11y, lint, bundle size, XSS)→ ⑤ 流拦截修正

第五步最关键:系统实时拦截输出的 token 流,动态检测并修复已知错误模式——在代码到达用户之前就已经修正了。 用户看到的是"修正后"的代码,不是 LLM 的原始输出。

被低估的模式:用 LLM 处理"创造性"部分(设计、意图理解),用规则引擎处理"正确性"部分(语法、无障碍、安全)。 最好的 AI 系统不是"更聪明的 LLM",是 LLM + 围绕它的工程基础设施。

历史复杂度税

每一代 Web 架构都在叠加新一层的必需知识:LAMP → MEAN → JAMstack → Serverless → ...。每一层都不是"可选"的,是进入生产环境所必需的。AI 生成消除了这个税——瓶颈从"你会不会做"转移到了"你知不知道要做什么、做了对不对"。


八、AI-Native 运维:从 SRE 到 Agent Ops

Google SRE 模型

50% 辛劳规则:SRE 必须将至少 50% 的时间花在工程工作上(自动化、工具建设),而不是手动运维。如果运维辛劳超过 50%,多余的部分推回给开发团队。深层逻辑:不自动化的运维工作不会自行消失——只会持续堆积。

错误预算:100% 可用性是错误的目标。SLO(如 99.9%)与实际完美之间的差距不是"缺陷"——是创新的预算。预算内可以承担风险、快速迭代。预算用完了,冻结发布,所有精力转向可靠性。不是惩罚,是可计算的风险管理。

AI-assisted vs AI-native

AI-assisted
AI-native
工程师主导整个运维流程。LLM 帮你更快写日志查询——但你仍需知道查什么、怎么查、查完怎么解释
工程师说"解决这个 checkout 故障"。Agent 在 1 分钟内自主完成全链路调查——并行分析日志、指标、trace、部署记录——返回高置信度根因假设和修复路径

AI 生产工程师的工作流:Agent 构建系统动态知识图谱 → 生成针对本次事件的即时 runbook → 并行分析所有数据源(人类 SRE 只能顺序排查,Agent 可同时检查 10 个假设)→ 1 分钟内返回根因假设 + 修复路径。工程师的新角色:判断假设是否合理,决策是否执行修复——而不是手动翻日志。


九、未来:什么在消退,什么在增值

课程的唯一主线论点

"你不会被 AI 取代。你会被一个会用 AI 的合格工程师取代。"

从第一周到第十周,用不同角度反复论证这同一件事。

技能分化

AI 越来越擅长(执行技能)
仍然属于人类(判断技能)
实现明确定义的规格
分解模糊的、开放的问题
生成标准业务代码
做出架构权衡决策
编写和更新测试
理解代码不能捕捉的业务上下文
文档生成与维护
判断"做什么"和"做对了吗"
代码格式与风格检查
承担决策的后果和责任
依赖升级和迁移

技能分化

复合增长公式

能复合增长的工程师 = 能精确描述需求 × 能架构思考 × 能严格验证

这三项的投资不是"在学习 AI 工具"——它们是用好 AI 工具的前提


课后随想

无论是半异步死区的论点、还是防御性 Prompting 四原则、Context Poisoning 问题,都让我再次系统性地梳理了对 Agent 的认识。是一篇非常适合初学者学习与实践的讲义。

(PS:这是一门2025年秋季课程,最早一批完整学习该课程并毕业的学生就是这个月)

这是一个"方法论"丛生的时代,是一个天马行空的时代

与时俱进是当下每个IT人,不可或缺的必要素养


课程嘉宾阵容

嘉宾
所属公司
分享主题
Boris Cherney
Anthropic
Claude Code 的创造者,AI 编程助手设计哲学
Silas Alberti
Cognition
Devin 研究主管
Zach Lloyd
Warp
AI 终端的产品逻辑
Isaac Evans
Semgrep
AI 时代的安全陷阱(Week 6 安全数据来自其公司)
Tomas Reimers
Graphite
代码审查自动化
Gaspar Garcia
Vercel
v0 技术架构
Mayank Agarwal & Milind Ganjoo
Resolve
AI 运维实战
Martin Casado
a16z
投资视角下的 AI 工程未来
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-12 14:13:19 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/741559.html
  2. 运行时间 : 0.196979s [ 吞吐率:5.08req/s ] 内存消耗:4,642.15kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2a34c26c5a2fbec1f2ede8d17b06139a
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000691s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000940s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000360s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000275s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000602s ]
  6. SELECT * FROM `set` [ RunTime:0.000236s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000754s ]
  8. SELECT * FROM `article` WHERE `id` = 741559 LIMIT 1 [ RunTime:0.000551s ]
  9. UPDATE `article` SET `lasttime` = 1781244800 WHERE `id` = 741559 [ RunTime:0.003131s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000293s ]
  11. SELECT * FROM `article` WHERE `id` < 741559 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000513s ]
  12. SELECT * FROM `article` WHERE `id` > 741559 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001797s ]
  13. SELECT * FROM `article` WHERE `id` < 741559 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000992s ]
  14. SELECT * FROM `article` WHERE `id` < 741559 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001886s ]
  15. SELECT * FROM `article` WHERE `id` < 741559 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001472s ]
0.200982s