乐于分享
好东西不私藏

架构文档作为一等工程资产

架构文档作为一等工程资产

好文翻译,原文链接

https://dev.to/gdg/architecture-documentation-as-a-first-class-engineering-asset-4a1j

TL;DR

架构文档并非杂务。当它与源代码放在一起,并输入到由人工智能驱动的质量流水线中时,它能把静态分析从“捕捉拼写错误”转变为“捕捉系统性的安全故障和代价高昂的基础设施泄漏”。本文记录了一个真实实验:在一个多服务的谷歌云平台上,由一个自主的人工智能代理生成架构文件——而人类工程师基本上不在现场——以及当这些文档为我们的人工智能质量门(Quality Gate)提供全新视角时发生的事情。

1. “自文档化代码”的问题

软件工程中一直存在一个顽固的假设:结构良好的代码是不言自明的。整洁的函数、好的变量名、Pylint 评分 10.0/10——这肯定足够了吧?

并不够。

代码描述的是系统如何执行。架构文档描述的是系统为什么存在,以及它如何与周围的一切交互。没有这一层上下文,每一个自动化分析工具都是在黑暗中操作。它能看到一个函数,但看不到该函数在更广泛的服务网格中的角色。它能看到一个 API 调用,但看不到该调用预期要执行的安全边界。

当你将人工智能驱动的工具引入工程工作流时,这种区别非常重要。没有架构上下文的大语言模型(LLM)分析原始代码,就像让一位资深工程师在不了解系统设计的情况下进行安全评审。

2. 边做俯卧撑边生成架构

我的平台运行在谷歌云(Google Cloud)上。它由部署在 Cloud Run 上的数十个微服务组成,通过 REST API 进行交互,将资产持久化到 Google Cloud Storage ,并通过一个集中的 Vertex AI 网关路由所有人工智能操作。这是一个丰富且连接良好的系统——但唯一的文档散落在各处零散的 README 文件中。

我着手改变这一点。目标是:为每个服务生成一个标准化的、机器可读的架构快照,并直接提交到代码仓库中。

方法: 引导式自主代理执行 。

工程师设定方向,确立文档标准,然后退后一步。人工智能代理——由 Gemini 3 Flash 和 Claude Sonnet 4.6 驱动,运行在 Antigravity内部——接手工作。它自主检查每个服务,阅读源代码,追踪服务间依赖关系,将现有实现与文档标准进行交叉比对,并迭代生成结构化的 ARCHITECTURE.md 文件。在此过程中,工程师的主要活动是体育锻炼。

输出结果不是非正式的笔记。而是一个严谨的、多层次的文档层级结构:

📦 platform-root ┣ 📜 ARCHITECTURE.md           ← 第0级:全局服务网格、拓扑结构、生命周期状态 ┗ 📂 services    ┣ 📂 core-ai-gateway    ┃  ┗ 📜 ARCHITECTURE.md     ← 第1级:安全策略引擎、FinOps 护栏    ┣ 📂 orchestration-bot    ┃  ┗ 📜 ARCHITECTURE.md     ← 第1级:异步任务流、Telegram webhook 处理    ┣ 📂 media-transcriber    ┃  ┗ 📜 ARCHITECTURE.md     ← 第1级:语音转文本流水线、GCS 资产管理    ┗ 📂 translation-engine       ┗ 📜 ARCHITECTURE.md     ← 第1级:结构化输出、多语言路由

每个文档都遵循严格的模板:

  • • 意图(Intent) :此服务存在的具体业务和技术原因。
  • • 设计原则(Design Principles) :关键的权衡——无状态性、延迟目标、降级策略。
  • • 交互图(Interaction Diagram) :一个 Mermaid 图,展示服务到服务的流程、安全边界以及人工智能提供商的集成。它可以由代理生成,并在 Gitlab 中自动绘制。
  • • LLM 上下文块(LLM Context Block) :一个精确的摘要,针对自动化代理和人工智能评审者的使用进行了优化。

整个操作最终产生了一个可导航、交叉链接的架构地图——仅需极少的人类认知付出(还带有可视化!)。

3. 质量门的觉醒

