源码技术
php
java
python
Linux
当前位置:
首页
>
java
>一文读懂:AI 编程的可控闭环(2026.1)
一文读懂:AI 编程的可控闭环(2026.1)
2026-01-11 12:07:55
一文读懂:AI 编程的可控闭环(2026.1)
这篇文章是我一边学习 AI coding 工具的功能和原理(上下文装配/工具调用/工作流编排等),一边和 AI 反复对话、踩坑后整理出来的笔记。
我相信,AI Coding 工具的设计者应该是最懂 AI Coding 的那帮人,站在巨人的肩膀上学习。
如果你也有过这种体验:AI 写得很快,但最后把时间花在“对齐口径、找入口、补遗漏、修回归、跑不通”的环节上——那我们可能在同一条船上。下面这些做法不一定完美,分享出来做个参考。
PART 01
别把 AI 当写代码的外包
实践几轮后,一个体感是:AI 本身不是问题,问题经常出在我们把它当成“直接产出代码”的外包,从而跳过了工程里本来就该存在的闸门(影响面、约定、验证)。
AI 确实把“实现”阶段提速了,但也更容易把“返工/回归/评审”阶段放大。
因此更适合把 AI Coding 工具看成一个“可调度的研发系统”,它大致具备三类能力:
上下文装配能力 :能拿到项目真实信息(入口、配置、依赖、约定)
工具执行能力 :能搜索/读取/修改/运行,形成证据链
流程编排能力 :能按研发步骤推进,并以验证闭环收尾
这里想强调的不是让 AI 更聪明,而是让协作过程更
可控
。
也要补一句“现实约束”:很多返工不是你水平不行,而是 AI coding 仍有几个硬障碍——比如上下文获取仍是瓶颈、影响面容易被低估、调试证据链不强等。完整版放在文末 `Part 6` 。
PART 02
一个更稳的协作节奏
为了减少“聊着聊着就发散/开改”的概率,可以尽量把和 AI 协作的步骤固定成五步 :
1) Search(搜索定位) :先定位入口、调用链、影响面
2) Read(阅读确认) :读关键文件,确认项目约定与现状原因
3) Plan(计划闸门) :写清最小切片、Non-goals、影响面、验证方式
4) Edit(最小修改) :只做必要改动,避免顺手重构
5) Verify(验证闭环) :跑测试/命令,用真实输出驱动修到通过
一句话
: 把位置找准(S),把规则读清(R),把验收/验证写清(P),再做最小改动(E),最后用结果证明它真的对(V)。
名词解释:
- 入口 :从哪儿进(路由/handler/consumer/定时任务等)
- 调用链 :入口之后一路会调用到哪些模块/函数(用箭头画出来)
- 影响面 :这次改动可能波及哪些文件/模块/调用方/配置/测试
- 契约 :别人依赖你“现在的行为是什么”(返回码/字段含义/错误语义/边界条件等)
这五步不是“一次走完”的瀑布,而是 可回退的短循环 。
- 先收敛方案: `(S → R → P)*` (把关键假设补齐证据)
- 再实施闭环: `(E → V)*` (用验证输出驱动修到通过)
其中, Plan 往往是最关键的闸门:它能把“AI 的发散”收敛成“工程可交付”。
接下来本文按研发全周期把这 5 步“落到手上”:在需求、计划、理解、实现、验证、评审这 6 个环节里,分别最容易翻车在哪里、以及怎么用 `S→R→P→E→V` 把它关进可控流程。可以把它当成一张“按阶段查漏补缺”的对照表。
PART 03
研发全周期:实践问题 × 用法 × 工具能力
提醒:可先按本文的节奏跑通 1–2 次闭环;当你发现某些约束/模板总要重复强调时,可以把它们固化成 `rules` / `skills` ;需要自动化推进时,可以引入自定义 `agent` (比如 `AI Document` 、 `AI Coding` 、 `AI Review` 、 `AI Test` 等)。
3.1 需求阶段:从“模糊想法”到“可验收需求”
常见翻车点 :边界不清、口径不一、验收标准不明确
可行的做法 :让 AI 先输出:
对应设计能力(工具侧):规约/Scenario 驱动(把口径写成可验收场景)、提示词预处理/上下文装配(用 `@路径` 一次性补齐关键上下文)。
目标/非目标(Non-goals)
约束与假设(数据、权限、兼容、性能)
可验收场景(WHEN/THEN)
需要澄清的问题清单(尽量一次列全)
3.2 计划阶段:从“要做什么”到“先做哪几个小步”
常见翻车点 :AI 直接开改、范围外扩、改动顺序错误。
可行的做法 :在动手前先把这些写出来:
对应设计能力(工具侧):工作流编排(先 Plan 再 Edit)、影响面发现(全局搜索/调用链/配置关联)、上下文隔离(先调查报告再实施)。
MVP/最小切片
影响面清单(文件/模块/调用链/配置/测试)
依赖关系与执行顺序
3.3 接手/理解阶段:快速建立代码心智模型
常见翻车点 :入口多、核心路径难定位;上下文不足导致 AI 猜架构。
可行的做法 :让 AI 用固定结构输出调查报告:
对应设计能力(工具侧):只读工具链(search/read/grep/glob)、智能路由 + 子智能体调查(复杂问题先出调用链/风险点)。
入口清单
调用链(箭头)
关键数据结构/DTO/错误码
配置开关/中间件/权限
风险点与最小改动路径
3.4 实现阶段:短回路迭代,避免越改越大
常见翻车点 :漏改调用方/类型/配置/导入;长对话导致上下文膨胀而不稳定。
可行的做法 :一次只做一个可验证的小变更,按 S→R→P→E→V 节奏推进。
对应设计能力(工具侧):ReAct/短回路迭代(Reason→Act→Observe)、可控编辑(基于最小 diff 修改)、记忆/摘要(把关键决策沉淀成短上下文)。
3.5 测试与验证:把“凭感觉可以”变成“跑得过”
常见翻车点 :只测 happy path;失败后盲改、缺证据链。
可行的做法 :每条需求至少 1 条场景测试:
对应设计能力(工具侧):Verify 闭环(基于测试/日志输出迭代修复)、shell/CI 输出回注(用真实失败约束推理)、Hooks/门禁(把验证固化成流程)。
成功场景
关键失败/边界场景
并用失败日志闭环:定位 → 解释 → 修复 → 再跑。
3.6 评审协作:降低 PR 审核成本
AI 改完代码后,让它输出 PR 说明模板:
对应设计能力(工具侧):结构化产出(Why/What/Impact/Risk 模板)、规范/清单驱动(评审关注点显式化)、Hooks/CI(把说明与验证结果一起交付)。
Why(为什么改)
What(改了什么)
Impact(影响面)
Risk/Rollback(风险与回滚)
PART 04
两个“合成案例”:用叙事把方法讲清楚
说明:以下为 合成案例 (虚构细节用于说明方法)。
4.1 案例 A:改既有行为——把“改一下返回码”落到语义变更
你将学到 :遇到状态码更改的小需求,别让 AI 直接改代码——先把 语义在哪一层决定 、 影响面有哪些 、 怎么验证不回归 问清楚。
背景 :
接口: `POST /v1/orders/{id}/confirm`
场景:前端弱网/超时会自动重试;用户也可能重复点“确认”
现状:订单已确认时返回 `409 ORDER
ALREADY
CONFIRMED` ,因为前端一般仅判定 200 为正确的状态码,导致
当失败弹红色提示
期望:重复确认也算 幂等成功 (至少不报错,)
首次确认: `200`
重试/重复确认:仍 `200` (返回相同确认结果,或至少返回“已确认”的成功态)
下面这段将“像现场一样”演示如何指挥 AI。
1) Search(只读):先把入口/调用链/错误码地图拉出来
【可复制指令】只读搜索(Search)
- 约束:不要修改任何代码,只允许搜索/读取文件
- 请搜索: `ConfirmOrder/confirm` 、 `ORDER
ALREADY
CONFIRMED` 、以及相关路由定义
- 请输出:
- 入口清单(路由/handler/worker/cron)
- 关键调用链:用箭头画出 `handler → service → repo/dao → db/cache`
- 每一条都必须带 `文件路径 + 关键符号(函数/类型)`
- 注意:不要猜库/框架;不确定就标注“待确认”,并指出还需要读哪个文件
这一轮的目标很简单:先把“入口地图”摊开,避免我凭印象去改错层。
2) Read(只读):确认“返回码/错误语义到底在哪一层决定”
【可复制指令】只读阅读(Read)
- 约束:只读(不改代码)
- 请定位: `409` 是在哪一层/哪一段代码映射出来的(指到具体文件与分支)
- 请回答:
- `handler` 如何把业务错误映射成 HTTP 状态码?
- `service` 判断“已确认”的分支在哪里?返回的错误类型/错误码是什么?
- 输出要求:列出关键分支的判断条件(例如 `status == CONFIRMED` )以及对应返回值
很多项目里是 `service` 决定语义(成功/失败/幂等), `handler` 只做封装;如果不先读清楚,就会出现“表面 `200` ,底下仍然拒绝/仍然打错误埋点”的坑。
3) Plan:先让 AI 写最小切片(含影响面和验证),再允许它动手
【可复制指令】计划闸门(Plan,先写方案不许开改)
- 约束:在给出方案前不要修改任何代码
- 请输出“最小改动方案”,必须包含:
- ✅ 需要做到:重复确认视为成功;返回体字段(如 `confirmed_at/operator` )稳定
- ❌ 不做:不重构状态机;不引入新依赖;不改无关接口
- 影响面:哪些调用方可能依赖 `409` ?告警/埋点是否基于错误码?
- 文件清单:建议修改哪些文件(尽量 1–3 个文件内收敛)
- 验证方式:需要补哪些测试(至少 1 个成功 + 1 个关键边界/失败)以及运行命令(如 `go test ./...` )
这一步的作用是把“我觉得改一下就行”变成“我知道我改的是哪条契约,并且能证明没回归”。
4) Edit:只在该改的层改,别在 handler 上硬拧
【可复制指令】最小修改约束(Edit)
- 修改原则:把幂等语义落在 `service/领域层` (通常是 `service.Confirm` ),不要在 `handler` 上硬拧返回码
- 行为要求:
- 遇到 `status == CONFIRMED` 时返回成功(满足允许条件时)
- 不允许则仍返回业务错误
- 约束: `handler` 只做参数校验与响应封装;不要顺手重构命名/目录结构
5) Verify:用测试把语义钉死(能跑出来就别靠口头约定)
【可复制指令】测试与验证(Verify)
- 请先给出测试用例清单,再实现:
- `TestConfirm_FirstTimeSuccess`
- `TestConfirm_IdempotentRetry`
- `TestConfirm_ConfirmedButForbidden`
- 最后请给一条可直接运行的验证命令: `go test ./...`
小结(给读者的 takeaway)
:这种“改返回码”常常是 语义变更 。你要做的不是让 AI 快速改,而是让它先交付:入口地图 → 语义所在层 → 影响面 → 最小方案 → 可运行验证。
4.2 案例 B:偶现并发问题——逼 AI 交付证据链,而不是“可能是并发”
你将学到 :并发偶现 bug 最怕“泛建议”。要用模板把 AI 卡死: 假设(含依据/反例)→ 可执行验证 → 最小修复 → 回归点 。
背景 :
消费 `payment.succeeded` 事件:写 DB(订单状态)+ 更新缓存(订单详情)
线上/压测偶现:DB 已经是 `PAID` ,缓存却还是 `UNPAID`
日志(示意):
`update db ok order_id=O123 status=PAID`
`set cache ok order_id=O123 status=UNPAID` (旧值回写进缓存)
1) 先把输出格式卡死:不给证据链就不往下走
【可复制指令】证据链模板(Plan)
- 约束:先不要改代码,只做只读调查 + 给验证计划
- 请输出 3–5 条“根因假设”,按概率排序;每条必须包含:
- 假设(是什么)
- 依据(为什么你这么判断)
- 反例(什么情况下它不成立)
- 如何验证(可执行):要看哪些文件/配置,或要跑什么命令
- 规则:写不出“如何验证”的假设,不要输出
2)
把第一轮验证收敛到两件事:先 `-race` ,再把同 key 的顺序跑出来
【可复制指令】第一轮验证清单(通过人为操作和添加日志,进行 Search/Read)
- 请把“第一轮验证”收敛到两条,并说明各自能排除什么:
1)运行 `go test -race ./...` (先排数据竞争)
2)在“构建缓存值”和“写缓存”附近加日志/trace,打印 `order
id + status + msg
id/trace
id` ,用于判断:是否同一 `order
id` 并发?是否乱序覆盖?
- 同时请定位(只读)消费者的并发模型:多少 goroutine?是否 per-key 有序?ack 策略是什么?
3) 最小修复优先:对准证据,不凭感觉大改
【可复制指令】最小修复候选(Edit)
- 前提:先完成验证并明确指向哪一类根因
- 请给“最小修复”候选,按优先级排序:
- 若证实同一 `order_id` 并发覆盖:对同 key 做串行(per-key mutex / 单飞 / 分区 key 绑定)
- 若证实旧快照/对象复用:缓存值基于 DB 更新后的结果重建,避免共享引用
- 若证实消息乱序:引入版本号/时间戳,写缓存时做“只增不减”或 CAS(避免旧值覆盖新值)
- 约束:不要给“重构整套消费架构”这种大方案
4) 回归点必须写出来:不然下次还会再来一次
【可复制指令】回归点要求(Verify)
- 请明确需要补哪些回归:
- 并发用例:同一订单多事件并发输入,最终缓存与 DB 一致
- 乱序用例:晚到事件不应把新状态覆盖回旧状态
- `-race` 必跑
小结(给读者的 takeaway)
:并发偶现问题别让 AI “猜原因”,要让它“交付证据链”。能跑出来/查出来的,就别靠想象。
PART 05
30 秒自检清单
[ ] 我是否给了足够上下文(入口文件、相关目录、配置)?
[ ] 我是否要求先调查/计划,再实施?
[ ] 我是否把任务切成可验证的小步(最小切片)?
[ ] 我是否明确了验收场景与回归范围?
[ ] 我是否写清验证命令,并愿意跑到通过?
PART 06
AI coding 仍然难在哪(
2026.1
)
按落地影响排序:
上下文获取仍是瓶颈(运行时信息/多服务不在仓库)
可靠性与可复现性不足(同任务多次执行漂移)
影响面易被低估(跨模块与隐式契约遗漏)
调试证据链不强(非确定性/环境差异难闭环)
测试质量与维护成本矛盾(过度 mock、测试脆弱)
工具生态导致成本上升(工具过多影响决策质量)
安全/隐私/合规门槛(上下文注入与执行风险)
组织流程磨合成本(PR/CI/发布不“AI 友好”)
工程知识难长期沉淀(记忆过期/压缩丢细节)
......
PART 07
后记
真正省心的不是“让 AI 写得更快”,而是“让协作过程更可控”。
如果你也在把 AI 用进研发流程里,不妨把下面三个问题当作一次阅读后的自检/反思:
1) 我在用 AI 写代码时,最耗时间的环节是什么?是对齐需求、补上下文,还是验证/回归?
2) 我所在的团队有没有清晰的“闸门”(比如必须先出影响面、必须跑哪些命令)?哪些闸门真正有效?
3) 面对一个改动,我更倾向让 AI 直接开改,还是先做只读调查报告再动手?为什么?
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。
极简linux磁盘管在线扩容空间
Python经典六大算法思想
最新文章
极简linux磁盘管在线扩容空间
试玩了一下Manus 这个AI编程工具
Python全栈开发:必备的8个核心库
最全整理:150个Linux命令手册
Shell编程中diff命令使用详解
Linux KMS 与显示管线详解
Python 必备第三方库,不学亏大!
Windows 里用 Linux 不卡顿?WSL + cpolar让跨系统开发变简单
新人零基础学Python必备知识点!
467期|教师Ai课|Ai编程已经可以生成智能体了
热门文章
Linux Wlan wpa_supplicant 框架梳理
【Mixly编程入门】第9课 Mixly(米思齐)蜂鸣器门铃
Python超实用脚本大全!
Java并发编程:掌握这些线程通信工具,轻松解决复杂并发问题
Python 开发必备:tempfile 模块深度解析
Steam数据更新:Linux游戏份额破纪录
Python | Skyborn | 涌现约束法
【相关分享】PHP反序列化的万字简单总结
一名信息科技教师的 AI 编程探索:从课堂到代码,笔记全分享!
20 条 Linux 命令,搞定 80% 场景
随机文章
10个月宝宝每天需要喝多少奶粉?
可转债网格交易Python实战:手把手教你写出自动化交易代码
Linux 命令大全,运维排障直接抄
观点 | 别高估 AI 编程辅助:它更适配入门者
市场监管总局发布《组织机构统一社会信用代码管理办法》
Python代理转发Gemini/Chatgpt/Claude
【致2025级新同学的一封信】以代码丈量时代·用智创擎动未来
新手也能做小程序?利用AI编程生成一款自己专属的小程序(纯对话式)
linux基础命令给大家整理好了
CNC编程手册及操作指引,涵盖流程,编制,刀具,制模,报价全流程指导(35页)
嵌入式linux打卡第三天
基本
文件
流程
错误
SQL
调试
请求信息 : 2026-02-09 04:06:53 HTTP/2.0 GET : https://f.mffb.com.cn/a/460735.html
运行时间 : 0.409474s [ 吞吐率:2.44req/s ] 内存消耗:4,915.44kb 文件加载:140
缓存信息 : 0 reads,0 writes
会话信息 : SESSION_ID=754d447489879aba598b91d954ca51df
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
/yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
CONNECT:[ UseTime:0.001011s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001639s ]
SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000693s ]
SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000684s ]
SHOW FULL COLUMNS FROM `set` [ RunTime:0.001336s ]
SELECT * FROM `set` [ RunTime:0.002125s ]
SHOW FULL COLUMNS FROM `article` [ RunTime:0.001527s ]
SELECT * FROM `article` WHERE `id` = 460735 LIMIT 1 [ RunTime:0.008837s ]
UPDATE `article` SET `lasttime` = 1770581213 WHERE `id` = 460735 [ RunTime:0.008525s ]
SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.001066s ]
SELECT * FROM `article` WHERE `id` < 460735 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003688s ]
SELECT * FROM `article` WHERE `id` > 460735 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.042278s ]
SELECT * FROM `article` WHERE `id` < 460735 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.063568s ]
SELECT * FROM `article` WHERE `id` < 460735 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.059259s ]
SELECT * FROM `article` WHERE `id` < 460735 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.054179s ]
0.413260s