当前位置:首页>java>拒绝"盲盒式"AI编程:规范驱动开发(SDD)全解与生态指南

拒绝"盲盒式"AI编程:规范驱动开发(SDD)全解与生态指南

  • 2026-01-29 18:13:57
拒绝"盲盒式"AI编程:规范驱动开发(SDD)全解与生态指南


导语

你是否经历过这样的 AI 编程场景:最开始,几个 Prompt 下去代码跑得飞快,你感觉自己像个"神"。但三天后,随着功能叠加,AI 开始"失忆",生成的代码前后矛盾,修复一个 Bug 却引入两个新 Bug。你不得不花费大量时间向 AI 解释上下文,或者干脆重写。

这就是典型的"氛围编码"(Vibe Coding)后遗症——速度有了,但工程死掉了

业内甚至有个说法叫"Vibe Coding 宿醉":你用 AI 快速搭建了原型,第二天醒来发现仓库里堆满了意大利面代码、不一致的架构模式,以及滚雪球般膨胀的技术债务。随着 AI 模型的上下文窗口在长会话中逐渐退化,没有持久规范锚定的 Agent 就会开始"失去主线",做出偏离原始意图的推测。

在 AI 辅助编程日益普及的今天,如何让 AI 输出可控、可维护、可协作的代码?答案就是 规范驱动开发(SDD)。它不再把 AI 当作一个随机的聊天伴侣,而是通过严谨的契约,将其转化为高效的执行工兵。


一、什么是 SDD

一句话定义

SDD(Specification-Driven Development) 是一种将"结构化规范"(Spec)作为系统单一事实来源(Single Source of Truth, SSOT) 的开发范式,代码仅仅是规范的一种"可执行产物"。

用一个比喻:如果传统开发是"边画边想"的自由创作,SDD 就是"先画设计图,再按图施工"的工程化方法。

核心区别

维度
传统开发
SDD 模式
真理来源
代码是真理
规范是真理
文档地位
代码的"读后感",往往滞后甚至丢失
开发的起点和核心
修改方式
直接改代码
先改规范,再让 AI 重新生成代码
AI 协作
模糊的自然语言提示
结构化的机器可读规范

规范 ≠ 传统文档

在 SDD 语境下,"Spec" 不是指传统的 Word 文档,而是 机器可读、结构化的 Markdown 或 YAML 文件(如 spec.mdplan.mdopenapi.yaml)。

与传统文档的本质区别

  • 传统需求/设计文档主要写给人看,不易被程序消费
  • Spec 更像"半代码化的契约":字段、接口、约束、用例、场景都可以被工具解析和执行

二、为什么 SDD 现在火了?

AI 时代的结构性困境

在 AI 编程时代(特别是 2025-2026 年),代码生成的边际成本趋近于零,但 上下文维护成本 急剧上升。

问题的根源在于:

  • 如果缺乏明确的"锚点",LLM 容易产生幻觉漂移
  • 一次性聊天指令难以复用、难以维护
  • 多人+多 Agent 并行时,代码冲突无法通过 Merge 解决

SDD 的解决方案:通过提供持久化的、结构化的上下文(Context),强迫 AI 在编码前先"思考"和"确认",从而解决"氛围编码"带来的不可维护性问题。

从理论到主流

SDD 的思想渊源可追溯到形式化方法的早期探索:

  • 2004年:微软研究院推出 Spec# 系统,试图通过增强的编程语言和静态验证器编写"无缺陷程序"
  • 2024-2025年:生成式 AI 爆发,SDD 从理论探索进入工程实践
  • 2025年9月GitHub 发布 Spec Kit,SDD 发展史上的重要里程碑,短短几个月内获得超过 50,000 星标

到 2025 年底,SDD 已巩固其地位,成为将 AI 集成到敏捷工程中的事实标准,尤其在可靠性和可维护性不可妥协的企业环境中。


三、为什么要用 SDD:四大核心收益

1. 质量:消灭"幻觉"与过度设计

收益:通过"宪法"(Constitution)文件设定不可协商的原则(如"必须先写测试"),强制 AI 遵守工程底线。

数据支撑

  • 采用 SDD 的团队代码缺陷率降低 41%
  • 生成代码首次准确率可达 95% 以上

最小动作:在项目根目录创建一个 constitution.md,写下 3 条铁律(例如:禁止引入新库、所有 API 需有错误处理),并在 Prompt 中引用它。

