当前位置:首页>学习笔记>ai编程学习笔记(三)-- Spec-kit基础篇

ai编程学习笔记(三)-- Spec-kit基础篇

  • 2026-02-21 20:27:50
ai编程学习笔记(三)-- Spec-kit基础篇
在完成了对Cursor和Claude Code的系统性学习后,我迎来了AI编程工具探索之旅的最后一站——Spec-Kit。如果说Cursor是集成在IDE中的“智能协作者”,Claude Code是终端里的“全栈执行者”,那么Spec-Kit则代表了另一种截然不同的理念:规范驱动开发(Specification-Driven Development, SDD)。它不是一个直接编写代码的工具,而是一套为AI编程助手提供“工作蓝图”和“行为准则”的框架,旨在将软件开发从即兴的“凭感觉写代码”转变为有章可循的、可追溯的工程化流程。

什么是Spec-kit

老规矩,还是先讲解一些我对这个东西的理解。Spec-Kit是微软发布的“规格驱动开发”工具包,其本质是一套命令行工具。它通过将“规格→计划→任务→实现”的流程标准化,并把这些步骤封装成可执行的斜杠命令(slash commands),使得Claude Code、GitHub Copilot、Gemini CLI等AI代理能够在一个结构化的框架内工作,而不是进行即兴的、无约束的代码生成。
在体验了前两种工具的自动化能力后,我深刻感受到,即使是最强大的AI助手,如果缺乏清晰、一致的前期规划和约束,也很容易在复杂任务中“跑偏”,导致代码质量参差不齐或需要大量返工。Spec-Kit正是为了解决这一问题而生。它的核心价值在于让“写什么/为什么”先于“怎么做”。这并非否定AI的执行能力,而是为其提供一个稳固的、经过深思熟虑的起点和边界。
Spec-kit定义了一份从宪章,规范,澄清,计划,到任务等多个步骤的完整文档工作流。与Claude Code的CLAUDE.md或Cursor的Rules不同,Spec-Kit的产出(宪章、规范文件、计划文档等)都直接放入你的工作区,这使得它成为三者中最可定制的一个。所有流程和模板都可以根据项目需要进行调整,赋予了开发者极大的灵活性。
接下来我就展开讲一下这个文档工作流。

Spec-kit的工作流

Spec-Kit 的工作流是一个多阶段、逐步细化的过程,通常包含以下核心步骤,构成了一个从原则确立到代码交付的完整闭环。

安装

首先是项目的初始化与环境的搭建,官方推荐使用uv包管理器作为初始化工具,初始化后,项目会生成标准目录结构,核心包括 .specify/ 配置目录、specs/ 功能规范目录以及 AI 助手配置文件(如 CLAUDE.md)。.specify/ 目录下包含模板、脚本和最重要的“宪法”文件,为后续流程提供基础。(需要预先安装python环境和uv包管理器)

制定宪章

环境安装完成后下一步就是制定宪章,文档中通常会翻译成立宪阶段,即constitution文件的定制。这是工作流的起点,目的是建立项目的“最高法律”。宪法文件(.specify/memory/constitution.md)定义了项目的核心原则、技术约束和质量护栏,防止 AI 自由发挥跑偏。通常包含项目的核心原则,技术栈强约束,以及代码风格,性能要求等,有点类似于cursor的r规则约束。核心的技巧是要明确边界,避免出现模糊的描述,比如“速度要快一些” 正确的描述应该是接口响应小于200毫秒。

制定规划

制定宪章后,下一步就是编写功能规范,这部分也是比较容易和下一步混淆的部分,功能规范只关注业务意图和用户价值,严禁涉及技术实现细节。
核心结构:
  • 用户故事与测试:按优先级(P1, P2, P3)排列用户故事。P1 故事必须是独立可测试的 MVP 切片,确保每个故事都能独立开发、测试和交付。
  • 功能需求:使用 FR-编号格式,清晰列出系统必须提供的功能。
  • 成功标准:使用 SC-编号格式,定义可量化、技术无关的验收指标,如“90%的用户能在3次点击内完成核心操作”。
撰写技巧(来自PM视角):为确保 AI 能稳定理解,需求描述应遵循“语义完整、结构稳定”的原则,可包含以下字段:
Intent (必写):用户目标或意图。
Action (强烈推荐):系统应执行的动作。
State (可选):影响业务逻辑的状态变化。
Constraint (可选):安全、业务规则等限制。
Acceptance Criteria (必写):可观察、可测试的成功/失败标准。
决策分支 (隐式):通过 if-then 描述不同条件的结果。

澄清阶段

生成技术计划前,AI 会自动分析 spec.md,提出关于数据口径、失败兜底、权限范围等易产生歧义的问题。回答这些问题并更新到 spec.md 的 Clarifications 区域,能显著减少后期返工。

计划阶段

