ESC
科技 1 分钟阅读

一些编程小技巧

一篇开发者博客分享了一组实用编程小技巧:无需 Python 基础即可用 python3 -m http.server 起本地服务;现代 JS 的 Array.flatMap、Promise.withResolvers 等新特性;NodeJS 中用 https.Agent 复用连接降低延迟;git log -S 追踪代码历史;用 glob 替代 find;推荐 ripgrep;以及开启 zsh 高级

来源:Hacker News

从某种意义上说,这是不言而喻的:你所知道的任何知识都是由更小的知识碎片组成的。当然这些更小的知识碎片很重要。

但我认为有一些知识“金块”特别有价值,而且不需要太多支撑性的知识储备。你完全不需要懂 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

你可能早就知道所有这些了!或者你所从事的领域让这些小技巧完全派不上用场。即使这一组技巧对你没什么用,我敢打赌你也有自己多年积累下来的技巧宝库,正是它们让你的工作变得更轻松。

在公司里,我认为更多的知识往往就是这种小而高杠杆的“金块”: