小さなプログラミングトリックが生産性を左右する
원제: Small programming tricks
왜 중요한가
個人の生産性向上に直結する実践的なツール・コマンド知識は、チーム全体のエンジニアリング効率にも波及する。
エンジニアリングの生産性は、fzf によるファジー検索、git pickaxe、正規表現の \b アサション、Node.js の https.Agent による接続維持など、小さな知識の積み重ねによって大きく変わると、エンジニアの Will Keleher 氏が自身のブログで指摘した。
Will Keleher 氏は個人ブログで、日々の開発生産性を高める実用的なコマンドやツールをまとめた。
主なポイントは以下の通り。
**シェル・履歴管理**: fzf を導入すると Ctrl+R がファジー検索になる。さらに atuin はシェル履歴を SQLite データベースに置き換え、per-directory-history はディレクトリ単位の履歴検索を可能にする。
**SQL**: FROM 句なしで SELECT を実行でき、関数の動作確認に役立つ。PostgreSQL と MySQL では EXPLAIN ANALYZE で実際にクエリを実行しながら詳細なパフォーマンス情報を取得できる。
**正規表現・メトリクス**: \b(単語境界アサーション)で単語の先頭・末尾を検索。対数(log10)を使ってメトリクスをバケット分類し、値の分布を把握する手法も紹介された。
**JavaScript/Node.js**: Array.flatMap、Object.entries、Promise.withResolvers などモダン JS の機能に加え、https.Agent を使って外部リソースへの接続を維持することでレイテンシを大幅に削減できると述べた。
**Git**: git log -S(pickaxe)で特定文字列の追加・削除コミットを追跡。git checkout - で直前の HEAD に戻れる。
**ファイル検索**: find の代わりに **/*.md のようなグロブパターン(bash では shopt -s globstar が必要)や ripgrep(rg)を推奨。
**zsh**: 高度な自動補完は初期設定では無効のため、compinit の明示的な設定が必要。
Keleher 氏は「会社内でも同様に、特定の問題のデバッグ方法や、詳しい人・ドキュメントの在り処といった小さな知識が高いレバレッジを持つ」と指摘した。