2. 效率:减少无效返工

收益:数据显示,SDD 能将需求变更响应速度提升 58%,因为在写代码前,AI 已经通过 Spec 与人类对齐了意图。

最小动作:使用 /plan 指令让 AI 先输出技术方案,人工确认无误后再执行 /implement

3. 协作:打破"单人单机"孤岛

收益

  • Spec 成为人类与 AI、人类与人类协作的通用语言
  • 新成员(或新的 AI Agent)阅读 Spec 即可理解架构,无需扒代码
  • 新成员上手速度提升 60%

最小动作:将 Spec 文件提交到 Git 仓库,作为 Code Review 的一部分。

4. 风险:可追溯与合规

收益:每一行代码都能追溯到具体的 Spec 条目,满足审计要求。

企业案例:摩根大通技术团队使用 SDD 改造了 200 万行代码的遗留系统,比传统重构模式节省了 40% 的时间,且实现了零业务中断

最小动作:要求 AI 在生成代码的注释中引用 Spec 的章节 ID。


四、什么情况下"必须"用 SDD?

如果你的团队符合以下 任一 条件,建议强制引入 SDD:

触发条件与起步动作

触发条件
问题描述
最低成本起步动作
多人+多Agent并行开发
多个开发者同时使用 AI 修改代码,没有 Spec 作为锚点,代码冲突将无法通过 Merge 解决
使用 CCPM 或 Git worktrees 隔离开发环境
核心业务逻辑复杂
口头 Prompt 无法覆盖所有边缘情况(Edge Cases)
用 Gherkin 语法(Given/When/Then)描述核心逻辑
遗留系统重构
没人敢改的老代码,需要 AI 先生成 Spec 进行"考古",确认逻辑后再重构
使用 oh-my-opencode 的 Librarian 角色先分析代码库
合规性要求高
金融/医疗领域,不允许 AI"自由发挥"
在 constitution.md 中写入安全红线
交付节奏快且变更多
需要快速验证多个技术方案(例如对比 Rust vs Go 实现)
基于同一份 Spec,让 AI 生成两个版本的 plan.md 进行对比
团队存在"Prompt 依赖"
代码质量完全取决于提问者的 Prompt 水平,质量参差不齐
使用固定的 SDD 模板(Spec Template)统一输入格式

五、SDD 的三个实现层次

SDD 包含三个递进的实现层次,你可以根据项目成熟度逐步升级:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line┌─────────────────────────────────────────────────────────────┐│              Level 3: 规范即源代码                          ││                   (Spec-as-source)                         ││    规范是唯一真理源,人只改规范,AI生成所有代码               ││    代表工具:Tessl Framework                                │├─────────────────────────────────────────────────────────────┤│              Level 2: 规范锚定                              ││                   (Spec-anchored)                          ││    规范与代码长期共存,重构时可反复使用                      ││    代表工具:Spec KitCCPM                                 │├─────────────────────────────────────────────────────────────┤│              Level 1: 规范优先                              ││                   (Spec-first)                             ││    编码前先写规范,任务完成后可丢弃                          ││    代表工具:KiroOpenSpec                                 │└─────────────────────────────────────────────────────────────┘             ▲ 自动化程度递增 / 成熟度要求递增 ▲

推荐路径:从 Level 1 起步,验证收益后逐步向 Level 2 演进。Level 3 目前仍属前沿探索。


六、主流项目生态地图

我们将当前的 SDD 生态分为五个层次:

层次
定位
代表项目
A. 规范/Spec 工作流框架
定义"如何写 Spec"的标准流程
Spec-Kit, OpenSpec
B. 项目管理与可追溯
将 Spec 与 Issue、Git 结合
CCPM
C. 多代理执行与调度
让多个 AI 角色协作完成 Spec
Oh My OpenCode, BMAD
D. 工程纪律与质量门禁
强制 AI 遵守 TDD 等规则
Superpowers
E. 能力插件/工具封装
IDE 或 CLI 工具
Kiro

1. GitHub Spec Kit:企业级规范治理首选

基本信息

  • ⭐ 50,000+ 星标
  • 📅 2025年9月发布
  • 🏢 GitHub 官方出品

定位:技术中立的 SDD 工具包,覆盖 Constitution → Specify → Plan → Tasks → Implement → PR 全流程。

核心机制:宪法(Constitution)

