“工程生产力中惊人的一部分,来自小小的知识碎片。”工程师 Will Keleher 这篇博客文章没有谈论任何宏大架构,只是细数日常开发中那些高杠杆的小技巧,却意外登上 Hacker News 热榜前三(361 赞 / 177 评论),引发了一场关于”知识复利”的大讨论。
碎片知识的价值
作者的论点很朴素:你知道的任何技能都由小知识碎片组成,而有些碎片格外值钱——它们不需要庞大的心智基础设施就能用。你不需要懂 Python 就能用 python3 -m http.server 起个临时服务器;知道莫名的 TCP 延迟大概率与 Nagle 算法和 TCP_NODELAY 有关,可能帮你省下一下午的抓包时间;关键时刻一句对的 git 咒语能救命。
原文技巧精选
终端效率:Ctrl+R 可以搜索历史命令,装上 fzf 后变成模糊搜索;atuin 把 shell 历史变成可检索的 SQLite 数据库;per-directory-history 支持按目录切换历史。bash 用户需要 shopt -s globstar 才能用 **/*.md 这样的递归通配,很多 find 命令其实可以被它替代;搜内容优先用 ripgrep 而不是 grep/ack/ag。zsh 的高级自动补全默认没开,需要手动 compinit。
数据库与正则:SELECT 可以不写 FROM,用来快速试函数行为;PostgreSQL 和 MySQL 的 EXPLAIN ANALYZE 会真实执行查询并给出详尽性能数据;正则里的 \b 词边界断言能精确匹配词首词尾。
JS 与 git:现代 JS 已内置 Array.flatMap、Object.entries、Promise.withResolvers;NodeJS 里给 fetch 传一个 https.Agent 保持连接复用,对延迟影响巨大。git log -S 关键词(”pickaxe”)能找出所有添加或删除某字符串的提交,老代码库考古神器;git checkout – 可以切回上一个分支,就像 cd -。
指标小技巧:对分布跨度大的指标用对数分桶——Math.floor(Math.log10(x)) 作为 bucket,一行代码看清数量级分布。
公司里的”部落知识”
作者进一步指出,公司里的高杠杆知识往往也是这种碎片:”调这个问题用那个数据源””某人对某领域特别熟,卡住就找他””某告警出现就该手动扩容”。他在前东家坚持每天给工程团队发一条小技巧——技术上和公司特有的都有。即使十条里九条你都知道,第十条可能就省了半小时;一天一条不会信息过载,还常常引发有用讨论。他把这个做法归功于 Julia Evans 的博客:”小知识碎片是强大的!有趣的!平易近人的!!”
社区反响
评论区最有意思的分歧出现在 AI 时代语境下。一位学术界的读者感慨:现在还有多少人手写代码?他身边已经没人”编程”了,只剩下无尽的 agent 编排任务——乐趣没了,但效率或许更高。也有人挑刺:这些大多是 bash/zsh 命令行技巧而非”编程技巧”,标题该改。高赞回复点出了分享的两难:你知道的东西对你显得显而易见,很难判断别人是否不知道——这正是”知识的诅咒”。有人提议做个工具自动体检终端配置并应用这些技巧;也有人现身说法,晒出了自己为此写的 zhist 项目。当然也有唱反调的:”如果同事每天在 Slack 发技巧,我会烦,但不好意思说。”
一点观察
这篇文章的走红恰逢其时。当 AI 编程助手接管了越来越多的”显式知识”,真正区分工程师效率的,反而是这些难以被索引的隐性碎片——哪些工具存在、哪个参数救命、哪个同事懂哪块。AI 或许能回答”怎么用这个命令”,但前提是你得知道该问什么。个人的技巧库和团队的”每日一条”机制,本质都是在对抗知识获取的冷启动问题。在 agent 时代,这类部落知识不会贬值,只会换了分发方式。
原文链接:Small Programming Tricks
HN 讨论:https://news.ycombinator.com/item?id=49729000(361 赞 / 177 评论)