这部分是生成技术方案的关键步骤,将经过澄清的规格翻译成具体的技术方案,产出 plan.md、data-model.md 以及 contracts/ 下的 API 契约等文件。计划阶段是Spec-Kit流程中承上启下的“技术中枢”,其核心职能是将spec.md中明确的业务需求,转化为具体、可执行的技术实现方案。Plan阶段让AI程序员具备了架构师的视角,使其输出不再局限于代码片段,而是符合项目整体架构的系统性方案。
plan.md作为技术设计文档(TDD),其结构必须清晰且具有指导性。以下是必须包含的核心要素:
🔗 引用规格:必须明确指出本次技术方案依据的spec.md文件名和ID,确保方案可追溯。
⚙️ 技术上下文与约束:
    🧱 核心技术设计 :这是plan.md最重要的部分,定义了代码的骨架。
    ⚠️ 风险、限制与测试策略:预测技术障碍、明确技术约束,并规划单元测试应覆盖的关键逻辑。
计划阶段的核心在于将Spec中的“What”转化为Plan中的“How”。通过这种转化,原本面向用户的需求被分解成了AI可执行的技术指令。

任务拆解阶段

完成计划制定的操作后,就就会进入任务拆卸阶段,任务拆解是将技术计划分解为具体的、可执行的开发任务,产出 tasks.md。这是衔接计划和代码的桥梁。其核心目标是将一个大的、复杂的plan.md,分解成一系列小的、原子的、可独立Review和合并的Pull Requests (PRs)。tasks.md文件定位为一份详细的PR提交列表或待办清单,直接服务于开发者的Git工作流。Tasks阶段最大的价值在于实施原子性原则,即将一个大的、复杂的Plan(技术方案)分解成一系列小的、原子的、可独立Review和合并的Pull Requests (PRs)。
这种原子性体现在每个任务/PR只做一件事,并且是独立的、完整的、可测试的。评审者只需关注单个文件或单个逻辑块,评审更快、更聚焦,从而显著降低引入错误的风险。如果某个原子PR引入了Bug,其回滚成本极低,不会影响其他已完成功能的稳定性,实现了故障的精准隔离。同时原子提交使得代码库的变更历史清晰可追溯,每个功能点的引入、修改和移除都有明确的记录,极大提升了项目的可维护性。
Tasks阶段将软件开发从“即兴创作”转变为“按图施工”。一个完善的tasks.md文件就像一份详细的PR提交清单或施工图纸,直接服务于开发者的Git工作流。它明确了任务的执行顺序、依赖关系以及每个任务的交付物。

实施阶段

任务拆解完成后,进入实施阶段,也就是真正输出代码的阶段。这是Tasks阶段最直接的后续动作,也是AI编程助手大显身手的核心环节。开发者通过执行/speckit.implement命令,启动自动化代码生成流程。AI代理(如Claude Code、Cursor等)会严格按照tasks.md文件中定义的任务顺序、依赖关系和具体描述,逐个执行开发任务。它会自动读取任务目标、涉及的文件路径,并生成相应的代码。过程中会严格的遵循测试驱动开发的TDD原则,每当AI成功完成一个任务(包括编写代码、运行测试并通过),它会自动在tasks.md文件中将该任务标记为已完成(例如勾选复选框或标记为(x)),实现进度的实时可视化。

分析阶段与辅助扩展阶段(可选)

spec-kit工作流还提供分析和代码预审的功能,AI会对spec.md(需求)、plan.md(技术方案)和tasks.md(任务)这三份核心文档进行只读的交叉分析。分析的重点在于发现文档之间的不一致、矛盾或覆盖缺口。分析完成后,AI会生成一份包含严重程度分级(如LOW, MEDIUM, HIGH)的问题报告。这为开发者提供了一个清晰的风险优先级列表,便于在编码开始前集中修复设计层面的缺陷,从而避免后期昂贵的返工。
除了核心的实施与分析,Tasks之后还有一些辅助性命令和流程,用于增强协作和项目管理。比如生成质量检查清单(/speckit.checklist),任务同步到到问题跟踪系统等。
总之,Spec-Kit 通过将意图、规划和实现分离并文档化,为 AI 辅助编程提供了坚实的工程护栏。它不仅仅是一组命令,更是一种强调清晰沟通、可测试性和可追溯性的开发文化。掌握其文档规范与技巧,能让你与 AI 的协作从“即兴演奏”变为“交响乐演出。

Spec-kit 与 AI代理(Claude Code、Cursor)的协作