Spec Kit 最独特的设计是"宪法机制"——定义项目不可变更的高层原则,强制所有后续开发遵循统一标准。

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(line# 项目宪法示例/speckit.constitutionThis project follows a "Library-First" approach.All features must be implemented as standalone libraries first.We use TDD strictly.We prefer functional programming patterns.

五大核心命令

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line/speckit.constitution  → 定义项目"宪法"(不可变原则)       ↓/speckit.specify       → 创建功能规范(做什么、为什么)       ↓/speckit.clarify       → 澄清需求歧义       ↓/speckit.plan          → 制定技术方案       ↓/speckit.tasks         → 生成可执行任务列表

适用场景

  • 从 0 到 1 的新项目
  • 需要严格"宪法"治理的团队
  • 中大型企业项目(50人以上)
  • 需要严格合规审计的项目

注意事项:流程较为严格,可能给人一种"重回瀑布流"的感觉,但对质量保障极佳。


2. OpenSpec:存量项目迭代神器

定位:轻量级、迭代式的 SDD 框架,强调"变更即 Spec"。

核心理念

  • 用统一的 Schema(JSON/YAML)描述任务目标、可用工具、输入输出结构、成功条件
  • 不需要 API Key(使用你现有的 AI 助手)
  • 通过文件结构隔离"当前状态"与"提议变更"

工作流程

ounter(line起草变更提案 → 审核对齐 → 实现任务 → 归档更新规范

适用场景

  • 存量项目(Brownfield)的增量功能开发(1 → N)
  • 需要持续迭代的项目
  • 对现有代码库侵入性要求小的场景

上手方式

ounter(lineounter(linenpm install -g @fission-ai/openspecopenspec init

3. BMAD-METHOD:多角色协作的敏捷框架

定位:通用的 AI 代理框架与方法论,引入 21 个专门的 Agent 角色

核心理念:Agentic Agile Driven Development

  • 将敏捷开发中的需求拆分、迭代、回顾等环节,交给一组协同工作的 AI 代理执行
  • 人类更多扮演"产品愿景与审查者"的角色

与 SDD 的关系

  • BMAD 侧重"如何让一群 Agent 协同完成复杂项目"
  • SDD 侧重"这群 Agent 围绕什么契约工作"
  • 结合时:Spec 成为多 Agent 协作的共同语言,BMAD 提供具体协作模式

适用场景

  • 需要多角色协作(产品经理、架构师、Scrum Master)的复杂项目
  • 需要深度规划的大型项目

上手方式

ounter(linenpx bmad-method install

4. Oh My OpenCode:死磕到底的执行力

定位:OpenCode 的增强插件,主打"西西弗斯"(Sisyphus)代理——死磕到底的执行力。

核心机制:Sisyphus 主代理

  • 类比为"Tech Lead + 项目经理"的组合
  • 把高层需求拆分为一系列 TODO
  • 按类型分发给不同角色的代理,并跟踪执行进度

角色分工

角色
职责
Sisyphus
规划和调度的主代理
Oracle
架构设计和深度调试
Librarian
文档检索和知识管理
Explore
代码库探索、依赖分析
Frontend UI/UX Engineer
前端界面与交互体验

核心特性:Ultrawork(ulw)模式

  • 可以并行启动后台 Agent 进行代码库扫描和文档阅读
  • 保持主上下文干净

适用场景

  • 需要 AI 长时间、自主完成复杂任务(如大规模重构、Lint 修复)
  • 遗留系统分析与改造

5. CCPM:基于 GitHub 的并行开发管理

定位:基于 GitHub Issues 和 Git worktrees 的并行开发管理系统。

核心理念

把「PRD → Epic → Issues → Code」这一整条链路自动化,并让 Spec 在其中形成闭环。

架构设计

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(linePRD(产品需求文档)       ↓Epic(技术方案/设计说明)       ↓Issues(任务拆分)——利用 Git worktrees 让多个 Agent 在不同分支并行工作       ↓Code(生产代码与测试)       ↓PR Review → Merge

核心原则:强调"No Vibe Coding",每一行代码必须可追溯到 Spec。

适用场景

  • 团队协作
  • 单人希望并行推进多个任务而不乱套
  • 需要完整可追溯性的项目

上手方式

ounter(lineounter(linegit clone [仓库] .claude/pm:init

6. Superpowers:强制执行工程纪律

定位:为 AI 编码助手赋予"工程技能"的框架,强制执行最佳实践。

核心特性

  • 包含一套强制的红-绿-重构循环(Red-Green-Refactor)技能
  • 防止 AI 写出不可测的代码
  • 强制 TDD(测试驱动开发)和系统化调试

适用场景

  • 希望 AI 严格遵守 TDD 的团队
  • 对代码质量有极高要求的项目

上手方式

ounter(line/plugin install superpowers

7. Amazon Kiro:AI 原生 IDE

基本信息

  • 📅 2025年7月发布公开预览版
  • 🏢 Amazon AWS 出品
  • 💻 基于 VS Code 构建

定位:AI 原生集成开发环境,内置 SDD 工作流。

核心理念:"从氛围编程到可行代码"

三阶段工作流

ounter(lineRequirements(需求)→ Design(设计)→ Tasks(任务)

独特功能

功能
描述
Agent Hooks
基于文件事件触发自动化(保存时运行测试、提交前安全扫描)
一键回滚
支持任务级别的原子回滚
MCP 集成
可直接连接 API、数据库和内部工具实现全栈感知
多模态输入
可上传 UI 截图或架构图,Kiro 能解读并据此指导编码

适用场景

  • AWS 生态用户
  • 需要从原型快速到生产的开发者
  • 个人开发者和小团队
  • 设计驱动的开发

七、工具选型速查表

按场景选择

场景
推荐工具
理由
新项目从0到1
Spec Kit + Superpowers
完整流程 + 质量保障
存量项目迭代
Oh My OpenCode + OpenSpec
低侵入 + 变更管理
多代理并行团队
BMAD + CCPM
高层规划 + 并行执行
快速原型验证
Kiro
轻量、快速、直观
企业合规要求高
Spec Kit
宪法机制 + 可追溯性

综合评估矩阵

评估维度
Spec Kit
Kiro
OpenSpec
CCPM
BMAD
学习成本
企业治理
⭐⭐⭐⭐⭐
⭐⭐
⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐
自动化程度
⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐⭐⭐
适合规模
大型团队
个人/小团队
维护型项目
并行团队
复杂项目

八、组合落地建议

组合 1:最小落地(个人/从 0 到 1)

工具组合Spec Kit + Superpowers

产出链路constitution.md → spec.md → 代码

7天起步计划

天数
任务
Day 1
安装 specify-cli,初始化项目
Day 2
用 /constitution 定义项目原则
Day 3
用 /specify 生成第一个功能的 Spec
Day 4
用 /plan 生成技术方案
Day 5
用 /tasks 拆解任务
Day 6
用 Superpowers 的 TDD 模式执行第一个任务
Day 7
复盘 Spec 与代码的一致性

组合 2:存量项目迭代(老系统改造)

工具组合Oh My OpenCode + OpenSpec

产出链路proposal.md → changes/ 目录 → 合并后的代码

7天起步计划

天数
任务
Day 1
安装 OpenCode 和 Oh My OpenCode
Day 2
使用 "Librarian" Agent 扫描现有代码库,生成上下文地图
Day 3
用 OpenSpec 初始化项目,创建 openspec/project.md
Day 4
针对一个 Bug 或小需求,运行 /opsx:new 创建提案
Day 5
使用 "Sisyphus" Agent 执行变更(Ultrawork 模式)
Day 6
验证修改,运行 /opsx:archive 归档变更
Day 7
检查生成的文档是否准确反映了系统现状

组合 3:多代理并行团队化(复杂任务)

工具组合BMAD + CCPM

产出链路:PRD (BMAD) → GitHub Issues (CCPM) → 并行分支 → PR

7天起步计划

天数
任务
Day 1
初始化 CCPM,配置 GitHub 仓库
Day 2
用 BMAD 的 Product Manager Agent 生成详细 PRD
Day 3
用 BMAD 的 Architect Agent 生成架构设计
Day 4
将设计导入 CCPM,运行 /pm:epic-decompose 拆解为 Issues
Day 5
运行 /pm:epic-sync 同步到 GitHub
Day 6
启动多个 Agent 并行领取 Issues(API Agent 做后端,UI Agent 做前端)
Day 7
在 GitHub 上进行 Code Review,合并代码

九、挑战与未来展望

当前挑战

1. "Markdown 疲劳"问题

部分 SDD 工作流可能产生大量 Markdown 文件,人工审阅变得繁琐。如果规范不能真正"可执行"或转化为存根代码,可能只是提供了"虚假的控制感"。

2. 可复现性挑战

由于 LLM 是概率性的,即使是定义良好的规范也可能在不同会话或模型间产生不同的实现。行业正在向更正式的规范语言(如 OpenAPI、Gherkin)发展,以实现程序化验证。

3. 棕地集成困难

虽然 SDD 对"绿地"(从零开始)项目非常有效,但将其改造到现有"棕地"代码库要困难得多。现有的技术债务和未明说的架构规则使得 Agent 难以在没有大量人工干预的情况下为遗留系统生成准确的规范。

未来趋势

人类角色的演变:从"编码者"到"上下文工程师"

随着 AI Agent 接管代码执行,人类角色正在演变为架构师或"上下文工程师"(Context Engineer):

  • 人类权力向上移动到意图、策略和伦理层面
  • 维护软件意味着演进规范而非手动重构代码
  • 代码审查转向关注架构契合度和与宪法的对齐,而非语法和风格

十、今天就能做的 3 件事

1. 写下你的"宪法"

在项目根目录新建 CLAUDE.md 或 constitution.md,写下 3 条不可动摇的编码原则。

ounter(lineounter(lineounter(lineounter(lineounter(line# 项目宪法1. 所有日期处理必须用 `date-fns`,禁止使用 `moment.js`2. 禁止使用 `any` 类型,必须定义明确的 TypeScript 类型3. 所有 API 接口必须有错误处理和输入验证

2. 尝试一次 Spec-First

下次写代码前,不要直接让 AI "写一个贪吃蛇",而是:

"写一份贪吃蛇的 Spec,包含数据结构和核心逻辑"

确认 Spec 后再让它写代码。

3. 安装一个工具

根据你的场景选择:

  • 新项目uvx specify init <PROJECT_NAME> (Spec-Kit)
  • 老项目npm install -g @fission-ai/openspec && openspec init (OpenSpec)

附录:术语表

术语
解释
SDD
Specification-Driven Development,规范驱动开发
Spec
结构化的、机器可读的规范文件(如 spec.md)
SSOT
Single Source of Truth,单一事实来源
Constitution
项目"宪法",定义不可变更的原则
Agent
执行特定任务的 AI 角色
Worktree
Git 的工作树,允许同一仓库同时检出多个分支
Brownfield
棕地项目,指已有大量遗留代码的现有系统
Greenfield
绿地项目,指从零开始的新项目

参考资料

官方仓库

  • GitHub Spec Kit: github.com/github/spec-kit
  • OpenSpec: github.com/Fission-AI/OpenSpec
  • BMAD-METHOD: github.com/bmad-code-org/BMAD-METHOD
  • Oh My OpenCode: github.com/code-yeongyu/oh-my-opencode
  • CCPM: github.com/automazeio/ccpm
  • Superpowers: github.com/obra/superpowers
  • Kiro: kiro.dev

延伸阅读

  • Spec-Kit 中文整理:github.com/888888888881/spec-kit-chinese
  • Martin Fowler - Exploring Gen AI: martinfowler.com/articles/exploring-gen-ai
  • AWS Kiro 博客:aws.amazon.com/cn/blogs/china

本文基于对 GitHub 主流 SDD 仓库的深度调研整理而成。如有疏漏欢迎指正交流。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-07 23:41:34 HTTP/2.0 GET : https://f.mffb.com.cn/a/468545.html
  2. 运行时间 : 0.453321s [ 吞吐率:2.21req/s ] 内存消耗:4,448.80kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=fc0760a5980f14801039affa5d535608
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000486s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000553s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001933s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.007863s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000538s ]
  6. SELECT * FROM `set` [ RunTime:0.002473s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000698s ]
  8. SELECT * FROM `article` WHERE `id` = 468545 LIMIT 1 [ RunTime:0.009940s ]
  9. UPDATE `article` SET `lasttime` = 1770478894 WHERE `id` = 468545 [ RunTime:0.002031s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000228s ]
  11. SELECT * FROM `article` WHERE `id` < 468545 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001624s ]
  12. SELECT * FROM `article` WHERE `id` > 468545 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.003273s ]
  13. SELECT * FROM `article` WHERE `id` < 468545 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.029634s ]
  14. SELECT * FROM `article` WHERE `id` < 468545 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.065498s ]
  15. SELECT * FROM `article` WHERE `id` < 468545 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.227607s ]
0.455821s