乐于分享
好东西不私藏

学员作业02|找工作应该背八股,但我打开电脑做了个阅读器

学员作业02|找工作应该背八股,但我打开电脑做了个阅读器

小东

学历背景:南京大学建筑学研究生

写在前面

产品图

这段时间在找工作,于是我的产品【一间属于自己的房间】差不多跑起来了。

很难讲这两件事之间有什么必然联系。按常理说,一个人找工作的时候应该认真投简历、改简历、背八股、练面试,而不是突然打开电脑开始做一个文学阅读器。但人类的行为本来也不太服从常理,尤其是我。越是有正事要做,越容易把别的事情做得飞快。

准确说,代码项目名还叫 woolf-room。这个名字听起来像一个后端仓库,对外我还是想叫它《一间属于自己的房间》。名字有点长,不像一个互联网产品,互联网产品最好两个字,三个字也行,四个字就显得产品经理没有受过 KPI 的毒打。

但我很喜欢这个名字。

它不是一个“帮你三分钟读完名著”的工具,也不是一个“帮你把文学总结成思维导图”的 AI 阅读器。事实上我非常害怕三分钟读完名著这种说法。一个人如果真的三分钟读完了伍尔夫,那他读完的很可能不是伍尔夫,是短视频知识博主的选题文案。

我想做的东西更小一点。

你可以把它理解成一个文学阅读房间:把书放进去,慢慢读。读到不懂的地方,可以问。读到有感触的段落,可以留下。AI 不会跳出来说“亲爱的读者,让我们一起探索意识流的奥秘”,也不会把一整章总结成三个知识点。它最好只是坐在旁边,在你需要的时候说两句,不需要的时候闭嘴。

听起来好像也不复杂。

但这段时间做下来,我最大的感受是:一个 AI 产品从“能回答问题”到“像是真的进入了某个场景”,中间隔着很多细小、琐碎、看起来不值一提,但一旦做不好就会让人立刻想关掉页面的东西。

为什么要做这个项目?

我喜欢读书。

这句话写出来很像简历里的“兴趣爱好”栏,下一句就该写“热爱运动,性格开朗,有团队协作精神”。但事实确实如此——我喜欢读书,尤其喜欢那些有点厚、有点不肯立刻交代自己到底在说什么的书。

喜欢归喜欢,读不下去也是常有的事。

有些书不是不好,而是太远。远在时代,远在某种早已消失的生活秩序。你知道它重要,也知道自己应该读,但读到第三页就开始走神。查一个词,顺手点进百科;看一个背景,顺手点进知乎;再回来的时候,原文已经在屏幕上变成一片静止的黑字,像一个被你辜负的人。

图源网络,但当你打开《疯癫与文明》时,

会真切感受到阅读的痛苦

传统阅读器很安静,安静到近乎冷酷。

它会帮你翻页、做笔记、调字号、切夜间模式,但它不会理会你在某个句子前卡住。它只是一个容器,容器没有安慰你的义务。

AI 工具又太热情。你把一段话丢进去,它很快告诉你这段话体现了作者对于女性处境、社会结构、主体意识和现代性困境的深刻思考。每个词都对,但每句话都像论文摘要。

我不想要一个替我读书的东西。

我想要一个帮我继续读下去的东西。

Woolfroom 一开始想解决的就是这件事:当一个人真的在读一本书的时候,AI 能不能不要站在书外总结它,而是稍微坐近一点,在原文旁边帮他把那条路照亮一点。

只要亮一点,够他继续往前走。

谁该用 Woolfroom?

做了一阵之后,我意识到 Woolfroom 不是给所有读者的。

它不是给那种一年读两百本书、看完还会自动生成读书方法论的人用的。这种人已经不需要产品了,他们本人就是产品,甚至可能还会开知识星球。

它也不是给只想快速获取信息的人用的。快速获取信息有很多工具:搜索引擎、AI 总结、短视频、公众号,都可以。Woolfroom 在这件事上没有优势,也不想有优势。

它更适合三类人:

1.想读经典文本,但总是被卡住的人。

2.不想被 AI 总结毁掉阅读体验的人。

3.想要一个文学搭子,但不想要一个话痨的人。

我希望它像一个比较克制的朋友。你问,它回答。你不问,它别在旁边刷存在感。

它可以提醒你这里有一个时代背景,那里有一个修辞转折,这句话和前面某段有关系。但它不能每隔三行就跳出来说“我发现了一个深刻主题”。

没有必要时时刻刻互动。

我一开始也想做得很大

这是所有个人产品的通病。

一开始只是想做个阅读器,后来很快想到 AI 对话、作者人格、段落社区、个人书架、长期记忆、文学地图、学术推荐、阅读报告、章节测试、知识图谱、会员系统、后台管理、书签功能……

写需求的时候非常快乐。人类在 Notion 里规划未来时,总是显得格外有出息。

第一版只做三件事

第一,读书。

这听起来像废话。一个阅读产品当然要能读书,就像饭店当然要能吃饭。

