乐于分享
好东西不私藏

AI 越强,为什么越不能丢掉工程基本功?

AI 越强,为什么越不能丢掉工程基本功?

Martin Fowler 和 Kent Beck 最新一场对谈,重新讲清了一件事:真正决定你能不能用好 AI 的,不是会不会下提示词,而是有没有判断、验证和重构的基本功。

两个加起来超过 120 岁的程序员坐在台上,底下坐满了 AI 初创公司的创始人和工程师。

主持人开场就喊了句「老古董」。Martin Fowler 没接茬,Kent Beck 倒是秒回了一嘴,「老古董?你才是这屋里最老的那个吧。」

然后这两个人用 30 分钟聊了一些东西,我听完之后觉得,比今年所有 AI 产品发布会加起来都重要。

先说这俩人是谁。

Martin Fowler,写了《重构》,写了 martinfowler.com 上那些影响了一整代程序员的文章。Kent Beck,测试驱动开发(TDD)的推动者,极限编程(XP)的创始人之一。2001 年,他们和另外 15 个人在犹他州签了一份叫「敏捷宣言」的东西,那份宣言几乎定义了后来 20 年软件工程的主流文化。

25 年后他们又坐到了一起。这次不是来怀旧的,是来聊 AI 的。

但他们聊 AI 的方式跟我见过的所有人都不一样。没有人说「颠覆」,没有人说「取代」,没有人在画饼。Kent 用了一个比喻,我听完就忘不掉。

他说,AI 就像你手边有一个法力强大的精灵

精灵。不是工具,不是助手,是精灵。

这个词选得太妙了,因为它同时包了两层意思,一层是能力惊人,另一层是不完全可控。你许了一个愿,精灵帮你实现了,但你怎么知道它实现的是不是你真正想要的?你怎么验证它没有在帮忙的过程中悄悄搞砸了什么?

Kent 说,当你手边有一个法力强大的精灵时,你必须学会验证它到底有没有在帮你做正确的事。

Martin 在旁边补了一句,而这,我们已经练了 25 年了。

我当时听到这儿就停下来了。

他们过去 25 年推的那些东西,测试驱动开发、重构、敏捷宣言,所有这些在很多人眼里「有点老派」的工程习惯,突然在 AI 的语境下变得无比重要。不是因为这些方法本身有多新,而是因为 AI 把「先做出来再判断对不对」的速度拉到了一个前所未有的程度。

你越能快速生成东西,就越需要快速验证东西。

精灵法力越强,你越不能闭着眼睛许愿。

说到这个,我自己的感受特别强烈,过去三年观念已经被大模型的进化推着变了好几轮了。

23 到 24 年的时候,ChatGPT 于我就是一个代码片段生成器。复制一段小需求给它让它吐个片段出来,那时候主力开发工具还是 VSCode、GoLand、IntelliJ IDEA。说实话那个阶段我还是相信自己的,觉得 AI 读不懂我的代码仓库,只能小小地提效。

到了 24 年底 25 年上半年,我开始戏称自己是「Tab 工程师」了。把 Cline 集成到 VSCode 里,根据需要换不同的模型,AI 已经能给我很明显的提效而且不打断节奏。

再到 25 年下半年一直到现在。。。这一轮变化是最猛的。

大模型能力进一步爆发,我先试了 Trae、Qoder、Cursor 这些 IDE,然后进一步切到 Claude Code、Codex、OpenCode 这些 CLI 工具。IDE 反而退化了,Terminal 工具从陪伴我近十年的 iTerm2 切到了 Ghostty、Kaku、cmux,一直在折腾更高效的方案。集成了 Superpower 这样的插件之后配合 TDD,输出质量也很有保障。

短短两三年,几乎把开发工具链翻了个遍。

但你看,就算翻了这么多遍,最后真正让我觉得「输出质量有保障」的东西是什么?

是 TDD。是 Kent Beck 二十多年前推的那套方法。

精灵在变,但验证精灵的方式没变。

