知识库
如何在家做一碗稳定的溏心蛋:温度、时间与剥壳技巧
为什么溏心蛋总是不稳定 溏心蛋的成败取决于三个变量: 蛋的初始温度、加热水温、加热时间 。家里做失败,多半是这三者没有固定下来:冰箱里刚拿出的蛋和室温蛋,同样煮 6 分钟结果完全不同。 所以核心思路不是记住一个「万能分钟数」,而是 固定蛋的…
力量训练入门:深蹲、硬拉、卧推的动作模式与常见代偿
力量训练的三个基础动作——深蹲、硬拉、卧推——是构建全身力量的基石。掌握正确的动作模式,不仅能提升训练效果,更能有效预防损伤。本文将从动作模式入手,分析常见代偿,并提供自我纠正的思路。 深蹲:髋膝协同的蹲起模式 深蹲的本质是髋关节与膝关节协…
MiniMax H3 提示词写作完全指南:三段式结构、运镜体系与常见错误
MiniMax H3 提示词写作完全指南:三段式结构、运镜体系与常见错误 如果你在用 MiniMax H3 生成视频,大概已经发现: 同一个模型,提示词写得好坏,出来的片子差距极大 。 H3 的特点是「视频和音频一次生成」——它同时产出画面…
密码管理器到底安全在哪:主密码、派生与本地加密的取舍
密码管理器到底安全在哪:主密码、派生与本地加密的取舍 密码管理器让你只需记住一个主密码,就能管理所有账号。但很多人会问:把所有密码交给一个软件,真的安全吗?本文从技术原理出发,解释密码管理器的安全边界。 主密码:唯一的秘密 主密码是你解锁密…
把重复劳动交给任务运行器:常见构建与自动化工具的适用边界
为什么要用任务运行器 项目里总有一些重复动作:编译、压缩、跑测试、格式化、清理产物。手动敲命令容易漏步骤,也难保证团队一致。任务运行器把这些动作固化成可复用的命令,让「怎么构建」变成代码的一部分。 但工具很多,选错了反而增加维护成本。下面按…
词向量到注意力:用一个小语料亲手推演 Transformer 的计算过程
Transformer 是现代大模型的基础,但只看公式容易一头雾水。本文用一个小语料,手算一遍从词向量到注意力的关键步骤,帮你真正理解内部计算。 1. 准备一个小语料 假设我们只有两个句子: "猫 追 老鼠" "狗 追 猫" 先构建词表:{…
从零搭建一套日志聚合链路:采集、传输与检索的分层设计
日志聚合的核心目标只有三个: 收得全、传得稳、查得快 。围绕这三个目标,把链路拆成采集、传输、存储与检索四层,每层只解决一个问题,系统才容易扩展和排障。 一、先明确设计约束 动手前先回答几个问题,它们直接决定选型: 日志量级:每天 GB 级…
数据库事务隔离级别用例子说话:脏读、幻读到底长什么样
事务隔离级别是数据库面试和日常开发中的高频话题,但很多人只是背下了“读未提交、读已提交、可重复读、串行化”这四个名词,对脏读、不可重复读、幻读的具体表现却一知半解。本文用两个典型例子,把抽象概念变成看得见的现象。 准备工作:一张账户表 以下…
限流算法选型:计数器、漏桶与令牌桶在接口层的落地差异
为什么接口需要限流? 限流是保护系统免受过载请求冲击的常用手段。无论是防止恶意爬虫、应对突发流量,还是保障核心接口的稳定性,选择合适的限流算法都至关重要。本文对比计数器、漏桶和令牌桶三种算法在接口层的落地差异,帮助你做出合理选型。 1. 固…
浏览器事件循环与任务队列:为什么 setTimeout 不按时执行
从一次“延迟失效”说起 很多前端开发者都遇到过:明明写了 setTimeout(fn, 0),fn 却迟迟不执行;或者 setTimeout(fn, 100) 实际延迟远超 100ms。这不是浏览器“不守时”,而是事件循环(Event Lo…
从零写一个简易解释器:词法、语法树与求值三段式入门
解释器是编程语言的核心组件之一,它负责将源代码转化为可执行的结果。本文以最简单的算术表达式语言为例,带你走完词法分析、语法分析和求值三个阶段,理解解释器的基本骨架。代码示例使用 Python,因其简洁易读,但思路适用于任何语言。 目标语言定…
一周备餐思路:如何安排采购、预处理与冷藏保存
为什么需要一周备餐 工作日时间紧张,临时买菜做饭容易凑合或点外卖。花 2 3 小时集中备餐,可以让你在工作日 15 分钟内吃上家常菜。核心思路是: 按“食材耐存性”规划采购顺序,按“烹饪时间”安排预处理,按“食用顺序”分装冷藏 。 第一步:…
体检报告里的常见指标该怎么看:哪些异常需要复查
拿到体检报告,面对密密麻麻的数字和箭头,很多人会感到困惑甚至焦虑。其实,只要掌握几个核心指标的解读方法,就能对自身健康状况有个基本判断。本文基于常规医学常识,帮你理清思路,并明确哪些情况需要进一步复查。 一、血常规:重点看三项 白细胞计数(…
OAuth 2.0 授权码模式中的 PKCE:为什么公共客户端必须用它
问题:公共客户端为什么不能安全保存 client secret 在 OAuth 2.0 授权码模式(Authorization Code Grant)中,传统做法是用 client secret 来证明「换 token 的请求来自合法客户端…
Monorepo 与 Multirepo:依赖管理、CI 时间与团队协作的取舍
先说结论:没有银弹,只有取舍 Monorepo(单仓库)和 Multirepo(多仓库)不是「先进 vs 落后」的关系,而是三种成本之间的权衡: 依赖管理成本、CI 成本、协作成本 。选错方向,团队会在其中某一项上持续付出代价。 一、依赖管…
向量数据库与传统检索的混合方案:RAG 场景下召回率与延迟的平衡
在 RAG(检索增强生成)场景中,检索质量直接影响生成答案的准确性。向量检索擅长语义匹配,传统关键词检索(如 BM25)擅长精确匹配,两者结合可以显著提升召回率,但也会增加延迟。如何平衡?以下是可落地的混合方案。 为什么需要混合检索 向量检…
云上对象存储冷热分层:标准、低频与归档存储的成本对比与迁移策略
对象存储按访问频率划分存储层级,是云上降本最常见的手段之一。但分层不是简单地"把冷数据挪到便宜层",取回成本、最小存储时长和请求费用常常决定最终账单。本文以主流云厂商(AWS S3、阿里云 OSS、腾讯云 COS)的公开计费逻辑为基础,梳理…
MySQL 执行计划 type 字段逐级解读:从 ALL 到 const 的取舍
为什么 type 字段如此重要 在 MySQL 的 EXPLAIN 输出中,type 列直接反映了 访问类型 ,即 MySQL 决定如何查找表中的行。它从最差到最优大致为:ALL < index < range < ref < eq ref…
幂等性设计实战:支付、重试与消息重复场景下如何保证接口安全
在分布式系统中,网络超时、用户重复点击、消息重投递等问题难以避免,导致同一个请求可能被多次执行。对于支付、订单创建等关键操作,重复执行会造成资金损失或数据错乱。幂等性设计正是为了解决这一问题: 无论请求执行多少次,对系统状态的影响都和执行一…
浏览器的渲染流水线:从 HTML 解析到合成层,一次重排到底发生了什么
引言 当我们在浏览器中输入网址,到页面呈现出来,背后经历了一系列复杂的步骤。了解这些步骤,尤其是“重排”和“重绘”的触发机制,是优化 Web 性能的关键。本文将带你走一遍浏览器的渲染流水线,并解释一次重排到底发生了什么。 渲染流水线的主要阶…