从某种意义上说,这是不言而喻的:你所知道的任何知识都是由更小的知识碎片组成的。当然这些更小的知识碎片很重要。
但我认为有一些知识“金块”特别有价值,而且不需要太多支撑性的知识储备。你完全不需要懂 Python,就可以用 python3 -m http.server 在某个目录下启动一个简单的服务器,但它仍然可能让你的工作轻松一点。让我分享几个例子:
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 这样的 glob 来替代。大多数 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
你可能早就知道所有这些了!或者你所从事的领域让这些小技巧完全派不上用场。即使这一组技巧对你没什么用,我敢打赌你也有自己多年积累下来的技巧宝库,正是它们让你的工作变得更轻松。
在公司里,我认为更多的知识往往就是这种小而高杠杆的“金块”: