- 博客(369)
- 资源 (2)
- 收藏
- 关注
原创 5年前端仔的2023年终总结
我呢,万千搬砖人之一,目前就职福报厂某团队,最近一年负责小团队内大概十几个系统的中后台技术体系的设计及业务研发,偶尔团队人手不足客串支撑一下c端的业务,作为老油条“带一带”团队的新同学和实习生,偶尔客串一下横向大团队的问题排查工,最近深耕可视化搭建平台的建设。
2024-02-06 20:50:56
1371
原创 知识库索引召回、上下文消费与增量更新设计
不要只做向量索引,要支持向量、关键词 / grep、结构化元数据和规则的混合召回。不要默认根据召回 chunk 的文档路径读取整篇文档,应优先消费召回知识块,必要时再按doc_idspan局部扩展。不要把 grep 和 RAG 对立起来,grep 是精确召回能力,向量是语义召回能力,二者应统一融合。不要把更新做成每次全量重建,应基于doc_hash和做增量重切。不要只用快照 list 表达所有演进关系,快照记录同一 chunk 历史,supersedes表达不同 chunk 之间的替代。
2026-07-16 14:37:23
173
原创 知识库文档切割与知识块生成设计
不要优先按长度切,而要按知识点切。不要默认生成所有粗切层级,是基础结构,和windows应按需启用。不要把整篇文档编码粗切后的所有内容一次性提供给 LLM,应按 section / window / batch 分批处理,并携带必要的全局上下文。不要让 LLM 独立负责全部切割,要用规则和校验兜底。不要让 LLM 自由改写知识内容,应保留,并只生成受约束、可回源校验的。不要强制所有知识都有module,更通用的方式是domain必填、subdomain推荐、module可选。
2026-07-16 11:49:40
235
原创 Redis 部署模式与 Cluster 分片
Redis 不一定只有一个实例。生产环境常用主从、Sentinel 或 Cluster。Cluster 模式下,不同 Master 存储不同分片数据,每个 Master 的 Replica 存对应副本;如果需要执行MGETMSET等多 key 操作,可以用 Hash Tag 让同一业务实体下的一组 key 落到同一个 slot,但要避免过度集中造成热点。
2026-07-15 15:09:37
206
原创 Redis 分布式锁与任务状态
Redis 能做分布式锁,是因为它支持共享访问、原子写入和 TTL。但分布式锁只解决“谁现在执行”,不能表示“后续更新已经处理”;如果锁期间同一数据又有新更新,应通过 pending/dirty、MQ 或状态机记录下来,并在当前任务完成后基于最新数据补跑或重新调度。
2026-07-15 14:55:03
146
原创 Redis 缓存与 MySQL 职责分离
Redis 内存不够时,不是把 MySQL 当 Redis 的 Swap,而是重新设计数据分层:MySQL 存全量持久化数据,Redis 只存热点缓存,并通过 TTL、淘汰策略、缓存未命中回源 MySQL 来控制内存。
2026-07-15 14:16:38
237
原创 Redis 基础与核心定位
Redis 是一个高性能内存数据系统,不只是缓存。它通过 String、Hash、Set、Sorted Set、Stream 等数据结构,支持缓存、计数、锁、排行榜、队列和实时状态等多种高频场景。
2026-07-15 14:14:34
304
原创 Redis 内存管理与持久化
Redis 运行时数据主要在内存中,持久化只是为了恢复,不是内存扩展。Redis 内存不够时,应通过 TTL、maxmemory、淘汰策略、数据结构优化、冷热分层和 Cluster 扩容解决,而不是依赖 Swap 或把 MySQL 当成 Redis 的扩展内存。
2026-07-15 14:12:59
182
原创 归一化与点积在 Embedding 中的作用
操作作用解决的问题归一化把向量统一缩放为单位长度,只保留方向信息消除向量长度差异对相似度判断的干扰点积计算两个向量对应分量乘积之和提供衡量向量方向接近程度的数值归一化 + 点积点积结果直接等价于 cosine 相似度省去模长计算和除法,简化相似度计算流程归一化让向量只保留方向、去掉长度差异;点积衡量两个向量方向的接近程度;当写入和查询的向量都提前归一化后,点积的计算结果就直接是 cosine 相似度,这也是长期记忆向量检索里判断"语义是否相关"最核心、最基础的数学工具。
2026-07-13 17:34:35
337
原创 Agent长期记忆点生成机制
上下文对话↓识别候选信息↓判断长期价值↓压缩成独立知识点↓结构化为 Memory Object↓去重 / 合并 / 更新↓写入主存储并生成多种索引最终目标是:将连续对话中的用户偏好、项目规则、技术决策、常见坑点和纠正信息,沉淀成稳定、可复用、可检索、可独立理解的长期记忆点。
2026-07-10 17:00:50
308
原创 Agent长期记忆实现原理
short_content:用于 rerankfull_content:最终入上下文时使用命中后再取完整内容。长期记忆 = 独立知识点集合每个知识点 = canonical 原文 + 元数据 + 多种派生索引关键词/全文索引层 = 基于倒排索引实现关键词/全文检索读模型,OpenSearch 是一种实现示例;一致性可靠时可直接返回内容向量库 = 语义召回能力混合召回 = 向量 RAG + 关键词 grep + 结构化过滤 + 规则命中 + rerank。
2026-07-10 15:34:24
306
原创 JSON-RPC协议
JSON-RPC 是一种轻量级的远程过程调用(RPC)协议,用 JSON 作为数据编码格式。它的核心思想很简单:让客户端可以像调用本地函数一样调用远程服务器上的方法,而消息载荷是一段结构化的 JSON。
2026-06-15 19:10:54
431
原创 Agent之ReAct
ReAct框架:大模型的思考与行动闭环 ReAct(Reasoning+Acting)是一种让大模型通过"思考-行动-观察"循环解决复杂问题的框架。它结合了推理(内部思考)和行动(外部工具调用)的优势,克服了传统方法中模型只能依赖预训练知识或机械执行工具的局限。 核心机制是T-A-O循环: 思考(Thought):规划下一步行动 行动(Action):调用工具(如搜索/计算器) 观察(Observation):获取工具返回结果 循环执行直至问题解决。 优势包括: 减少幻觉,基于真实工具数
2026-04-24 17:37:51
483
原创 React Hooks小技巧-防止async函数抖动触发
本文介绍了一个React自定义Hook useAsyncFn,用于管理异步函数的状态。该Hook接收一个异步函数作为参数,返回一个包装后的异步函数和一个loading状态标志。执行包装函数时会自动设置loading状态,并在函数resolve/reject后清除loading状态,同时在loading期间阻止重复调用。通过useState和useCallback实现状态管理和函数记忆化,适用于需要处理异步操作loading状态的场景。
2025-09-03 16:47:55
328
原创 wx小游戏canvas能力封装
本文介绍了Canvas绘图的几个实用函数:1) renderRoundRect绘制圆角矩形,支持自定义圆角半径和颜色;2) text函数提供灵活的文本绘制功能,可设置字体、对齐方式等;3) shadow函数实现阴影效果;4) getLinearGradient和getRadialGradient分别创建线性和径向渐变;5) getPattern异步加载图片创建图案填充。这些函数封装了Canvas常用绘图操作,简化了开发流程。
2025-08-19 16:16:01
514
原创 如何通过AI扫描代码中的问题
代码质量其实在需求高压,业务快速迭代的场景下往往容易被人忽视的问题,大家的编码习惯和规范也经常会各有喜好,短期之内获取看不出来什么问题,但长此以往就会发现,屎山逐步成型了,而线上代码跑着往往就不想改也不敢改了,所以团队成员有一个良好的开发习惯,统一的编码规范和一定的代码洁癖是很重要的。但是项目代码量一上来,其实再想逐行分析代码的问题就很麻烦了,由此便有了本文的亡羊补牢的方案。(最好还是防患于未然,不要亡羊补牢,至于预防方案后续再更)。
2025-07-25 15:49:30
1143
原创 【AI】前端眼里的AI
最近各行各业对AI的热情持续高涨,我在的团队也在力推用AI来提效,所以近期也在做这方面的事情,曾经看过一篇文章中写到,“AI本质就是概率”。我对此是十分的认同,AI是不具备感性的,所谓的智能,其实就是经过极大量数据渲染以后高度规范化的一个概率推测,因此AI能做的事情便是那些有迹可循的工作,越是规范化、流程化的东西越容易被AI所替代。
2024-12-25 16:24:20
560
原创 【CSS】absolute定位的默认位置
定位祖先元素进行定位。如果没有这样的祖先元素,则相对于初始包含块(通常是视口)进行定位。属性会使元素脱离正常的文档流,并相对于最近的非。时应该存在的位置,不过由于脱离了文档流,层级会高。没有指定具体值时,元素的在上下文中的位置会在默认。
2024-11-13 17:13:25
627
1
原创 【CSS】什么是BFC?
块级格式化上下文(Block Formatting Context,简称BFC)是CSS布局中的一种重要概念,它决定了块级盒子如何在其容器内排列,以及浮动元素对其周围元素的影响。理解BFC可以帮助解决许多常见的网页布局问题,比如清除浮动、防止外边距重叠等。
2024-11-11 14:52:59
650
原创 【CSS】“flex: 1“有什么用?
这种设置对于实现灵活、响应式的布局非常有用。例如,我们可以将导航栏中的项目设置为。属性设置为 1,相当于将其分配了一个相对于其他元素相同的可伸缩空间。会使该元素尽可能地占据父容器中的剩余空间,同时保持其他元素的相对位置和大小。无论导航栏的宽度如何变化,链接都会自动调整大小,以适应父容器的空间。在这个示例中,通过设置链接的。,使其自动平分导航栏的宽度。属性为 1,实现了它们的。
2024-11-07 16:46:16
1556
原创 【CSS】清除浮动(父元素塌陷)
在CSS布局中,“清除浮动”通常指的是消除由浮动元素引起的某些副作用,特别是当这些浮动元素影响到后续元素或者父元素的高度计算时。浮动元素会使它们脱离正常的文档流,这可能导致一些意料之外的效果,比如父元素高度塌陷(即父元素无法正确包裹住所有的子元素)。
2024-11-05 10:47:48
767
原创 【JavaScript】Object.freeze是什么?
是一种强大的工具,用于保护对象不受意外修改。它适用于多种场景,特别是在需要保持数据不变的情况下。
2024-09-11 15:33:10
921
原创 【JavaScript】从作用域角度理解闭包
在 JS 世界中,目前已经有了三种作用域:●●●○ 由let或者const声明的变量,如果被一个大括号{}这样括住了,那么这个大括号就是一个代码块,大括号括住的这些变量就形成了一个块作用域在js引擎中执行上述语句分为两个阶段(一边编译一边运行):●var a===》 编译时声明●a = 1===》 运行时赋值在运行时js引擎会找当前作用域下是否有a的声明,没有的话就会往上级作用域查找,一直到最外层全局作用域还没有的话会抛出异常。
2024-09-06 17:12:57
678
原创 【CSS】尺寸单位
对于电脑显示器,px 通常与屏幕的物理像素相对应,但这也会受到屏幕分辨率和缩放设置的影响。例如,在标准分辨率(通常为 96 DPI 左右)的显示器上,1 px 大约等于 1/96 英寸。由于移动设备具有不同的屏幕密度(例如标准密度、高密度、超高密度等),同样的 px 值在不同密度的屏幕上显示的物理尺寸会有所不同。通常,DPI 的值越高,图像的清晰度和细节就越丰富。在 CSS 中,font-size: 50% 表示字体大小为父元素字体大小的 50%。在不同的设备上,px 对应的物理尺寸并不固定。
2024-09-06 16:27:16
849
原创 【JavaScrip】为什么箭头函数不能做构造函数
●词法作用域的this: 箭头函数内部的this值绑定到定义时所在的上下文环境,而不是调用时的上下文环境。●无法设置原型链: 箭头函数不具备通过new关键字设置原型链的功能。因此,箭头函数不适合用作构造函数。如果你需要创建类或构造函数,请使用普通的函数声明或 ES6 的类语法。
2024-09-06 16:23:15
735
原创 【HTML】link标签prefetch&preload
link>标签的rel属性的值为preload时,可用于在正常浏览器渲染流程早期提前加载当前页面所需资源,以提升页面性能。除了rel。
2024-09-06 16:10:56
1573
原创 【HTML】script标签async&defer
使用async更适合那些不影响页面初始渲染且相互间无依赖关系的脚本。使用defer更适合那些需要按照特定顺序执行的脚本,或者脚本依赖于完整的 DOM 树。
2024-09-06 14:39:16
1291
原创 前端远端SDK组件加载方案
作者维护的可视化搭建平台所提供的投放数据配置表单是基于搭建物料中配置的经过统一的渲染生成的,这就意味着:表单项的类型是预先约定好的,虽然这可以满足业务绝大部分的诉求,但是总有一些高度定制的配置项需要支持业务自定义。作为一个通用的平台,内部耦合业务逻辑是个很愚蠢的办法,所以便开了业务自定义扩展渲染组件的口子。
2024-08-28 14:23:03
606
原创 Antd Form黑科技-监听表单值变化
为啥要写这个hooks?主要是因为我们页面antd使用的是4.0版本,当时5.0还没有支持,而在一些业务场景中我需要监听某个表单值的变化来做一些回调处理,而Form组件的props中需要集中一个地方来写这些回调又不太方便于是便翻到了源码中这个antd内置hooks事件,可以用来监听。
2024-08-21 18:59:25
1227
原创 sourcemap使用
在某些情况下我们没办法直接用浏览器加载sourcemap来使用,比如我们的监控平台捕获到了错误栈,但是页面不能复现,只能通过日志的相关信息来排查,此时便需要自建的sourcemap解析服务来处理了。比如在团队内部部署一个微型服务, 自助上传souremap, 输入报错信息, 然后打印出具体的错误,还可以做报错代码的高亮展示等优化,更进一步地, 可以跟git直接关联起来, 导航到具体的报错文件, 更加直观。根据上述信息, 我们可以扩展出一个功能更完善的工具。
2024-08-08 10:55:20
861
原创 简单中间件模型
中间件是软件开发过程中架构的一个通用概念,其目的在于为运行的主程序提供一个供外部自定义拓展的能力。比如:wen服务的controller层中间件针对request请求处理的前后进行通用的扩展处理、redux中间件针对store数据获取前后的扩展处理。。。
2024-08-07 14:45:42
454
原创 前端如何支持i18n?
系统支持多语言的功能称之为国际化,英文为一共18个字母,简称i18n。随机近些年国内市场饱和,各厂商纷纷出海,i18n成了必要的能力。
2024-07-19 17:58:27
860
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