Martin 自己也聊到了类似的过程。他说最早接触 AI 编程工具的时候体验很差,用了几天就想放弃。如果那时候直接盖棺定论说「这东西不过如此」,他很可能就会像看待区块链一样,永远把 AI 划进「不值得理会」那一档。

但他没有。他说自己对技术的怀疑是有根基的,因为见过太多狗皮膏药在这个行业横行。但正因如此,他的怀疑必须是彻底的,彻底到他甚至要怀疑自己的怀疑。

这话听着有点绕,但我觉得他说的是事实。

Kent 把这件事压缩成了一句更干脆的话,你能做的最小实验是什么?

不是去找一个确定的结论,而是去做一个最小的实验来验证自己的判断。这个能力在过去一年价值暴涨了一千倍。Kent 说得很实在,他自己用 Gemini 试某件事,这周惨败,下周换 Claude Code 又顺了,再过一阵不行了,再回去试 Gemini 反而又好使了。

大家都想要一个确定的答案。

但答案本身在变。

坏消息是这样。好消息是,别人也没有答案。所以大家在智识上其实站在同一条起跑线上。Kent 当时笑着问了台下一句,「这能让你们安心吗?」台下笑了,但没几个人举手。

反正我是安心不了。但我倒是觉得这种「大家一起摸着石头过河」的状态比「只有我不知道」要好受得多。

顺着这个再往下聊,对谈里还有一个话题让我特别有感触。他们讨论了「一个人带着很多智能体干活到底算不算在管理一个团队」。

Kent 一秒没犹豫就回了一个字。

不算。

他说现在很多人会说「我是个程序员,我有六个 AI 智能体,所以我其实在管一个团队」。他觉得这更像是在同时使用六个工具,而不是真正的团队协作。因为真正的团队不只是任务拆分和结果汇总,还包括人与人之间的分歧、理解偏差、协商、互相修正,以及在不确定的环境下一起形成共同判断。

AI 确实可能让团队变小,但不代表团队的问题会自动消失。

然后 Martin 说了一句让我印象极深的话。

他说每次新模型发布速度又快了一截,他的第一反应居然是「留给我们聊天的时间又少了」

以前丢出一个提示词,模型三分钟没回来,这段时间两个人可以讨论命名,可以争论边界,可以交换理解。但如果 15 秒就回来了,那段对话根本来不及发生

想想还真是挺感慨的。

很多人把 AI 想成「更快完成任务」的装置,我完全理解这种想法,毕竟提效是最直观的好处。但软件开发从来不只是把任务做完。很多真正重要的东西,恰恰诞生在两个人讨论命名、争论边界、交换理解的那些看似低效的时刻。

如果未来一切都只追求「更快出结果」,我们也许会意外失去一些原本最有价值的部分。

说到这个,最近团队就出了一件事让我挺感慨的。

我们在 Gitlab 加了一个 Hook,有 MR 的时候会自动跑 Code Review 并发送结果。有个同学的 MR 被 Review Agent 揪出了好几个高危问题,但这哥们因为太依赖本地的 AI 了,改了三次 Commit 才把问题彻底修掉。

我当时看到那个 Review 结果。。。怎么说呢,现在有了 Opus 4.6、GPT-5.4 这些大杀器之后,团队里确实有小伙伴出现了代码能力退化的苗头。AI 越来越强,怎么让它不仅提效还提质,这个问题比我想象的更紧迫。

这不就是 Kent 说的那个事吗。精灵法力越大,你越需要一套可靠的方式来验证它做对了没有。我们团队那个 Code Review Hook 说到底就是一种验证机制,但如果写代码的人本身已经丧失了判断代码好不好的能力,那验证机制再多也只是在善后,不是在防御

你得先有判断力,验证机制才有意义。

这里我突然想到一个老故事,歌德写过一首叙事诗叫《魔法师的学徒》,后来迪士尼拍成了《幻想曲》里最经典米老鼠戴着巫师帽的那段。故事讲的是一个学徒趁师父不在,偷学了一句咒语,让扫帚替自己打水。扫帚确实动起来了,效率极高。但学徒不知道怎么让它停下来。水越打越多,淹了整个屋子。学徒慌了,把扫帚砍成两半,结果变成两把扫帚,打水速度直接翻倍。

