服务治理是工程问题,不是纪律问题

Posted on 五 10 7月 2026 in Tech • Tagged with journal, SRE, reliability, service-governance

2017 年 AWS 一个工程师敲错一条命令,让小半个互联网黑屏四小时;Knight Capital 一次没同步好的部署,45 分钟烧掉 4.4 亿美元。服务治理的本质是工程问题:能自动化的规则、约束、检查、测试,就别指望人半夜手动去跑。清单革命固然好,但清单要人看、人执行,而人从来不是百分百可靠的。这篇聊聊业界的标准、最佳实践、成功案例和典型事故。


Continue reading

人不可有傲气,但不可无傲骨

Posted on 五 10 7月 2026 in Journal • Tagged with journal, career, life

傲气是看不起人,傲骨是看得起自己。顺势而为没错,但守住的原则和气节不能拿去换。这篇聊聊:为什么当你觉得"非我莫属"、别人偏不给你时,那多半不是你的问题,以及一个普通人怎么把傲骨落到实处。


Continue reading

struct 到底实现了哪些接口?让 Go 的隐式接口更友好一点

Posted on 五 10 7月 2026 in Tech • Tagged with Go, interface, gopls, golangci-lint, uml, plantuml, mermaid, best-practice, backend

Go 的隐式接口(duck typing)写起来很爽,但代价是"看不见"——一个 struct 到底实现了哪些接口,光看代码根本一眼看不出来。这篇不改语言、不等官方,从编译期断言、gopls 双向跳转、golangci-lint、go generate 到自己写工具生成 UML 类图(附开源项目 gouml),一层层把可发现性补回来,附可跑的例子和一份可落地清单。


Continue reading

选择困难症怎么解

Posted on 四 09 7月 2026 in Journal • Tagged with journal, decision, methodology

人生一个个十字路口,我常常徘徊彷徨、踟蹰不前,想不清楚也做不了决定。后来慢慢琢磨出两条:先弄明白自己到底想要什么,再审时度势、顺势而为。上赶着不是买卖,勉强来的东西留不住。


Continue reading

Channel 还是锁?聊聊 Go 里那些好用的并发模式

Posted on 二 07 7月 2026 in Tech • Tagged with Go, concurrency, channel, mutex, goroutine, pattern, backend

做后端的,跟高并发、大流量打交道是家常便饭。分而治之是基本思想,多进程、多线程、多路复用、异步是基本手段。到了 Go 这里,最常被问的一个问题是:面对资源竞争,到底该用 Channel 还是互斥锁?这篇给一个能记住的判断口诀,再把 Go 里几种真正好用的并发模式一个个拆开讲——附可跑的代码和一张选型清单。


Continue reading

关于密码学,我们到底该知道些什么

Posted on 二 07 7月 2026 in Journal • Tagged with journal, cryptography, security, learning note

做了这么多年后端和 WebRTC,绕不开密码学,可真要系统学起来又觉得无从下手。这篇按"该知道什么、从哪入手、哪些值得深挖、哪些书值得反复读"四条线,给一个不吓人也不糊弄的密码学学习地图。


Continue reading

脑裂:脑子裂成两半,谁也不认谁

Posted on 一 06 7月 2026 in Tech • Tagged with distributed systems, split-brain, network partition, consensus, quorum, raft, high availability

分区(partition)是网络把集群切成了几块,谁也看不见谁;脑裂(split-brain)是切开之后,每一块都以为"就剩我了,我来当家"。于是两个主节点同时写数据,等网络恢复,数据对不上,谁都不认谁。这篇讲清楚脑裂的根因(网络分区 + 各自选主),以及业界公认的解法:多数派仲裁(quorum)、fencing、见证节点,配一份可抄的排查与设计清单。


Continue reading

一个字符串引发的血案:从 C 到 Go 的 rune,字符串是怎么一步步进化的

Posted on 一 06 7月 2026 in Tech • Tagged with string, unicode, c, cpp, java, python, go, rune, encoding

字符串看着最简单,坑却最深。从 C 的一根 char 指针,到 C++ 的 std::string,到 Java/Python 的对象化,再到 Go 的 rune,这一路演进本质上就在解决三个问题:谁管内存、长度怎么算、一个"字"到底是什么。这篇按时间线把它们串起来,讲清楚每一步为什么这么设计、又留下了什么坑。


Continue reading

限流这件事,从来不是"每秒放几个"这么简单

Posted on 一 06 7月 2026 in Tech • Tagged with microservices, rate limiting, backend, stability, architecture

很多人以为限流就是"每秒放 100 个请求",配个数字完事。真上了规模才发现,限流是分层的、分策略的、还得跟业务谈判的。这篇把限流拆成"在哪一层限、按什么维度限、用什么算法、放行还是拒绝、拒了怎么告诉客户端"几件事,配上可抄的配置和一张决策清单。


Continue reading

Streamlit 深入浅出:用写脚本的方式做数据应用

Posted on 日 05 7月 2026 in Tech • Tagged with journal, python, streamlit, data-app

Streamlit 让你用写 Python 脚本的方式,几十行就做出一个能交互的数据应用——不碰 HTML/CSS/JS,不起前端工程。这篇讲清楚它背后"脚本从上到下重跑一遍"的设计理念,常用控件与状态管理,一个能跑的完整实例,以及我踩过坑之后总结的最佳实践。


