乐于分享
好东西不私藏

AI 时代的软件工程原则:我在造应用生成器时总结的11条方法论

AI 时代的软件工程原则:我在造应用生成器时总结的11条方法论

Claude Code 技能包已开源: 这套方法论已打包为可直接调用的 Claude Code Skill,让 Claude 自动审计你的 AI 系统并给出改进方案。→ GitHub 获取[1]

我最近在做一个东西:让 AI 自动生成企业应用。

输入一段需求描述,AI 自动规划工作表结构、设计字段、造数据、创建视图、生成图表——一套完整的业务应用,几分钟出来。我叫它 HAP Auto Maker。

在把这个系统搭起来、调通、踩坑、重构的过程中,我把每一个调试经验、每一个设计决策写成了一份内部方法论。这篇文章就是把这份方法论整理出来,分享给所有在做类似事情的人。

这11条原则,不只适用于 AI 工程。任何有复杂流程、多步骤、调用外部 API 的系统,都用得上。


1. 分步拆解(Decomposition)

原则:把一个大任务拆成多个独立小步骤,每步职责单一。

大任务给 AI,AI 的上下文会被稀释,输出质量会下降。更致命的是,出了问题你不知道问题在哪。

我的 pipeline 分成了"规划→配置→执行"三个阶段:先让 AI 规划有哪些工作表,再逐表细化字段,最后执行创建。三个阶段,三个独立脚本,每步可以单独调试、单独重跑。

判断标准: 一步里如果有两件不相关的事,就该拆。"决定做什么"和"怎么配置参数"就是两件事。


2. 硬约束前置过滤(Hard Constraint Gating)

原则:在调用 AI 之前,先用代码把不可能的选项过滤掉。

AI 的能力在于语义理解和创意输出,但它不应该浪费 token 去判断一些纯粹靠规则就能确定的事。

视图推荐是最典型的例子。日历视图需要日期字段,地图视图需要定位字段,分组视图需要单选字段。在把工作表丢给 AI 之前,代码先扫一遍字段,没有日期字段就把日历视图从候选池里移出去。AI 只在"可行的选项"里做语义判断,不会推荐出一个根本无法创建的视图类型。

图表也是一样。没有日期字段,就把折线图从候选里移除;没有数值字段,就移除数值图和仪表盘。这些判断,两行代码就能做,没必要靠 prompt 去约束 AI。

好处是双重的: 减少 AI 犯低级错误的概率,同时减少 token 消耗。


3. 步间校验(Inter-step Validation)

原则:每步 AI 输出之后、传给下一步之前,插入代码校验。不让脏数据往下走。

AI 输出的 JSON 可能缺字段、类型错误、关联引用不存在。不校验直接用,错误会在最不该出现的地方爆发,而且很难定位。

在工作表规划阶段,AI 输出骨架后,代码会校验:

  • • 每个工作表有没有名称
  • • 关联字段引用的目标表是否存在于同一规划中
  • • creation_order 是否满足拓扑顺序(被依赖的表先创建)
  • • 单选/多选字段有没有填 option_values

不通过就修正或丢弃,不传给下一步。这套校验用代码做,快、确定性强。用 AI 做校验是大材小用,也不可靠。


4. 隔离性(Isolation)

原则:单个子任务失败,不影响其他子任务。

这个原则看起来显而易见,但真正做到需要刻意设计。

最常见的反模式:一个循环里处理多个工作表,一张表出错直接 raise,后面所有表全部跳过。

正确做法:每个子任务用独立的 try/catch 包裹,失败记录到日志,继续执行下一个。单个工作表的字段配置出错,该表跳过,其他表不受影响;单个图表规划失败,该图表丢弃,其他图表继续创建。

我的 pipeline 里,10 个工作表并行规划,任何一个失败都只影响自己,其余 9 个照常完成。这一点对用户体验的影响非常大——原本需要整体重跑的,现在顶多局部重试。


5. 降级优先(Graceful Degradation)

