実装言語を選ぶ前に環境前提を確認する#
実装言語やランタイムを決める際、前提となる CLI やライブラリがターゲット環境に存在することを事前確認する(preflight check)。「いつもの環境にはあるから」という感覚で選ぶと詰む。
具体例#
SQLite を扱う CLI を Bash で書く計画を立てたが、Windows Git Bash には sqlite3 コマンドが入っていなかった。Python 3 標準ライブラリの sqlite3 モジュール(FTS5 付き)に切り替えて回避した。
学び#
- ユーザーの「◯◯ でいい」発言は前提条件付き。前提が崩れたら再確認の権利がある
- Python 標準ライブラリは SQLite + FTS5 を追加インストールなしで提供する。クロスプラットフォーム CLI の選択肢として有力
- 副次効果として、Bash 特有の引用符・特殊文字問題が構造的に消えるケースもある
参考ソース#
- https://www.replicated.com/blog/the-value-of-preflight-checks-for-software-installation/
- https://www.cloudbees.com/blog/when-preflight-good-idea