最后是师父回来,一句话收了场。

这个故事两百多年了还有人在讲,因为它讲的不是「工具危不危险」,而是「你有没有能力验证工具在做正确的事,以及在它做错的时候叫停它」。

Kent Beck 的「精灵」和歌德的「扫帚」在说同一件事。

精灵越强大,师父的判断力就越重要。而我们现在的处境是,精灵已经在了,但很多人还在用学徒的心态对待它,觉得只要会念咒语就够了。

但知道怎么验证还不是最难的。对谈最后 Kent 聊到了一个更扎心的问题,如果我越来越少亲手写每一行代码,那我的手艺还剩下什么?

Kent 的回答带着一点不舍。

他说过去那种把一个函数、一段代码、一组结构慢慢打磨到漂亮、精确、顺手的满足感,正在失去中心位置。他说他很享受那种进入心流的感觉,打开一个文件,一团乱,你小心翼翼地一步一步动,也不知道往哪走,然后慢慢有了一点感觉,越来越清晰,「砰」的一下全通了。

但现在他做不到了。

这段话我反复听了好几遍。因为我自己也有过那种感觉。

以前代码写着写着突然「通了」的那一刻,成就感十足,恨不得直接抓旁边兄弟问我牛不牛,那种满足感是实打实的。

Kent 说他需要把注意力转移了。不是不再写代码,而是不再把打磨代码本身当作最大的杠杆。他现在更愿意去理解业务领域,理解问题本身,理解程序和现实世界之间的连接。

Martin 也有类似的观察。他说有同事在和智能体协作时会刻意发展一套更精确的业务语言,用来描述领域概念、约束和边界。听起来挺新的,但说到底还是老问题,你是不是足够理解你正在处理的业务?你是不是能把这种理解表达清楚?

我一直觉得这可能正是 AI 时代最重要的转移。工程师不会因为不再亲手敲下每一个字符就失去价值,但价值的重心在转移。你能不能提出更好的问题,你能不能看穿一个看似合理的结果其实哪里不对,你能不能把复杂问题拆成清晰的结构。

坦率的讲,这些能力以前也重要,只是以前很多人没那么在意。现在不在意不行了。

今天从书架上拿下了那本《重构》。

第二版,用 JavaScript 写的这版,封面上已经积了灰。我自从转去写 Java 和 Go 之后就再没翻过它了。但听完这场对谈,突然觉得也许该重新翻翻。

不是因为里面的 JS 代码还有用,而是那些关于「怎么判断代码好不好」「怎么验证改动对不对」的思考方式,到了今天反而比任何时候都更重要。

精灵法力越大,你越需要知道怎么验证愿望有没有被正确实现。

这不是什么新道理。25 年前 Kent Beck 和 Martin Fowler 就在讲。只不过那时候面对的是人写的代码,现在面对的是精灵写的代码。

工具在变。验证的能力不能变。

大时代啊,朋友们。

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。

原视频详见油管 https://www.youtube.com/watch?v=CZs8J1ZD0CE

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-13 14:18:11 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/518315.html
  2. 运行时间 : 0.102956s [ 吞吐率:9.71req/s ] 内存消耗:4,692.81kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=057ed4e4d9f4feeaecf198e7ef748649
  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.000656s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000901s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000329s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000308s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000685s ]
  6. SELECT * FROM `set` [ RunTime:0.000227s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000670s ]
  8. SELECT * FROM `article` WHERE `id` = 518315 LIMIT 1 [ RunTime:0.000411s ]
  9. UPDATE `article` SET `lasttime` = 1776061091 WHERE `id` = 518315 [ RunTime:0.005481s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.004019s ]
  11. SELECT * FROM `article` WHERE `id` < 518315 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000615s ]
  12. SELECT * FROM `article` WHERE `id` > 518315 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000395s ]
  13. SELECT * FROM `article` WHERE `id` < 518315 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001107s ]
  14. SELECT * FROM `article` WHERE `id` < 518315 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001027s ]
  15. SELECT * FROM `article` WHERE `id` < 518315 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003911s ]
0.104764s