Continue reading

给你的服务养一个"数字替身":AI 时代为什么要写 Sample App

Posted on 日 05 7月 2026 in Tech • Tagged with journal, testing, architecture, WebRTC

做后端和 SDK 这些年,我越来越依赖一个东西:给每个服务配一个能把主流程完整跑一遍的 Sample App——Web Service 就配个 Test Web App,音视频应用就配个 Native App。它既是 E2E 测试工具,又是一个"永远在线的模拟用户",还是最诚实的一份活文档。AI 能帮你把它写得飞快,但要不要养、往哪个方向养,得你自己拿主意。


Continue reading

用穷举法吃透问题:把碎片经验炼成体系能力

Posted on 六 04 7月 2026 in Journal • Tagged with journal, methodology, learning, problem-solving, career

有的人解决问题像打地鼠,这个坑填上,下个坑又冒出来。真正拉开差距的,不是记住多少答案,而是能不能把一类问题的成因、解法和取舍一次性想透。这篇聊聊我这些年反复用的一套笨办法:分类、穷尽、对比、取舍。


Continue reading

拖延症又犯了,怎么办

Posted on 六 04 7月 2026 in Journal • Tagged with journal, procrastination, methodology

明知该做,就是不想动,眼看 deadline 变成头上的达摩克利斯之剑,心理负担越来越重,却越拖越凶。研究过无数克服拖延的方法,也天天告诫自己知行合一,可"臣妾就是做不到"。这篇不劝你自律,而是想聊聊:为什么方法没用,以及怎么把"启动成本"降到你抬手就能做的地步。


Continue reading

完全由 AI 生成的代码,我越看越心惊

Posted on 六 04 7月 2026 in AI • Tagged with journal, ai, code-review, engineering, responsibility

有一次我认真读完一段完全由 AI 生成、且已经跑通的代码,越看越心惊。冷静下来复盘:一部分不能全怪 AI——我的 design 本来就没说清楚;另一部分确实是 AI 的锅。结论很简单:想把 AI 的改动用到产品线上,你必须收紧缰绳,用"人机接力"的流程,主要功能代码逐行看、验收测试亲自做。因为 AI 不会替你背锅,为最终结果负责的人是你。


Continue reading

Headroom 和 Ponytail:给 AI 编程的 Token 账单拧上两个阀门

Posted on 五 03 7月 2026 in Tech • Tagged with ai, token, cost, headroom, ponytail, agents, context, productivity

用 AI 写代码,token 烧钱的地方无非三处:模型读进去多少、写出多少代码、回话多啰嗦。Headroom 管"读进去",靠压缩上下文;Ponytail 管"写出来",靠逼着 agent 少写代码。这篇讲清楚这两个开源工具各自怎么做、在你的项目里怎么装怎么用,也把厂商不爱说的坑一并摊开:真实场景省的往往没广告那么多。


Continue reading

什么样的技术书籍才值得一读再读

Posted on 四 02 7月 2026 in Tech • Tagged with books, reading, engineering, career, learning note

框架每年换一茬,但有些技术书十年后翻开还是有用。这篇聊聊我书架上被翻烂、后来又买了第二本的那几本经久耐看的技术书——《数据密集型应用系统设计》《性能之巅》《UNIX 编程艺术》之类——以及为什么它们比追新更值得花时间。


Continue reading

AI 写的代码:华丽袍子下面,也可能都是虱子

Posted on 三 01 7月 2026 in Journal • Tagged with ai, coding, golang, harness, software-engineering, code-review, maintainability

最近一个 Golang 新项目让我重新认识了 AI 编程:顶流大模型加各种 harness,仍会写出看起来漂亮、跑起来似乎也没问题、但可读性和可维护性不尽如人意的代码。带 AI 就像带一个刚毕业的博士生——它懂得多,却不知道什么最适合你的产品、环境、业务和那座“屎山”。上岗必须备齐指导手册、设计与代码规范、架构原则、编码规范、验收清单,一个都不能少。


Continue reading

超级个体真有那么神吗

Posted on 二 30 6月 2026 in Tech • Tagged with AI, super-individual, polymath, full-stack, learning, engineering, career

AI 能让一个人像一支小队,但不能让一个人逃掉工程责任。真正的超级个体,不是炫耀百家招式,而是持续交付有价值的产品,满足用户需求,创造真实价值。


Continue reading

生锈的知识,还能不能重新上场?

Posted on 二 30 6月 2026 in Tech • Tagged with AI, C++, audio-video, learning, knowledge-management, engineering

长久不用的知识会不会生锈?会。但真正危险的不是忘了细节,而是把生锈的手感误认为仍在巅峰。以大型 C++ 和 Audio/Video 项目为例,聊聊怎样让知识重新招之即来、来之能战。


Continue reading

临床八年制女生,接下来七年怎么学习和科研

Posted on 一 29 6月 2026 in Journal • Tagged with AI, clinical-medicine, healthcare, methodology, learning

写给临床八年制本博连读、即将结束大一的医学女生:未来七年不要急着追工具、追热点、追论文,而要按阶段搭好医学基本功、临床思维、科研训练、数据工具箱和长期身心节奏。


Continue reading