这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
品牌不是 logo:一句话承诺与三次复述
他做了两年文档对比工具,官网首屏写着「强大、高效、一站式」,用户介绍时却说「就是个 diff 工具」。品牌不是 logo 也不是配色,而是一句能被陌生人复述的承诺:给谁、解决什么、凭什么。这一篇给出三段式写法与三次可执行的复述测试。
posts
这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
他做了两年文档对比工具,官网首屏写着「强大、高效、一站式」,用户介绍时却说「就是个 diff 工具」。品牌不是 logo 也不是配色,而是一句能被陌生人复述的承诺:给谁、解决什么、凭什么。这一篇给出三段式写法与三次可执行的复述测试。
划线价、券后价与「预计省 X 元」不是三个装饰数字,而是三句可以被核验的事实陈述。本节给出划线价的展示条件、券后价与优惠金额的计算口径、不可用原因的具体文案,以及失效券保留但不给动作的展示方式,避免用不存在的原价制造假优惠。价格区因此可以按固定顺序渲染。
从用户切走私信页的瞬间出发,说明流式链路为什么需要背压、取消信号与半截响应的收敛,给出有界异步队列与流式控制器的完整 TypeScript 实现,并用 node --test 验证队列容量、背压挂起、取消时机、断流收敛、保底计量与成本漏记。
《长风原》的 UGC 地图编辑器上线前,一张 300 MB、四万实体的地图把沙箱打爆,另一张地图的依赖在审核后被悄悄换版本。本节给出不可变版本、内容寻址、依赖锁定、沙箱配额、灰度与回滚组成的发布流水线,并说明为什么回滚只能指向曾经发布过的版本。
《Java 编程实战》全书导航页:说明从卷一 CLI 到 libraryd 服务的升级路线、读者画像与前置知识,给出六周实战路径与四类读者的入口建议,并按六个部分列出 16 章 48 节的完整索引,另附序、前言、附录 A–D,每节配一句话定位与项目状态说明。
季度末翻开假设清单,他发现五个假设已经没人再提:不是被证实,是被忘掉。研究复盘要回答的不是「这季度做了什么研究」,而是「哪些判断被推翻、哪些证据过期、下一季只查哪三件事」。被推翻的假设,比被证实的更有价值。
会员价、活动、优惠券与积分同时出现时,叠加顺序、互斥组与舍入规则决定了用户最终付多少钱。本节把顺序固定为会员、活动、券、积分,用组声明处理互斥,用整数分逐级计算,并给出端上预演与服务端结果不一致时的对账与二次确认策略。所有金额保持整数分,叠加结果可逐项对账。
同一个「加导出」的需求,半年里被讨论了四次,每次结论都不一样,因为没人记得上次为什么否决。决策记录不是会议纪要,是一页能复查的判断:依据哪几条证据、决定了什么、明确不做什么、什么条件下重开。写它只要十五分钟,省下的是重复争论。
交代本书的读者对象、前置知识与六部分结构,列出 JDK 25、Maven、Docker 与 PostgreSQL 17 的环境清单和真实版本输出,说明代码、输出、容器与命令的书写约定,以及三种阅读路径、验证代码的四个层次与版本不一致时的排查顺序。
做了三个月研究,他记住的却全是支持自己判断的那几句。偏差不是学术问题,是每天都在发生的自我欺骗:引导性提问、礼貌性回答、熟人样本、幸存者偏差、确认偏误、把噪音当信号。每一种都有对应的自查问句与记录标记。
RICE 需要触达人数、影响面、置信度与工作量,前两项一个人根本估不准。单人项目的排序不是选出最重要的十件事,而是选出这周只做的一件:用证据强度、可逆性与成本三个因子算分,再把并行任务压到一条主线上。
「能不能加个导出」这句话里其实有三件事:一个真实的流程缺口、一个用户自己想的解法、还有一点没被满足的情绪。分诊就是把它们拆开,再把五种不同说法合并成一条可判断的问题,用影响面、频次与可复现性打分,而不是谁喊得响就先做谁。
做到第五个人,问题开始重复:前四个人已经暴露了八成卡点。可用性测试不需要实验室,也不需要统计显著,只要五个真实用户、三个核心任务、一张四列记录表,加上一条最难守的纪律——不帮忙。要产出的是问题清单与严重度,不是满意度评分。
受访者说「导入很方便,拖一下就行」,录屏里他先复制路径、再点三次菜单、最后才拖,中间停了 40 秒。观察记录的不是印象,是动作:停顿、绕路、替代工具和重复操作。一个人做观察不需要实验室,只需要一张表和不帮忙的克制。
优惠券的「可用」不是布尔值,而是门槛、范围、有效期、领取状态与互斥关系共同裁决的结果。本节把判定顺序写成可测试的纯函数,用服务端时钟避免设备时间漂移,端上只做预筛与提示,并复盘一次因设备时间与范围并集导致的券失效事故。并给出可运行的 TypeScript 纯函数与测试。
从「回声」私信智能回复的首字延迟出发,拆解提供方、网关、BFF 与客户端四段流式链路,逐字节给出统一 StreamEvent 协议与增量翻译管线代码,用 node --test 验证首帧、增量、计量与结束帧的顺序不变量,并复盘一次直接透传厂商流的事故。
说明卷二为什么在卷一之后单独成书、为什么不用 Spring 而是手工搭出 libraryd 的每个基础设施位置,交代从 CLI 到可部署服务的六道工程门槛、与 Spring Boot 卷和本站 Java 专题的分工,以及本书刻意不写的 JVM 机制、GC 调优与验证方式。
他问了十个人「如果有个工具能自动整理会议纪要,你会用吗」,十个人都说会,最后只有两个人付钱。回看录音才发现,没有人被问过上一次做纪要是什么时候、花了多久、用的什么办法。访谈的成败不在技巧,在问题指向过去还是将来。
他问了十个朋友,八个是同城的产品经理,于是得出「大家都要移动端」。上线后七成用户是门店店长,坐在电脑前。样本错不是数量问题,是角色问题:使用者、付款人、决策者要分开取样,还要留两个反例,十个人才能撑起一个判断。
一个月里他做了十几条判断,没有一条能复查:访谈只留了结论,观察只记得印象,数据只看了总量,销售对话散在聊天记录里。用户研究不是多聊几个人,而是把证据分成四类、标出强弱、算清采集成本,让每个决定都能追溯到一条原始记录。