一旦文档与源代码一起提交,我就使用我们的人工智能驱动的 质量门(Quality Gate) 运行了标准的持续集成(CI)质量评审。这个质量门是一个构建在 通过 Vertex AI 的 Gemini 之上的服务,旨在对每个合并请求执行自动化的架构和安全评审。

💡 质量门到底是什么?它不是一个价值10万美元的企业 SaaS 平台。它是一个轻量级、专门构建的微服务——属于它所评审的同一平台的一部分——部署在 Google Cloud Run 上。它暴露一个单一的端点,从 CI 流水线接收合并请求的差异(diff),用仓库的架构文档构建一个丰富的大语言模型提示(prompt),调用 Vertex AI (Gemini) ,并返回一个结构化的 JSON 评审报告。

因为它运行在 Cloud Run 上,仅在触发评审时启动,并在之后立即关闭。 我每月的总成本只有几美元 ——仅仅是单个人类代码评审工时的一小部分。这是对谷歌云无服务器模型的实际演示:只为实际使用的计算资源付费,并且只在增加价值时才使用高智能人工智能。

效果立竿见影。

以前,没有架构上下文时,质量门仅限于代码级别的分析:风格一致性、常见的安全反模式、依赖版本。有用,但浅薄。

有了 ARCHITECTURE.md 文件作为上下文,模型可以同时看到架构和代码。结果是质的飞跃:质量门从静态分析工具转变为一个在系统设计层面进行推理的系统。

它在几分钟内就识别出了两个关键问题——这些问题在代码库中未被发现地存在了数月。


发现1:分布式追踪黑屏

我们的一个路由服务包含中间件,该中间件明确剥离了传入的追踪头(trace headers)。表面上看,这是一个合理的安全措施,可以防止外部客户端将追踪标识符注入内部系统。

质量门将其识别为关键的可观测性违规。

因为架构文档描述了整个网格中的分布式追踪标准——包括需要与 Google Cloud Trace 兼容的端到端 X-Trace-ID 传播——模型理解到,在边界处剥离这些头并不会隔离威胁。它彻底切断了追踪链。在任何生产事故中,工程师将无法在 Cloud Logging 中跨服务关联日志,把常规的调试会话变成一场数小时的取证调查,且没有任何 Cloud Audit Logs 相关性可供依赖。

安全意图 ✓。系统后果 ✗。文档使这一矛盾变得可见。


发现2:静默的存储泄漏

一个媒体处理服务的文档显示,它有意跳过了每次处理作业后对 Google Cloud Storage 中临时资产的清理。其理由是隐含的——简单、避免因删除错误导致的失败模式。

质量门将此与文档中记录的数据最小化和最小权限访问的架构原则进行交叉比对,并将其标记为安全和 FinOps 双重违规。

影响:用户的音频文件——可能包含敏感的个人信息——无限期地在云存储中累积。没有生命周期策略。没有删除触发器。静默的、不断增长的成本。随着每个新的处理请求,攻击面不断扩大。

无论是代码检查工具(linter)还是孤立扫描函数的代码评审者,都不会标记出以上任何一个问题。这两个发现都源于代码行为与架构意图的交集——仅因为文档存在才变得可见。


4. 投资回报率(ROI)案例

这个实验在三个维度上产生了可量化的投资回报:

维度
没有文档
有文档 + 人工智能代理
架构捕获
资深架构师工时
代理周期,接近零人力付出
评审质量
代码级发现
系统级及策略级发现
问题发现成本
事故后或审计时
CI/CD 流水线(数分钟,几分钱)
质量门
通用、僵化的企业工具
定制微服务,可按团队或开发者调优

在 Google Cloud 平台的上下文中,还有三个额外因素值得注意:

  1. 1. Vertex AI 令牌效率 :当质量门由 Gemini 模型支持时,提供结构化的 ARCHITECTURE.md 可以减少模型从原始代码中重构系统意图所花费的令牌。更好的上下文意味着更便宜、更快、更准确的生成——直接影响你的人工智能计算成本。
  2. 2. Cloud Run 可观测性 :上面描述的分布式追踪发现对于基于 Cloud Run 的架构尤其相关,因为这类架构中的服务是无状态和短暂的。如果没有持续的追踪传播,在 Cloud Run 上调试服务间故障会变得极其困难。文档使这一风险变得明确且可捕捉。
  3. 3. 无服务器成本模型 :由于质量门是一个仅在 CI/CD 运行期间被调用的 Cloud Run 服务,因此没有闲置成本。在一个每天有几个合并请求的典型团队中,整个人工智能驱动的评审流水线每月的成本仅为几美元——不到一个工程工时。这正是谷歌云无服务器模型的预期工作方式:高智能计算,按需提供,成本极低。