原则:遇到错误时,优先降级,不要整体失败。

这是隔离性的延伸,但粒度更细。

创建视图时,某个高级配置(advancedSetting)某个 key 格式不对,不要因为这个让整个视图创建失败。移除那个 key,用默认值继续创建。视图创建出来了,配置不完整,但用户至少有一个可用的视图。

这比"全部重来"的代价小得多。在 AI 生成的内容里,局部错误是常态,不是异常——你的系统要有能力吸收这些局部错误,而不是被它们击垮。

判断边界: 核心结构错误(工作表名称缺失、关联目标不存在)应该拒绝并记录;细节配置错误(颜色格式错、描述字段超长)应该修正后继续。


6. 幂等性(Idempotency)

原则:重复执行同一步,不产生重复数据。

这是调试体验的关键。

系统跑到一半失败了,你重跑,结果之前已经创建成功的部分又创建了一遍——10 张工作表变成了 20 张。这种情况会让你不敢重跑,每次都得先手动清理。

做法:创建之前先检查是否已存在。工作表——先查应用里有没有同名工作表,有就跳过;角色——--skip-existing 参数,已存在的角色不重复创建。

幂等性让你可以放心重跑整个 pipeline,不用担心产生垃圾数据。


7. 断点续跑(Resume / Checkpoint)

原则:每步输出都持久化。重跑时检测中间产物是否已存在,存在则跳过。

这是幂等性的升级版。幂等性解决的是"不产生重复数据",断点续跑解决的是"不重复做已经做过的事"。

工作表规划需要调 3 次 AI(骨架 + 逐表细化),花费大量 token 和时间。如果规划已经完成但后续步骤失败,重跑时应该直接用已有的规划结果,跳过 AI 调用,从创建阶段开始。

实现方式:每步开始前检查输出文件是否存在且内容合法,存在则加载并跳过。文件名要用确定性命名(基于 app_id),而不是带时间戳的随机名——带时间戳的文件每次都生成新文件,找不到上次的结果。


8. 干跑(Dry Run)

原则:每一步都支持只输出计划、不实际执行。

调 prompt 的时候,你不想每次都真的创建一堆工作表;验证流程逻辑的时候,你不想操作真实数据。

--dry-run 模式让整个 pipeline 正常运转,但所有实际 API 调用都被跳过,只打印出"会做什么"。你能看到完整的执行计划,验证逻辑正确,再正式跑。

这个功能的价值在调试阶段被放大了 10 倍。从 "跑一次就创建了一堆垃圾数据,然后手动删" 变成 "随便跑,没有副作用"。


9. 可观测性(Observability)

原则:每步记录耗时、token 消耗、重试次数、丢弃原因。Pipeline 结束后输出可读 summary。

不可观测的系统是黑盒,出了问题只能凭感觉猜。

一个好的 summary 应该让你一眼看到:

工作表「订单」: 规划 2.1s → 字段细化 3×1.8s → 创建 3×0.5s | 3/3 成功工作表「客户」: 规划 1.9s → 字段细化 2×1.5s → 创建 2/2 成功工作表「物流」: 规划失败(重试 2 次)| 跳过总计: 5/5 工作表创建成功, 1 表跳过, AI tokens: 12,340, 总耗时: 8.2s

token 消耗数据特别重要:知道每步花了多少 token,才能有针对性地优化 prompt、评估成本。如果每次跑都是黑盒,你永远不知道优化是否有效。


10. 限流与并发控制(Rate Limiting)

原则:用参数控制并行度,不要让并发冲垮外部服务。

并行执行能大幅缩短耗时,但并行度太高会触发 API 限流(429 错误),反而变慢,严重时会被封。

我用信号量(Semaphore)控制同时调用 AI API 的数量,--gemini-concurrency 参数可以调整。同时按天追踪 RPD(Requests Per Day)用量,快到上限时提前预警。

