Hacker News 7小时前 · 2026-09-17 02:12:16 · 5 阅读
那些不起眼的编程小技巧
在日常工作中,工程师的生产力很大程度上来自一些零碎的小知识:知道某个语言特性存在;知道莫名的 tcp 延迟多半和 TCP_NO_DELAY 设置以及 Nagle 算法有关;知道该念哪句 git “咒语”才能摆脱困境;或者会用 sed 的某个技巧来改写文件。
从某种角度看,这是显而易见的:任何你懂的东西都是由更小的知识点组成的,这些小知识当然重要。
但我认为有些知识点特别有价值,而且不需要太多前置知识作支撑。比如你完全不需要会 Python,就能用 python3 -m http.server 在某个目录下启动一个简单的服务器,但它依然能让你的工作轻松一点。下面分享几个例子:
- 你可能知道
ctrl + r可以搜索终端的命令历史,但装上 fzf 之后,可以让ctrl + r做模糊搜索。想要更强大的功能,可以用 atuin 把 shell 历史替换成一个可搜索的 SQLite 数据库。per-directory-history 则可以让你在“搜索某个目录下执行过的命令”和“搜索全部历史命令”之间自由切换。另外,历史记录的保存条数也是可以配置的,参考这个 stackoverflow 问题。 SELECT可以不带FROM使用。这在测试数据库里某个函数的实际行为时很有用,或者帮你回忆SELECT TRUE <> NULL是怎么回事。1- PostgreSQL 和 MySQL 都支持
explain analyze,它会真正执行你要优化的查询,并给出远比普通 explain 丰富的性能信息。 - 正则表达式里的
\b,即单词边界断言(word boundary assertion),可以轻松匹配单词的开头或结尾。 - 你可以对指标使用对数,来感受你感兴趣的某个字段中数值的分布情况:
const bucket = Math.floor(Math.log10(userInGroupCount)) metrics.increment("my_metric", { bucket }); - 现代 JS 已支持 Array.flatMap、Object.entries 和 Promise.withResolvers。
- 在 NodeJS 中,你可以通过创建 https.Agent 并将其提供给 HTTP 请求来保持与外部资源的连接打开:
fetch(url, {method, agent})。这对延迟会有显著影响。 git log -S pattern("git pickaxe")可以列出所有在代码库中添加或移除了某个字符串的提交。它在处理较旧的代码库时尤其有用!(git log -G pattern功能类似,但还会显示该行被移动的情况)- 类似于
cd -,你可以使用git checkout -检出上一次的 HEAD。 - 你很可能不需要
find。许多find命令可以替换为像**/*.md这样的通配符。大多数 shell 默认支持此功能,但在使用 bash 时,你需要通过shopt -s globstar开启它。 - 沿此思路,大多数人可能更希望使用
rg(ripgrep)而不是grep、ack或ag。 - zsh 的高级自动补全功能默认未开启:
if type brew &>/dev/null; then FPATH="$(brew --prefix)/share/zsh/site-functions:${FPATH}" fi autoload -Uz compinit compinit
你可能已经知道所有这些内容!或者你所在的领域让这些小技巧完全派不上用场。即使这一组技巧对你没用,我敢打赌,你经过多年积累,也有一堆让自己工作更轻松的独门秘籍。
在职场中,我更倾向于认为高杠杆的知识点往往也是这种小巧灵活的“碎片”:
- 调试 $PROBLEM 问题时,使用 $DATA_SOURCE。
- $PERSON 对 $AREA 领域了解甚深,遇到困难时很乐意提供帮助。
- 关于 $HARD_THING,这里有份很棒的文档:$OVER_HERE。
- 一旦 $THING 发生,意味着我们需要手动扩容。
- 执行服务滚动重启时,运行 $THIS_COMMAND。
- 使用 $UTIL 可以轻松通过脚本解决 $THAT_PROBLEM。
在上一家公司,我每天都会向工程团队在 Slack 上分享一个技巧,既有技术类的,也有公司内部特有的。大家觉得这些技巧非常实用。即使你已经知道了其中九条,那剩下的第十条文档或技巧也可能为你节省宝贵的时间!每天分享一个技巧恰好能避免信息过载,偶尔还能引发有价值的讨论。如果你在公司属于资深工程师,不妨考虑尝试类似的做法。
-
我认为我最早在 Julia Evan’s blog 上看到这种技巧,我觉得她的文字往往能完美地概括本文的核心思想:“微小的知识很有力量!也很有趣!而且很容易入门!!” ↩︎
原始来源: Hacker News