- 博客(116)
- 收藏
- 关注
原创 从“加个缓存”到稳定上线:把 Redis 放回真实业务里
下午四点,运营同事在群里发来一条消息:“晚上有场活动,首页会推这几件商品,接口能不能再快一点?假设你负责这个商品系统。打开监控,发现详情接口确实有些吃力:查商品、查店铺、拼装展示信息。同一只马克杯被反复浏览,数据库和应用也跟着重复劳动。这时,很容易有人提出:“加个 Redis 吧。把结果存进去,再写一段读取逻辑,看起来并不复杂。但接下来的需求通常不会停在这里:价格改了,页面要及时更新;商品火了,缓存不能突然失效;活动结束了,数据要清理;服务重启了,关键状态还得找得回来。
2026-10-24 03:33:44
202
原创 Agent记忆到底应该怎么实现? 一篇文章带你读懂记忆实现 !
LLM(大语言模型) 是Agent的大脑, 它是一个非常聪明的天才, 但是它没有记忆, 你问了它上一句, 回复之后都忘掉了, 鱼的记忆有7秒, 但是大语言模型的记忆只有0.0001秒…
2026-06-12 20:19:00
294
12
原创 CommonJS和ES Module
CommonJS是一种早期的 JavaScript 模块规范,在 Node.js 里非常常见。ES Module,也叫ESM,是 JavaScript 官方标准的模块化方案。
2026-05-23 17:09:43
984
15
原创 如何用AI写代码? vibe coding
vibe coding 不是“让 AI 替我写代码”这么简单。更准确地说,它是一种新的软件生产方式:人把意图、约束、上下文、验收标准和工程判断交给 AI,AI 把这些东西转化成原型、代码、文档、测试和可运行系统。它降低了从想法到代码的门槛,也放大了每一个模糊需求、错误假设和缺失测试。所以我对 vibe coding 的理解不是“更随意地写代码”,而是“更严肃地表达需求”。过去工程师的主要成本在写代码,现在主要成本开始转移到:定义问题、拆解模块、写清约束、审查结果、建立测试、处理联调、沉淀规则、持续迭代。
2026-05-17 18:20:46
4064
16
原创 RAG文档解析 - pypdf、LlamaParse、DeepDoc、SimpleDirectoryReader到底怎么选?
最近做 RAG 项目时,很多人第一步就卡在“文档解析”上。表面看,好像都是把 PDF 里的内容读出来,但不知道要如何选择LlamaParseDeepDoc。
2026-05-10 17:53:18
706
14
原创 带你深入了解Transformer架构
很多人都知道不少模型的底层都是使用的transformer架构实现的, 但是却不懂得transformer架构到底是什么, 那么这篇文章我就带你了解transfermer架构到底是什么, 他给了模型什么支撑?他出现的意义和这个架构到底是如何实现的?注: 大家要是想深入了解可以看看transfermer的论文。
2026-05-03 20:43:24
720
10
原创 大厂高频手写题
最近面试, 投了字节, 结果人家找我约面了, 面试过程中感觉还是比较良好的, 但是最后没过, 反思了一下自己…手写体写的时间太久了, 写的久算了, 最后一道题也没写出来完, 所以整理一些题目给大家做个参考(有一面的也有二面的), 如果大家有入大厂的打算, 一定要在平时注重算法和手写题的积累…答案放最下面了, 不是没写哦。
2026-04-25 21:13:52
1448
14
原创 从 Function Call 到渐进式 Skill:大模型能力扩展范式的演进与落地实践
这让 SKILL.md 保持静态文件的优点,同时具备一定的动态能力。这种三层结构让一个 Agent 可以"知道自己有 100 项能力,但只带一项能力的重量"。只把识别能力所需的最小元数据放进上下文,真正的指令体和资源在被触发时才按需加载。这意味着一个技能失控不会把别的技能拖下水,也不会让别的技能的硬规则被泛化进来。它们解决的是同一个问题——如何让模型调用外部世界——但思路截然不同。)是元数据契约,后面的正文是喂给 LLM 的指令体。MCP 解决了"工具从哪来",但没解决"工具太多怎么办"。
2026-04-19 19:58:44
732
12
原创 带你深入了解虚拟DOM和Diff算法
虚拟 DOM 本质上是一个普通的 JavaScript 对象(普通 Object),它通过属性(如标签名、属性、子节点等)来描述真实 DOM 树的结构。在像 React 或 Vue 这样的现代前端框架中,当组件的状态发生变化时,框架不会立即去操作浏览器的真实 DOM,而是先在内存中生成一棵新的虚拟 DOM 树。然后,框架会使用 Diff 算法将这棵新树与旧的虚拟 DOM 树进行对比,计算出最小的差异(Patch),最后将这些差异一次性、批量地更新到真实的 DOM 上。
2026-04-12 11:52:46
624
8
原创 嵌入式 AI 助手的三层意图识别架构:如何在“快、准、稳“之间取得平衡
比如"当前页面:项目详情,当前已选中任务,触发来源:任务抽屉"。注意这里。
2026-04-05 17:37:54
767
11
原创 从输入 URL 到页面展示的完整过程
导航与渲染并非线性过程,而是高度并发且相互依赖的。减少网络往返(利用 HSTS、HTTP/3、CDN)。优化关键渲染路径(减少阻塞 CSS、合理使用deferasync减轻主线程负担(利用合成层、避免强制同步布局、使用 Web Workers)。掌握这一全流程,便能从底层逻辑上理解 Web 应用的运行本质。
2026-03-29 17:43:39
563
5
原创 别把所有上下文都喂给 LLM —— Agent 架构中踩过的坑与三层上下文裁剪模式
文章摘要:本文探讨了AI智能助手在项目管理系统中面临的上下文管理挑战。作者通过四种架构模式的演进(ReAct、Plan-Execute、Router分发、三层上下文裁剪),揭示了Agent系统设计的核心痛点:不是模型能力或prompt优化,而是如何精准控制上下文信息的流动。最终提出的"三层上下文裁剪"方案,通过区分路由层、执行层和工具层的信息需求,既保证了功能完整性,又避免了不必要的信息泄露和token浪费。文章特别强调:确定性workflow优先于LLM自主决策,不同处理环节需要差异化
2026-03-22 17:20:29
921
13
原创 从 ReAct 到 Plan-and-Execute:AI Agent 推理架构的理解与选择
最近在做一个企业办公 Agent 项目,过程中花了不少时间研究 Agent 的推理架构该怎么选。市面上最主流的两种模式——ReAct 和 Plan-and-Execute——看起来都能用,但深入了解后我发现它们的设计哲学完全不同,适用场景也差异很大。
2026-03-15 18:03:08
1299
14
原创 如何在项目中减少 XSS 攻击
XSS 防御不难,难的是养成习惯。每次写v-html的时候多想一秒 “这个数据可信吗”,大部分问题就不会出现。永远不要信任外部输入,哪怕它来自你自己的后端。
2026-03-08 09:36:22
858
13
原创 带你深入了解Agent是如何工作的
这是面试中经常会被问到的问题——“你说你做 Agent,那什么是 Agent?” 很少有人能回答得明白。Agent =LLM工具调用规划能力记忆管理。它不再是一个只能"一问一答"的聊天机器人,而是能够 端到端地帮助人完成一个复杂任务的智能体。
2026-03-01 19:59:56
1239
11
原创 虚拟滚动列表
先假设所有项都是 50px,等节点真实渲染到页面上后,利用 ResizeObserver 或者 getBoundingClientRect 获取它的真实高度,然后更新到一个专门记录高度的数组里,再重新计算偏移。如果你截取出来的那 10 条数据里,包含了极度复杂的图表(Echarts)或者大量的图片,在快速滚动时疯狂销毁和重建这些复杂组件,依然会导致明显的卡顿。有虚拟滚动的列表 = 探照灯(滑动窗口),数据是一个长长的黑屋子,屏幕就是探照灯,灯照到哪(滑到哪),我们就只渲染哪里的十几条数据。
2026-02-21 23:13:34
1108
6
原创 程序员的 RAG 入门指南:让大模型拥有自己的知识库
RAG 全称 Retrieval-Augmented Generation,也就是检索增强生成。简单来说,RAG 就是给大模型配了一个外挂知识库。模型自己不知道的东西,先去知识库里面翻一翻,找到相关的资料,然后再基于这些资料来回答你的问题。我们都知道 LLM(大语言模型)是有局限的,它的底层是 Transformer 架构,本质上是一个"文字接龙"游戏 —— 根据前面的文字预测后面最可能出现的文字。这就导致一个问题:当模型遇到自己不懂的东西时,它不会说"我不知道",而是会一本正经地胡说八道。
2026-02-15 23:25:26
871
6
原创 Vue3+Node.js实现文件上传分片上传和断点续传【详细教程】
上一篇我们实现了并发控制和安全防线,解决了多文件上传的问题。但如果面试官继续追问:"如果用户要上传一个 2GB 的视频文件怎么办?"或者"上传到一半网络断了,用户需要从头开始吗?"这就需要分片上传和断点续传了。传统的文件上传是将整个文件一次性发送到服务器,这对于大文件来说有几个致命问题:分片上传的核心思路是:将大文件切成小块(如 2MB),逐个上传,最后在服务器端合并。1.2 断点续传 - 网络中断恢复断点续传的原理很简单:上传前先问服务器"你已经收到了哪些分片?",然后只上传缺失的部分。1.3文件哈
2026-02-01 22:31:24
902
18
原创 Vue3+Node.js实现文件上传并发控制与安全防线 进阶篇
上一篇我们实现了最基础的 FormData 上传,体会了前后端的基础联调。但如果在面试中被问到:“如果用户上传了一个 10GB 的文件怎么办?”或者“用户同时选了 100 张图片,浏览器卡死怎么办?”这就需要用到进度监听、双端校验与并发控制。
2026-01-25 15:09:21
951
9
原创 如何基于 RAG 技术,搭建一个专属的智能 Agent 平台
最近这段时间,我把精力主要集中在了一个新项目上——CreatChat。这是一个基于 RAG 架构的智能 Agent 平台。在介绍项目之前,我想先聊聊为什么我要做这件事,以及在这个过程中,RAG(检索增强生成)到底扮演了什么角色。RAG 的出现,就是为了解决这“最后一公里”的问题。它的逻辑其实非常直接:在把问题抛给大模型之前,先去一个外部的“知识库”里检索相关信息。系统把检索到的真实数据(Context)和用户的问题拼在一起,再交给大模型。
2026-01-10 15:25:23
532
10
原创 如何实现SSE流式输出前端-简单实现知识库agent模型, 让你深入了解SSE到底是什么
对接收到的数据块进行清洗定位和分发1. 清洗: 寻找有效数据行SSE 协议规定,一次完整的数据推送(Event)可能包含多行(如。
2026-01-03 21:56:39
1846
17
原创 为什么你的手势签到连线这么慢? 如何提升速度?
--> 使用canvas来画圆和线(这样的话就会导致绘画的时候每一个移动的节点都会导致清空画布再重新画圆, 这样就会导致速度变的很慢, 而且圆本身是不会有变化的, 所以这一步是完全不必要使用canvas来进行绘画的, 所以我们现在使用html+css来绘画)gesture-box就是包裹白色部分的一个盒子, 然后里面渲染了9个圆点, 如果这个盒子的宽高都是300, 那么每个圆点都占用100*100, 并且居中。讲解这个实现之前, 我简单描述一下为什么上一个实现的连线为什么这么慢?
2025-12-22 15:50:22
434
10
原创 为什么在 Vue 3 中 uni.createCanvasContext 画不出canvas?
为了实现组件化隔离,Vue 3 对组件内部的 DOM 节点进行了封装。
2025-12-21 17:34:28
1021
13
原创 初步了解Next.js
Next.js是React的一个超集框架,为什么会有Next.js这个框架存在呢,因为它可以解决React的痛点,就是客户端渲染Next.js的一大亮点就是支持多模式混合渲染,分别有四种模式,CSR,SSR,SSG,ISR,然后我开介绍一下这四种模式是什么以及他们分别是如何渲染的。
2025-12-14 21:04:58
559
10
原创 《从零开始:打造“核桃苑”新中式风格小程序UI —— 设计思路与代码实现》
当下AI盛行,使用AI来完成项目事半功倍,当你遇到一个简单的pdf文字需求时, 如何讲文字设计的有感觉?今天我将详细讲解一下UI实现从0->1的过程核桃苑UI设计图-小程序端核桃苑小程序的UI设计图是通过HTML+JS实现的, 可以实现比较复杂的交互效果,体验感也是杠杠滴这个pdf需求文件就不给大家看了, 总之非常简洁~模型大家使用自己喜欢的,Claude, Gemini, GPT都可,AI是哪个不重要, 要看使用它的人, 当然还是推荐大家使用当下比较流行的AI,大家千万不要小看UI设计哦。
2025-12-07 18:10:10
583
15
原创 为什么我不能直接双击打开 HTML?——前端视角的 Localhost 揭秘
特性file:// (双击打开)根目录 (/) 指向电脑磁盘根目录 (如 C:)你的项目文件夹被浏览器拦截 (CORS)正常工作ES Modules无法加载正常加载适用场景仅用于查看纯文本/简单 Demo必须用于正式开发。
2025-11-30 18:04:54
2199
23
原创 常考链表合集【入门】
题目要求我们最终返回一个被反转的链表,以上面的实例为例, 我们是要返回节点5当做头节点的,但是在我们遍历的时候不知道链表的长度,等我们循环结束跳出的时候,cur和next都变成了null, 也就是5的下一个null节点, 所以我们需要一个pre节点来存储我们当前节点的上一个节点, 最终返回它。因为链表的递归节点一般都是.next进行参数传入, 所以当当前节点的下一个节点不为空时(判断当前节点的下一个节点, 实现要判断当前节点是否为空, 否者代码会报错),我们再进行反转。递归的终止条件是什么。
2025-11-23 17:34:48
698
21
原创 无重复字符的最长子串, 小白也能看懂
因为这个方法对于寻找元素非常友好, 通过map.get()可以获取到键对应的值, 通过map.has()可以判断该键是否存在。通过两个指针 left right, left表示左边界, right表示右边界。2. 当我们遇到窗口中已经有的字符, 左窗口跳到该字符的下一个字符。, 我们来看看窗口是如何滑动的(红色的方框表示我们的滑动窗口)首先我们需要将遍历过的字符存到一个数组里面, 这里我推荐使用。看起来这个滑动还挺简单的, 但是到底是如何用代码实现呢?到这里大家应该有思路了, 直接去实现吧~
2025-11-09 17:13:54
439
16
原创 节流防抖你究竟了解多少?
本篇文章我主要讲解的是节流防抖用来做什么的?对于处理高频触发事件, 比如窗口的 “resize”, “scroll”, "input"事件等,如果不加以限制, 这些事件可能会以极高频率进行, 如果回调函数内部的逻辑很复杂, 就会导致页面卡顿, 性能下降。
2025-11-02 18:48:07
915
22
原创 深拷贝浅拷贝
浅拷贝不存在于基本数据类型当中, 只存在于引用数据类型中对于基本类型而言: 如StringNumberBooleannullundefinedSymbolBigInt。这些值存储在栈内存中。当你把一个基本类型的值赋给另一个变量时,你是在复制这个值。let a = 10;let b = a;// 赋值a的值b = 20;// 10 (a 不受影响)对于引用类型而言 : 主要是Object,包括ArrayFunctionDateRegExp(正则) 等。
2025-10-26 17:51:54
1097
24
原创 如何学习Lodash源码?
任意一名工程师都需要有读源码的经历,源码就是代码中最底层的实现逻辑,深入学习源码有利于提高我们的代码思维和实现复杂场景解决问题的能力,如果你是小白,那和我一起来探索源码的世界吧,今天要分享的是学习过程中的一些感受和心得–Lodash源码。
2025-10-19 18:11:12
1069
29
原创 深入理解HTTP协议的本质
移动网络的频繁切换和丢包对TCP是致命的,但对QUIC影响很小。HTTP/2在单一TCP连接上实现了真正的并行传输,这种抽象能力的提升是协议设计的巨大进步。在实践中,HTTP/2的连接复用和小资源并行加载带来了显著的性能提升。这种设计在网页简单时是合理的,但随着网页复杂度增加,性能问题凸显。HTTP延续了TCP/IP的分层哲学,每一层都有明确的职责。很多人对HTTP的无状态性嗤之以鼻,认为这是协议的重大缺陷。这就像优秀的组织架构,前端专注于用户体验,后端专注于业务逻辑,数据库专注于数据一致性。
2025-10-12 18:55:38
891
17
原创 一套完整的前端“白屏”问题分析与解决方案(性能优化)
本文将带你深入浏览器的渲染世界,系统性地剖析页面白屏与卡顿的根源,并提供一套从网络、代码到体验的全方位优化“组合拳”,助你打造极致流畅的应用。在解决问题前,我们必须理解当我们在浏览器输入URL并回车后,究竟发生了什么。: 从第1步到第6步之间,任何一个环节被严重阻塞,屏幕上就画不出任何东西。优化不是盲目的,你需要数据来指引方向和验证成果。性能不仅是秒表上的数字,更是用户的心理感受。: 页面内容已出现,但无法交互。绘制 (Paint)
2025-10-05 18:10:37
2485
19
原创 JavaScript继承详讲
在JavaScript中,继承是非常核心重要的,今天我要和大家分享一下JavaScript中的继承都有那些,以及对应的一些优缺点。
2025-09-28 13:54:36
1038
20
原创 JavaScript对象创建方式完全指南:从原始到现代的演进之路
作为一名前端开发者,JavaScript中对象创建是很重要。在JavaScript这门基于原型的语言中,对象几乎无处不在。今天,我将带领大家回顾JavaScript对象创建的7种方式,从最原始的字面量到现代的ES6 class,每一步演进都解决了前一步的痛点,这就像是JavaScript语言设计的进化史。创建方式代码复用类型识别内存效率参数传递继承支持语法复杂度适用场景对象字面量✗✗✓✗✗简单创建单个对象工厂模式✓✗✗✓✗简单批量创建相似对象构造函数✓✓。
2025-09-14 18:03:27
1316
21
原创 从零构建WebSocket实时聊天室: 原理剖析与代码实战
作为一名前端工程师,实时通信是我们必须掌握的核心技术之一。今天,我将通过一个完整的聊天室项目,带大家深入理解WebSocket的工作原理,并手把手教大家如何构建一个功能完善的实时聊天应用。
2025-09-07 18:31:38
1260
21
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