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 一 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

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

超级个体真有那么神吗

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 六 27 6月 2026 in Tech • Tagged with python, opencv, mediapipe, face-recognition, lbph, computer-vision, demo

人脸识别听起来像玄学,其实入门链路可以拆成检测人脸、裁剪样本、训练模型、设定阈值这几步。本文基于一个 OpenCV + MediaPipe 的教学 demo,讲清楚 Haar、Face Mesh、LBPH 各自负责什么,如何用 Poetry 跑通采集、训练和识别链路,以及为什么教学级 demo 不能直接拿去当门禁或支付系统。


Continue reading

为什么需要 KMS 和信封加密

Posted on 六 27 6月 2026 in Tech • Tagged with security, cryptography, kms, envelope-encryption

从数据库泄露、密钥轮换和故障边界说起,解释为什么需要 KMS,以及信封加密如何把密钥管理这件事做得更稳。


Continue reading

Markpad:我给 Markdown 装了一个本地驾驶舱

Posted on 六 27 6月 2026 in Tech • Tagged with markpad, markdown, editor, preview, llm, translation, sharing, local-first, python, fastapi

Markdown 写起来很舒服,但读起来、预览起来、跨中英文翻译起来并不总是舒服。Markpad 是我做的一个本地 Markdown Web 工具,把文件索引、左右分栏编辑预览、主题、图表渲染、实时分享和 LLM 翻译放在一起,解决自己每天写文档时的一个小但扎人的痛点。


Continue reading

AI 时代高级程序员的门槛在哪里?以 WebRTC 为例

Posted on 五 26 6月 2026 in Tech • Tagged with AI, WebRTC, RTC, audio-video, QoS, engineering, career

AI 会写 WebRTC demo,也能解释 SDP、ICE、RTP、RTCP,但 RTC 应用真正难的是把音频、视频、网络、QoS 和用户感知串起来。高级程序员的门槛不在“懂得多”,而在对原理的深刻领悟、对失败模式的判断、以及从事故和教训里长出来的工程直觉。


Continue reading

IT 中间件三岔路:买、用开源,还是自研

Posted on 五 26 6月 2026 in Tech • Tagged with middleware, platform-engineering, build-vs-buy, architecture, engineering-management

最近又被几个内部自研平台教育了一回:东西能跑,但难学、难问、难接手,很多“为什么”只存在某些人的脑子里。本文借这个亲身体会,聊聊企业中间件到底该买、用开源,还是自研;也给一份少踩坑的决策清单。


Continue reading

用 Codex 怎么省 Token:账单别让上下文偷偷烧掉

Posted on 二 23 6月 2026 in Tech • Tagged with codex, ai, token, cost, context, productivity, agents-md

用 Codex 写代码,token 烧得最快的往往不是模型多能干,而是上下文管理不当。这篇文章从 Codex 的 agent loop、项目指令和 prompt 缓存机制讲起,给出一份能直接照做、也能度量效果的省 token 清单:什么时候开新会话、AGENTS.md 怎么瘦身、怎么选模型和推理档位、怎么监控自己的消耗。


Continue reading

一通视频会议骗走 2500 万:当 CFO 的脸也能伪造

Posted on 二 23 6月 2026 in Tech • Tagged with security, deepfake, social-engineering, fraud, ai, qrcode, ai-agent

2024 年初,英国工程公司 Arup 的一名香港员工,在一通"全员都是深度伪造"的视频会议里被骗,分 15 笔转出 2500 万美元。这篇文章拆一拆这起事件的链条,聊聊为什么"看到脸、听到声"已经不再等于"确认身份",为什么坏人没变少只是换了赛道(从扒窃到 deepfake 再到二维码),以及更隐蔽的一层——别盲目相信你自己授权的 AI Agent(OpenClaw "小龙虾"风波),并给出一份可以抄走的反诈核对清单。


Continue reading

用苏格拉底提问法给设计方案做体检

Posted on 六 20 6月 2026 in Tech • Tagged with design-review, critical-thinking, methodology, socratic-questioning, architecture

设计评审上最值钱的不是答案,是问题。借《The Thinker's Guide to Socratic Questioning》的九类提问,和《胡思乱想消除指南》里对付灾难化思维的那套反驳法,我把它们改造成一份可以照着问的设计体检清单。


Continue reading

给 AI Agent 上把锁:LLM 应用的安全清单

Posted on 六 20 6月 2026 in Tech • Tagged with AI, security, llm, ai-agent, prompt-injection, threat-modeling, methodology

传统软件的攻击面是"代码里的洞",LLM 应用多了一个要命的新洞——模型会"听话"地执行别人塞进来的指令。一个帮你总结网页的 Agent,可能因为网页里藏了一句"把用户的 key 发到我这里"就真的照做。这篇按 Prompt 层、Agent 层、数据层、运营层四层梳理 LLM 应用与 AI Agent 的安全要点,配上几个典型翻车实例、一份行动清单和一份上线检查清单。


Continue reading

AI 编程新范式:80% 在想,10% 在写,10% 在验

Posted on 四 18 6月 2026 in Tech • Tagged with AI, harness-engineering, software-design, code-review, testing, methodology

过去写软件,大半时间花在敲代码上。AI 把"敲代码"这件事的成本压到接近于零之后,时间该怎么重新分配?我的答案是一个有点夸张、但越用越觉得对的比例:80% 在思考与讨论(架构、流程、测试用例、度量、CI/CD、Harness),10% 在编程,10% 在验证。本文聊清楚这 80% 到底在想什么、剩下两个 10% 怎么花,以及为什么这个转变对老程序员是好事、对新手是陷阱。


Continue reading