特斯拉引荐奖励
Posted by quentin 在 Friday, 24 November 2023使用我的引荐链接下单,可赢得8000元车漆选装礼金。限抵扣付费车漆选配的价款。https://ts.la/ywjrg531660
Serverless:复杂度没有消失,只是换了地址
Posted by quentin 在 Tuesday, 12 May 20262018年前后,Serverless在国内技术圈火了一阵。各大云厂商轮番布道,"按需付费"、"零运维"、"自动扩缩容"——每个口号都精准戳中了团队的痛点。我当时也投入了不少精力研究,毕竟谁不想不用管服务器?
几年过去了,当初那些All in Serverless的团队,相当一部分已经在往回走。不是Serverless不好,而是很多人慢慢意识到:当初以为消灭的复杂度,其实只是搬了个家。
那些承诺里没写的小字
Serverless的核心承诺有三条,每一条都有对应的现实版本。
"不用管服务器"——开发者只需写业务逻辑,基础设施平台托管。这对前端团队尤其有吸引力,写完函数丢上去就能跑,不用折腾部署和运维。但现实是,你很快会发现自己需要关注函数的内存配置、超时时间、并发限制、冷启动策略、VPC配置、IAM权限……这些不叫"服务器运维",但本质上还是在管基础设施,只是换了个仪表盘。
"按需付费"——代码不运行就不收钱,空转成本消失。但下一句没人告诉你的是:按需付费的反面是成本不可预测。一个函数死循环触发重试,一个爬虫突然疯爬你的API,一个配置错误导致无限调用——这些异常场景下的账单,会让你深切怀念固定成本的日子。
AB实验的真相:你以为的数据驱动,其实是数据背书
Posted by quentin 在 Tuesday, 12 May 2026先说一个我在做推荐系统 AB 实验架构时观察到的现象。
某个业务团队跑了一个月的实验,结论是新的推荐策略效果显著,CTR 提升了 12%,上线。三个月后回头看,整体转化率没变——用户只是提前点了,没有多买。没人复盘这件事,因为所有人都已经在那个"12% CTR 提升"的实验报告上签了字。
这不是个例。在金融产品场景里,我见过太多 AB 实验的结果被当作结论使用,而实验本身的设计、指标选择、对照组偏差,几乎没人认真审视。大家需要的不是真相,是一个可以写进周报的数字。
数据驱动这个词已经被用烂了
每家公司都说自己是数据驱动的。但如果你仔细看他们做决策的过程,会发现一个很典型的模式:先有结论,再做实验。
产品经理已经有了想法,设计已经出了方案,开发已经排了迭代——实验只是最后的"验证"。注意,不是"验证假设",是"验证决策"。这两者有本质区别。验证假设的时候你真心想知道答案,验证决策的时候你只想要一个通过。
这种心态不是某个人有问题,是整个系统的激励结构决定的。一个做了三个月的项目,谁愿意在最后一步承认实验结果不支持上线?于是你会看到各种"实验结果不显著但趋势向好"、"主要指标未达显著但次要指标表现优异"的结论。翻译成人话就是:实验没通过,但我们还是要上。
技术选型的隐性成本:你选的不只是框架,是未来三年的约束
Posted by quentin 在 Monday, 11 May 2026每个技术团队都经历过这种场景:选型评审会上,几个方案摆出来,有人做性能对比,有人秀Demo效果,有人贴GitHub Star数。讨论半天,拍板一个,然后散会。团队满怀期待地开始新项目,三个月后开始骂娘。
这事儿我见过太多次了。选型时看到的都是优点,上线后暴露的全是成本。而且这些成本绝大多数在选型评审时根本没人提——不是不想提,是没人知道该提什么。
技术选型最大的陷阱不是选错了框架,而是你以为自己只选了框架。
你看到的是Demo,你看不到的是深渊
选型评审时,我们评估什么?功能列表、性能基准、社区活跃度、文档完整度。这些都是对的,也是不够的。
它们属于"可见成本"——你能在两小时的评审会上完成对比的东西。但框架的真正成本,从来不在这张表上。
你选的 Git 工作流,暴露了你的发布能力
Posted by quentin 在 Monday, 11 May 2026每次团队讨论 Git 工作流,场面都很热烈。有人搬出 Git Flow 的严谨分支模型,有人推荐 Trunk-Based Development 的极简主义,还有人觉得 GitHub Flow 够用就行。辩论往往持续一个下午,最后投票选一个,README 里写上规范,全员执行。
然后三个月后你会发现:分支还是乱成一锅粥,release 分支上堆了二十个 cherry-pick,hotfix 从 master 拉出来合不回去,有人偷偷开了 feature branch 三周没合,还有人在 master 上直接 commit——"就改了一行,没必要开分支"。
工作流选错了?不,工作流没选错。是大部分团队在选工作流的时候,选的是自己向往的工作方式,而不是自己实际具备的发布能力。
Git Flow:为发布窗口而生的妥协
Vincent Driessen 在 2010 年提出 Git Flow 的时候,他的假设非常明确:你的软件有固定的发布周期。develop 分支积累功能,release 分支冻结测试,master 分支只放生产代码,hotfix 从 master 拉出紧急修复。每一步都有清晰的语义。
知识孤岛的解法不在文档里
Posted by quentin 在 Monday, 11 May 2026每个技术团队都有这个痛点:核心开发离职了,系统没人敢动;某个服务只有一个人能改;新人来了三个月还在问"这个接口谁负责"。然后管理层拍板——写文档!搞知识库!做Wiki!
半年后,知识库变成了数字垃圾场。文档没人读,读了也过时,过时了更没人更新。循环往复。
我的判断可能比较尖锐:文档是知识孤岛的安慰剂,不是解药。真要打破知识孤岛,得从架构设计和组织设计入手,让知识天然不容易集中到某个单点上去。
知识孤岛是怎么长出来的
先得搞清楚,知识孤岛不是"文档没写好"的产物。它是系统架构和组织结构的影子。
当一个微服务只有一个人从设计到上线全程参与,那这个人就是这个服务的知识孤岛。不是因为他不愿意分享——他可能写了很详细的README,但你让另一个人接手,还是要花两周才能上手。因为README里写的是"怎么做",而脑子里装的是"为什么这么做"以及"哪里会踩坑"。
AI+机器人创业:软件思维才是最大的坑
Posted by quentin 在 Monday, 11 May 2026过去一年,我接触了不少AI和机器人方向的创业团队。有做具身智能的,有做服务机器人的,有做工业检测的,也有做消费级陪伴机器人的。聊完之后一个很强烈的感受:大量的创业者——尤其是技术背景出身的——正在用软件的思维做硬件的生意,用SaaS的逻辑评估一个物理世界的项目。
这个错位,比大多数人以为的要严重得多。
Demo到产品的距离,在硬件世界里是光年
软件创业的核心叙事是MVP——最小可行产品。两周上线一个版本,收集用户反馈,快速迭代。这套方法论在过去十年被验证了无数次,几乎成了互联网创业的圣经。
但这个叙事在机器人领域完全不成立。
一个做餐厅配送机器人的团队跟我说,他们的软件系统三个月就搭好了,SLAM算法调了两个月效果不错,避障也过得去。但整机跑起来之后,发现轮子打滑导致里程计漂移,激光雷达在不同光照条件下噪点差异巨大,电池在冬天衰减了30%导致续航不达标,餐厅地面的油渍让轮子寿命从设计的一半都不到。每一个都是"小问题",但要解决任何其中一个,都需要改模具、换供应商、重新做可靠性测试——一个循环下来三个月起步。
软件出bug可以热修复,硬件出问题只能召回。软件改一行代码的成本是几分钟,硬件改一个结构件的成本是几万块起,加上开模周期至少四周。这不是量变,这是质变。
发布恐惧怪圈:你加的每道门禁都在让发布更危险
Posted by quentin 在 Monday, 11 May 2026上周有个做支付系统的朋友跟我吐槽,他们团队每次发版要过六道门禁——代码审查、单元测试覆盖率、集成测试、安全扫描、性能基线、人工审批。听起来很严谨对吧?结果他们每次发布的变更量越来越大的同时,线上故障却没有减少。反而因为每次发布都是"大手术",一出问题就是大问题。
这不是个例。我观察过不少团队,尤其是金融、支付这类对稳定性要求极高的业务线,都有一个共同的倾向:发布越怕出错,就越加流程;流程越重,发布频率越低;频率越低,每次发布承载的变更越多;变更越多,出错概率越高——然后更怕出错,继续加流程。
这就是发布恐惧怪圈。而最反直觉的地方在于:你加的每一道门禁,都在让下一次发布更危险。
门禁越多,发布越重
这是最直接的后果,也是最容易被人忽视的。
假设一个团队每周发布一次,每次发布平均包含 15 个 commit 的变更。后来因为一次线上事故,决定加强管控:发布前必须经过安全扫描和性能基线验证,流程从一天变成了三天。发布频率自然从每周一次降到了每两周一次。但开发节奏没变,两周的变更量是 30 个 commit。
看到了吗?单次发布的爆炸半径翻倍了。
日志的谎言:为什么你的日志比没有日志更危险
Posted by quentin 在 Wednesday, 29 April 2026凌晨两点,线上出了一个支付失败的问题。你登录日志平台,输入订单号,回车。三千条日志滚动出来。你加上时间过滤,缩小到五百条。再加 ERROR 级别,剩三十条。你一条一条看——全是超时告警,没有一条告诉你为什么超时。
你把级别放宽到 WARN,三百条。大多是重试成功的记录,看起来没啥用。你换了个关键词搜,又出来几百条。折腾了一个小时,你发现关键信息藏在一个 INFO 级别的日志里,存的是上游服务的返回值,但打印的时候没用 JSON 格式,正则匹配不到。
最后你靠着回忆和猜,定了位。第二天写故障报告,复盘建议第一条写着:"增加更多日志。"
这个场景大概不需要太多解释,每个值过班的工程师都经历过。但真正值得思考的不是"日志不够"这个表面结论,而是更深的问题:你有成千上万条日志,为什么还需要靠猜?如果日志真的有用,为什么越紧急的时刻,日志越帮不上忙?
日志的安全感是假的
很多团队对日志有一种近乎宗教性的信任——出了问题看日志,没问题也要看日志确认一下。代码评审的时候,一句"这里加个日志吧"几乎不会被拒绝,因为加日志没有成本,看起来还体现了严谨。
但日志给你的安全感是虚假的。