5. 给平台工程师的经验

这个实验的关键洞察不在于人工智能代理比人类写文档更快。那是意料之中的。关键洞察在于: 存放在仓库内部的架构文档,是每一个读取它的自动化工具的倍增器 。

无论你的自动化工具是人工智能驱动的代码评审者、合规性扫描器、入职助手还是基础设施规划代理,文档越好,运行在其之上的每个工具的信号质量就越高。

实用建议:

  1. 1. 将文档与代码放在一起。 一个不同步的独立维基是噪音。服务目录中的 ARCHITECTURE.md,与代码在同一次提交中更新,才是信号。
  2. 2. 建立文档标准。 一个一致的模板(意图、原则、交互图)使文档不仅人类可读,而且机器可读。
  3. 3. 定义生命周期状态。 明确标记已弃用或不活跃的服务。自动化代理不应使用遗留代码作为当前标准的参考。
  4. 4. 使用代理生成初稿。 从空白页面开始的认知负担是真实存在的。代理非常擅长产生结构化的初稿,然后由工程师验证和完善。
  5. 5. 将文档输入到 CI 流水线。 一个拥有人工智能评审者加上架构上下文,与没有上下文的工具是不同类别的工具。
  6. 6. 构建你自己的质量门——并让它为你量身定制。 这是企业 SaaS 无法比拟的关键优势:灵活性。一个由 Gemini 支持、由你的合规规则、你的架构标准和你的团队约定驱动的定制 Cloud Run 服务,意味着每个开发者都可以拥有一个理解项目确切上下文的个人评审者——而不是为所有可能代码库的平均值设计的通用规则集。

6. 结论

架构文档历来被视为可选的额外开销——理论上很有价值,实践中却被降级。这个实验证明,当文档与源代码放在一起、遵循一致的机器可读标准、并在自主代理的帮助下保持最新时,它就成为关键的基础设施组件。

它使自动化系统能够在平台设计层面进行推理,而不仅仅是代码语法层面。它将人工智能驱动的质量门从昂贵的代码检查工具转变为真正的架构顾问。并且它可以——为整个平台——在你完全在做其他事情的同时生成。

那篇价值1万美元的 ARCHITECTURE.md 不是一个比喻。它是在5分钟的 CI 评审中发现关键架构缺陷,与在生产事故、合规审计或没人预料到的云存储账单中发现它之间的估算成本差异。

保持你的架构文档化。把它放在仓库里。让代理维护它。

#架构文档 #AI代理 #质量门 #分布式追踪 #存储泄漏 #系统级发现 #文档即代码 #自主代理

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-29 16:48:45 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/814964.html
  2. 运行时间 : 0.172021s [ 吞吐率:5.81req/s ] 内存消耗:4,597.49kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=1e4a41f143c372c19e41de030e09ba08
  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.012418s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.009819s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.020684s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.014514s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001003s ]
  6. SELECT * FROM `set` [ RunTime:0.000257s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000591s ]
  8. SELECT * FROM `article` WHERE `id` = 814964 LIMIT 1 [ RunTime:0.000506s ]
  9. UPDATE `article` SET `lasttime` = 1782722925 WHERE `id` = 814964 [ RunTime:0.007885s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000251s ]
  11. SELECT * FROM `article` WHERE `id` < 814964 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000435s ]
  12. SELECT * FROM `article` WHERE `id` > 814964 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000418s ]
  13. SELECT * FROM `article` WHERE `id` < 814964 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001321s ]
  14. SELECT * FROM `article` WHERE `id` < 814964 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002459s ]
  15. SELECT * FROM `article` WHERE `id` < 814964 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001697s ]
0.173779s