但真实做起来才知道,越基础的事越不能糊弄。阅读器要能打开正文,章节要能切出来,段落要能稳定显示,阅读进度要能保存——用户下次回来要知道自己读到哪。这些东西没有任何炫技成分,发朋友圈也不会显得很酷,但它们一旦没有,产品就像一个装修很漂亮但没有门的房间。

第二,边读边问。

用户选中一段文字(或者长按),可以唤起 AI 问询面板。

这里不需要 AI 多聪明,重要的是它不能把用户从阅读里拽走。很多 AI 产品一提问就进入另一个巨大的聊天界面,好像用户刚才不是在读书,而是在给客服发工单。我不想这样。我想让提问像是在书页旁边写了一个小问号。问完,答案出来。看完,继续读。不要仪式感太重。

第三,留下痕迹。

真正的阅读经验往往不是“我读完了某本书”,而是“我在某一句话那里停了一下”。

很多年后,你可能不记得整本书讲了什么,但记得某一句话给过你一种非常具体的感觉。就像:“雷亚里奥诺,马孔多在下雨。”它可能没有改变人生,也没有提供方法论,只是让你在某个下午突然沉默了两秒。

我希望 Woolfroom 能保存这两秒。所以笔记、感悟流这些东西,对我来说不是社区功能的装饰,而是这个产品里很重要的一部分。阅读不是只有理解,还有留下。

AI 解释不能太像 AI 解释,伍尔夫人格也不能太像伍尔夫人格

在你读书的时候,作者本人像幽灵一样坐在旁边,听你提问,偶尔回答,偶尔反问——听起来是一件很酷的事情。但古今中外文学大家浩如烟海,真要挨个做成 AI 角色,成本和风险都很高。每个作者的语言、立场、时代背景、思想边界都不一样。如果只是粗暴套一层“某某风格”,很快就会变成文学 cosplay。

所以我决定先从伍尔夫入手。一方面是因为《一间属于自己的房间》本来就是这个产品最初的精神来源;另一方面,伍尔夫很适合成为第一个被产品化的人格:她清醒、锋利、敏感,不是那种温吞的文学导师。她谈女性,谈金钱,谈房间,谈写作,也谈一个人如何从既有秩序里挣脱出来——多么朋克!

但这个想法听起来很好,做起来非常容易翻车。AI 一旦开始扮演文学人物,就很容易变成糟糕的舞台剧演员,每句话都像穿着长裙站在月光下朗诵:“亲爱的读者,你的灵魂正在文字中醒来。”

我写到这里都觉得很恐怖。这不是伍尔夫,这只是 AI 对“文学感”的刻板想象。

所以我后来意识到,伍尔夫人格的重点不是让她每句话都像伍尔夫,而是让她在阅读场景里有稳定的判断和边界。她可以敏锐,可以冷静,可以有一点尖锐的幽默,也可以不那么温柔。但她不是学习搭子,不是情绪客服,不是负责夸用户“你提出了一个非常深刻的问题”的捧哏。

后来我又补了一层搜索工具。

因为用户问的并不总是“这句话什么意思”,也会问作者生平、时代背景、文学流派、历史制度这些外部知识。

这类问题如果只靠模型记忆回答,很容易说得很顺,但不一定可靠。所以我把它拆成两类:文本内的问题尽量贴着原文和上下文回答;文本外的问题调用搜索工具,优先参考权威来源。如果搜不到足够可信的信息,就明确说不确定,而不是让 AI 自信地编下去。

技术栈:别让架构先把人绊住

这次技术选型很务实。

前端是 Next.js 14 + Tailwind + shadcn/ui。

数据库和认证先用 Supabase。

后面围绕着EPUB 解析、章节段落、Embedding、向量检索和 RAG 这些来做问答。

Embedding模型从硅基流动调用API

大概流程是:

·用户上传或选择一本书。

·系统解析章节和段落。

·段落切块,生成 embedding,写入库。

用户选中文本提问时,系统结合当前段落、上下文和检索结果,把证据传给 LLM,再生成回答,尽量短、尽量贴近原文。

我是怎么用 AI coding 把它做出来的?

这次做 Woolfroom,我最大的体感不是“AI 写代码真快”。

当然,它确实快。

但更准确地说,是 AI coding 把开发这件事拆成了两部分:一部分是我必须想清楚的,另一部分是它可以帮我快速实现的。

我一开始也很容易犯错。

比如直接跟 Codex 说:帮我做一个 AI 阅读器。

这句话听起来很明确,其实非常危险。因为“AI 阅读器”四个字里什么都有,书架、阅读器、登录、数据库、AI 问答、笔记、社区、角色人格,甚至还可以长出会员系统和个人中心。

如果我这样下指令,它真的会很努力地做。

但做出来的东西很可能是一个四处都能点、哪里都不深的半成品。

所以后来我换了一种方式。

我先把需求写进 PRD,再把功能按 P0/P1 拆开。P0 只保留第一条核心链路:用户打开书架,进入一本书,阅读,划线提问,获得回答,留下段落感悟。P1 再放引用来源、长期记忆、学术关联、管理员后台、书签体系这些后续能力。

记录每一次bug