对外部 API 的每一次并发调用,都要问自己:对方的 rate limit 是多少?我当前的并发设置会不会超?有没有重试逻辑?


11. 回滚(Rollback)

原则:失败时可选择清理已创建的数据。

这是成本和一致性的权衡。

默认策略是保留已成功的——跑了一半,成功的工作表留着,失败的不管。这在大多数场景下是合理的:局部成功总比全部没有要好。

但有时候你需要"要么全成功、要么全没有"——比如给客户演示用的应用,半成品不能给人看。这时候需要 --rollback-on-failure,失败时把整个应用删掉,重新来。

这个功能必须是可选的、显式触发的,不能是默认行为。保留部分成果是更安全的默认策略。


这11条的优先级

如果你现在要从零开始用这套方法,按这个顺序来:

  1. 1. 分步拆解 — 基础,其他所有方法都建立在此之上
  2. 2. 硬约束前置 — 能用代码解决的事不要交给 AI
  3. 3. 步间校验 — 脏数据止步于每步边界
  4. 4. 隔离性 — 局部失败不扩散
  5. 5. 降级优先 — 能用就用
  6. 6. 幂等性 — 放心重跑
  7. 7. 断点续跑 — 不从头来
  8. 8. 可观测性 — 知道发生了什么、花了多少
  9. 9. 干跑 — 安全调试
  10. 10. 限流 — 保护外部服务
  11. 11. 回滚 — 按需要

前五条是正确性,后六条是工程体验。正确性优先,体验其次。


最后说一句

这份方法论是从真实项目里蒸馏出来的。每一条背后都有具体的 bug、具体的调试记录、具体的"当时如果这样做就好了"。

AI 让写代码变快了,但它没有让软件工程变简单。恰恰相反——AI 系统的不确定性更高,更需要这些工程原则来保证稳定性和可维护性。

AI 给你的是速度,工程原则给你的是可靠性。两个都要。


用 Claude Code 自动审计你的系统

这套方法论已打包为 Claude Code Skill,可以让 Claude 自动扫描你的代码库、对照这 11 条原则逐一打分、输出优先级排序的改进计划。

安装:

claude plugin install https://github.com/andyleimc-source/ai-engineering-principles-skill

使用:

在 Claude Code 中输入 /engineering-principles,Claude 会读你的 pipeline 代码,输出一份审计报告——哪些原则已经实现,哪些有缺口,该从哪里开始补。

→ GitHub 仓库[1]


老雷(Andy),明道云 & Nocoly CMO,SaaS 行业从业十余年。骨子里是个产品人和技术迷,乔布斯的信徒,相信好的产品能改变世界。深度关注 AI、商业与科技趋势,目前在深度使用和实践 Claude Code,专注探索 AI 如何重塑产品形态和商业逻辑。不聊概念,只聊真实发生的事。

引用链接

[1] GitHub 获取: https://github.com/andyleimc-source/ai-engineering-principles-skill

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-09 01:09:09 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/504421.html
  2. 运行时间 : 0.153643s [ 吞吐率:6.51req/s ] 内存消耗:4,660.08kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=25daf9afeb6bc2d30ba31028372c7a0c
  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.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000901s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001793s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000695s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000608s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001425s ]
  6. SELECT * FROM `set` [ RunTime:0.000529s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001405s ]
  8. SELECT * FROM `article` WHERE `id` = 504421 LIMIT 1 [ RunTime:0.002923s ]
  9. UPDATE `article` SET `lasttime` = 1775668149 WHERE `id` = 504421 [ RunTime:0.003513s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000283s ]
  11. SELECT * FROM `article` WHERE `id` < 504421 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.002759s ]
  12. SELECT * FROM `article` WHERE `id` > 504421 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.006710s ]
  13. SELECT * FROM `article` WHERE `id` < 504421 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004534s ]
  14. SELECT * FROM `article` WHERE `id` < 504421 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.008181s ]
  15. SELECT * FROM `article` WHERE `id` < 504421 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008716s ]
0.157186s