いわゆるスニペットに関するポエポエポエム.

エンジニアは同じコードを2度と書くな

なんてことをたまに聞くが,

実際一度書いた汎用的なコードはストックしておいて容易に取り出せるようにしておくべき.

いわゆるスニペットというやつ.

ただあまり意識的に構築したプログラムを技術資産としてストックして来なかったので,

というかストックはしていたけど, 置き場がまばらになっている状態で,

情報量が少ない現状でも引っ張ってくるのに手間取るし(どこに置いたっけ?Github?ブログ?みたいな),

ちょっと良くないなぁと思ってベストプラクティスを考える意味でこのポエム書いてる.

まずは, 選択肢.

1. エディタのスニペット機能を使う

古き良き( エディタ論争に巻き込まれたくないので保険かけとく )エディタとかは良くわからないけど,

少なくてもAtomとかVSCodeとかSublimeとかの最近人気のあるようなエディタでは当たり前のようにスニペット機能を提供しているので,

これらの機能を使う.

良い点は, エディタ標準の機能なので呼び出しが高速である点.

逆に悪い点としては,

キーを覚えていないといけないのでかなり高頻度で使うような構文を置いておくのには適してるが,

特に意識せずに汎用的なものを置きまくってくと書いた記憶はあるけどキーを覚えてないっという状態になっていしまう点(結局設定ファイル見に行くことがしばしば…).

あと, そのエディタでしか使えないっていうのも大きい.

現状でもAtomとVSCodeと, 言語によってはInteriJ等のIDEを併用しているし.

とはいえよく使う言語に関してはエディタは統一されているだろうしあまり困らない気もする.

2. Bash

スクリプトを置くディレクトリを決めておき, 自作コマンド等で呼び出す.

利点は,

テンプレート的な再利用がしやすい点(create-react-appみたいなイメージ)で, 自動化に優れている点.

デメリットは挿入が難しい(sed使いこなせばそうでもないか?)点と, 置いたテンプレートの探索が大変な点.

ある程度は工夫でなんとかなるけどやっぱり探すのが大変になるのは目に見えてる.

3. Boostnote

Boostnote はMarkdownでかけるメモアプリ.

利点は,

検索が強力な点.

特にキーやパスを指定をする必要がないので, ググるイメージでスクリプトにたどり着ける

あととにかく汎用的.

前者2つは適当に運用してくと管理しきれなくなる気がするけど, Boostnoteならたぶん大丈夫(やっぱ検索あるのが大きいか.)

結論

て感じなので,

  • 超高頻度に使うものに関してはエディタのスニペット機構を使う
  • 他は脳死でBoostnoteに置いていってあげる(一応検索しやすいような補足を書いておくことは忘れずに)
  • 自動化等はシェルスクリプトを書き, 個別にBoostnoteから拾ってきたテンプレートを置いてあげれば良い(ただこれだとソースが一元化できてないから変更に弱いのが不満ではある)

うん. なんかふつーの結論になった.

まあそういう感じでやっていくことにします.