壮观的change列表

然后我用 OpenSpec 把每个功能拆成一个更小的 change。

比如“阅读器基础阅读”是一组 change:用户能看到章节正文,段落能稳定展示,页面有基本的阅读布局。

“阅读进度同步”又是一组 change:用户离开页面后,下次回来能回到原来的阅读位置。

“划线/长按唤起 AI 问询”再单独作为一组 change:用户选中文本后能打开问询面板,问题里能带上当前段落和上下文,而不是把 AI 做成一个孤零零的聊天框。

“段落级感悟卡片”也是一组 change:用户读到某一句话时,可以把想法留在这一段附近,而不是另外打开一个和原文无关的笔记系统。

这样拆完之后,Codex 的作用就清楚了。

它不是替我决定产品怎么做。

它是在我已经想清楚边界之后,帮我把一个个 change 落成代码。

我给 Codex 的 prompt 也不是“自由发挥”。

一般会写得很具体:

·这个 change 的目标是什么。

·涉及哪些页面和组件。

·需要新增哪些数据字段。

·哪些交互必须实现。

·哪些功能这次不要做。

·完成后怎么验收。

比如做阅读器时,我不会让它顺手把社区、书签、AI 对话都做完。我会明确告诉它,这次只完成基础阅读和段落渲染,不要扩展无关功能。

这听起来有点啰嗦,但很有必要。

因为 AI coding 最大的问题不是它不会写。

是它太会写了。

你边界没说清楚,它会把“以后可能需要”的东西也写进去。看起来很勤快,实际上是在增加项目复杂度。

一个人做项目,最怕的不是功能少,而是代码库里突然长出很多你还没准备维护的东西。

现在它能做什么?

现在 Woolfroom 已经能跑出一个早期闭环:

·打开书架,进入一本书。

·在阅读器里读,系统自动保存进度。

·读到不懂的地方,划线或长按问 AI,AI 会结合上下文回答,不离开文本乱飞。

·章节结束时可以和伍尔夫聊聊。

·留下段落感悟,把某个停顿存下来。

它离“成熟产品”还差很远。有 bug,有些地方别扭,有些页面还可以再改。但它已经不是一个“我想做一个文学 AI 阅读器”的想法了。它能打开,能阅读,能提问,能回答,能记录,也能在你读不下去的时候轻轻推你一下。对一个个人项目来说,这已经很重要。

下一步我不打算急着把它做成“文学 AI 平台”。

“平台”这两个字听起来很气派,像是产品已经站在时代潮头,下一秒就要发布生态战略。但我对平台一直有点警惕——很多东西一旦自称平台,就会开始长出一些很难解释用途的东西。用户只是想读一页书,产品已经替他准备好了广场、排行榜、成长体系和年度报告。

我暂时不想这样。

下一步最优先的事,其实没那么宏大:AI 回答太慢了。

用户读到一句话,被绊了一下,顺手问一句——这不是提交咨询工单。如果 AI 转半天圈,阅读的气就断了。等待会把人从书里拽出来。

所以先做几件具体的事:

1.回答变短,一句话能说清就别写论文。

2.等待别只转圈,告诉用户“正在查背景”。

3.读到这里 → 被绊住 → 顺手问 → 很快得到有依据的短回答 → 没离开书 → 继续读。

这条链路如果顺了,Woolfroom 就不只是一个会回答问题的 AI 阅读器。它会更像一间真的能坐下来的房间。房间里不只有书,也有笔记,有回声,有对话,有某个下午忽然停住的两秒钟。

如果你愿意试试 Woolfroom,也欢迎把卡住你的地方告诉我。这些具体的小问题,就是这个房间下一次要添的东西。

最后附上产品链接,感兴趣的朋友可以试一试,需要web端科学上网。【Woolfroom】一间属于自己的房间:https://a-room-rbkp.vercel.app/

ReStart

图文来源:小东

文中作品及图片归原作者本人所有

未经授权禁止转载

编辑|约约

审核|UU

 往期文章 

 Team Profile 

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-16 02:55:05 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/752488.html
  2. 运行时间 : 0.340529s [ 吞吐率:2.94req/s ] 内存消耗:4,767.52kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=50a85ed1537d3c24f2a7f7658bcdff94
  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.001074s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001884s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000824s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000682s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001580s ]
  6. SELECT * FROM `set` [ RunTime:0.000599s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001844s ]
  8. SELECT * FROM `article` WHERE `id` = 752488 LIMIT 1 [ RunTime:0.001343s ]
  9. UPDATE `article` SET `lasttime` = 1781549705 WHERE `id` = 752488 [ RunTime:0.047388s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000670s ]
  11. SELECT * FROM `article` WHERE `id` < 752488 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001218s ]
  12. SELECT * FROM `article` WHERE `id` > 752488 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001084s ]
  13. SELECT * FROM `article` WHERE `id` < 752488 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.009164s ]
  14. SELECT * FROM `article` WHERE `id` < 752488 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002006s ]
  15. SELECT * FROM `article` WHERE `id` < 752488 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.035746s ]
0.344437s