小さなプログラミングの知識が生産性を上げる
मूल शीर्षक: Small programming tricks
यह क्यों महत्वपूर्ण है
学習コストが低く即効性が高いツール知識の体系化は、チーム全体の開発効率向上に直結するため注目に値する。
エンジニアWill Keleherが、日常業務で役立つ小さなプログラミングの知識を紹介。fzfやatuin、git pickaxe、ripgrepなど、学習コストが低いのに効果が高いツールや技術を具体例とともで解説している。
Will Keleherは自身のブログで、エンジニアの生産性向上に寄与する「小さな知識の積み重ね」の重要性を論じた。
紹介されている具体的なヒントは多岐にわたる。ターミナル履歴検索では、標準のCtrl+Rをfzfでファジー検索に強化できる。さらにatuinを使えば、シェル履歴をSQLiteデータベースで管理・検索することが可能になる。
SQL面では、FROMなしでSELECTを実行する方法や、PostgreSQL・MySQLの「EXPLAIN ANALYZE」でクエリの実際のパフォーマンスを把握する手法を紹介。正規表現の「\b」(単語境界アサーション)を使った検索効率化、ログのメトリクスにlog10を適用した分布把握なども取り上げている。
JavaScriptではArray.flatMapやObject.entries、Promise.withResolversなどのモダンな機能、NodeJSでhttps.Agentを使って接続を再利用しレイテンシを大幅削減する方法を解説。Gitでは「git log -S」(git pickaxe)で特定の文字列が追加・削除されたコミットを追跡できること、「git checkout -」で直前のHEADに戻れることを紹介している。
また、findコマンドの多くは「**/*.md」のようなglobパターンで代替可能であること、grepよりrg(ripgrep)が実用的であること、zshの高度な自動補完はデフォルト無効で手動で有効化が必要なことも説明されている。
Keleherは「これらは大きな前提知識がなくても使える知識」と述べ、会社内でも「このバグにはこのデータソースを使え」「このエリアに詳しい人はXX」という形のノウハウが生産性を左右すると指摘している。