toshiki

小さなトリックの積み重ねが実力になる — git log -S と EXPLAIN ANALYZE

· Will Keleher (Hacker News) #130

派手な技術より、fzf・git pickaxe・EXPLAIN ANALYZE・正規表現の\bのような小さな知識の蓄積が日々の生産性を作る。シニアが共有する文化を勧める記事。

  • #engineering
  • #productivity
  • #git
  • #sql
  • #shell

#なぜ今日これを選んだか

Hacker Newsで630ポイント超。内容は「小技12個」で地味だが、「1日1つ成長を残したい」という自分の欲求にそのまま刺さった。大きなフレームワークの習得ではなく、今日覚えた1コマンドが明日から効く。この粒度なら仕事の中で毎日拾える。

#要点

  • 効果的なエンジニアリングの多くは「小さな知識の粒(nuggets)」の積み重ねから来る。知っているかどうかで作業時間が桁で変わる
  • 具体例: git log -S "文字列"(pickaxe。その文字列を足した/消したコミットを探す)、git checkout -(直前のブランチに戻る)、EXPLAIN ANALYZE(SQLの実行計画と実測時間)、正規表現の \b(単語境界)、SELECT を FROM 無しで打って関数の挙動を確かめる、fzf/atuin での履歴検索、ripgrep
  • 対数バケット(Math.floor(Math.log10(x)))でメトリクスの分布を掴む、Node の https.Agent でコネクション再利用してレイテンシを削る、など言語・インフラ寄りの小技も
  • 結論は「シニアがチームに定期的に小技を共有する文化を作れ」。個人の生産性が組織の生産性になる

#自分にとっての示唆

先日の振り返りで「ドメイン知識の薄さ」を課題に挙げたが、この記事の言う小技もまた知識の一種で、拾い方は同じだ。差は「気づいた瞬間にメモに残すかどうか」。postmortem に「今日わかったこと(1行)」欄を作ってあるので、今日から小技を1行書く用途にも使う。今日の1つは git log -S。自分のSQLiteを集計するSQLを書く時は EXPLAIN ANALYZE(SQLiteなら EXPLAIN QUERY PLAN)を一度は付けてみる。手数の多さは短時間で見える差になる。月水金のRust30分の枠を増やす必要はなく、日々の作業の中で1つ拾えばいい。