Spec-Kit 的设计定位非常清晰:它不绑定特定的 AI 模型,而是作为一个中间层(Tooling/Framework) 存在。它通过一套标准化的斜杠命令(Slash Commands)和文档模板,在开发者(人类)和 AI 代理之间建立了一座桥梁。
对开发者而言:Spec-Kit 提供了一套从“想法”到“代码”的标准化操作流程。开发者不再需要与 AI 进行冗长、模糊的对话,而是通过执行 /speckit.constitution、/speckit.specify 等命令,将需求转化为结构化的文档。
对 AI 代理而言:Spec-Kit 生成的文档(如 spec.md, plan.md, tasks.md)构成了一个持久化、高保真的上下文。AI 在后续的每一个步骤中,都基于这些精确的“蓝图”进行工作,避免了因对话历史遗忘或理解偏差导致的“幻觉”和代码跑偏。
这种协作模式的核心转变在于,软件规范(Spec)取代了随意的对话(Chat),成为项目开发的唯一可信源头(Single Source of Truth)。AI 的角色从“聊天机器人”升级为能够理解并执行复杂工程蓝图的智能体。
与 Claude Code 协作:这是最经典和官方的组合。Claude Code 作为命令行智能体,与 Spec-Kit 的 CLI 特性天然契合。开发者通常在终端中启动 Claude Code,然后直接输入 /speckit.* 系列命令驱动整个流程,体验流畅的“对话式开发”。
与 Cursor 协作:Cursor 作为深度集成 AI 的 IDE,与 Spec-Kit 的协作更侧重于“上下文实时感知”。在 Cursor 中,当 spec.md 或 plan.md 被修改后,AI 能主动提示开发者同步更新相关的接口或前端组件代码,实现更紧密的联动。协作方式可以是直接使用 CLI 初始化后,在 Cursor 聊天框中使用命令;也可以借助社区封装的 Cursor Toolkit 规则,获得更原生的体验。
Spec-Kit 与 AI 代理的协作,最终实现了以下几个维度的价值跃升:
  1. 工程化取代随意性:通过宪法、规格、计划、任务的多层门控,将“氛围编码”(Vibe Coding)转变为可预测、可管理的工程流程,输出代码的质量和一致性得到根本保障。
  2. 上下文持久化:项目知识被固化在结构化的 Markdown 文件中,而非易失的对话历史里。这使得 AI 在任何时候都能拥有完整、准确的上下文,新成员加入也能快速理解项目全貌。
  3. 端到端可追溯:从最高原则(宪法)到一行具体代码,形成了清晰的追溯链条。任何需求变更,都可以从顶层规范开始,由 AI 自动向下游传递和实现,极大提升了维护效率和响应速度。
  4. 人机角色优化:开发者得以从繁琐的“脚手架代码”编写中解放出来,更专注于定义业务价值、制定规则和进行关键决策;AI 则负责高效、准确地执行已被明确定义和规划的任务,真正实现了“业务主导,技术让渡”
总结
深入学习 spec-kit,最大的收获在于完成了从 “代码编写者” 到 “意图架构师” 的思维转变。它以规范驱动开发的理念,将模糊需求转化为结构化的可执行流水线,通过 “规格→计划→任务→实现” 的严格流程,把质量内建于开发全周期。这种先定边界再谈实现的方式,不仅借助多 AI 代理支持解决了传统 AI 编程的兼容性痛点,更通过一致性检查机制,让我深刻理解到 “先把事做对,再把事做好” 的工程价值,为复杂项目的交付提供了全新的心智模型

回顾整个假期的探索历程,从Cursor、Claude Code到Spec-Kit,这三种工具分别代表了当前AI编程领域的三种关键范式,共同构成了我理解AI辅助开发的全景图。Cursor作为集成式AI编辑器,以其流畅的体验和清晰的四种工作模式(Ask, Plan, Debug, Agent)让我学会了如何根据任务复杂度与风险,阶梯式地利用AI能力。Claude Code则以其突出的模型推理能力和代码质量,展示了顶级Code Agent在复杂问题上的“智能”深度。而Spec-Kit作为一套方法论框架,超越了单一工具,教会我如何通过结构化的工程流程来管理和驾驭前两者的能力,确保输出的可控性与项目的一致性。这三者的学习让我明白,高效的AI编程并非简单地将需求抛给模型,而是需求拆解、上下文管理、流程控制与人工审查的有机结合。AI是一面镜子,我对需求越清晰,提供的上下文越精准,它反馈的代码质量就越高。

当然,春节假期的时间终究有限,本次学习更多是扫盲式的入门与核心思想的提炼。无论是Cursor中@功能的深度运用、Claude Code在不同模型(Haiku, Sonnet, Opus)间的精准选型策略,还是Spec-Kit在已有大型项目(Brownfield)中的渐进式改造实践,都有大量值得深入探索的细节。但我对假期的学习成果感到十分肯定,它为我系统掌握AI编程工具奠定了坚实的基础,梳理出了一条从工具使用到工程方法论的清晰路径。我将带着这些收获,在后续的开发实践中继续探索和验证,并期待将更多实战经验与心得体会总结更新。这个假期的学习,无疑是为拥抱AI时代软件工程新范式迈出的坚实一步。请大家持续关注我后续的学习成果,也欢迎大家多多指正。

最新文章

随机文章

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