/home/by-natures/dev*

データ界隈で働くエンジニアとしての技術的なメモと、たまに普通の日記。

2018/10/31 ステージング・本番など実行環境によって変数設定する

昨日最寄駅で、地図の前で荷物を持ってうずくまっている、来日したばかりと見える外国人家族がいたので道案内をしました。そこの位置からだとホテルまでいくのが難しく、歩くと40分以上かかるし、ホテルの最寄り駅もそこからはうまくアクセスできないので、4人家族だったのでタクシーに乗ってもらったほうが良いと思ってタクシーを案内しました。ホテルへの辿り着き方を調べてこなかったのかもしれませんが、なんにせよ送り届けられて良かったです。

夫婦間でフランス語を話していたのでフランス人だったのかもしれません。大学でフランス語を勉強していた以来に生のフランス語が近くで聞けて少し嬉しかったです。

flags ライブラリに強制オプションはない

強制にしたいオプションがあったのですが、そういうオプションは flags にはない様子。どうせ引数チェックはするのだからそこで弾けば良いという回答ですが、その通りですね。

stackoverflow.com

ステージング・本番など実行環境によって定数を変えたい

環境変数にどの環境かを設定するか、Build Constraints という機能が使えるようです。

stackoverflow.com

ただ BuildConstraints はちょっと動作がわかりづらい気がしました。環境変数を読み込み、環境によって変数設定するのをパッケージ初期化時の init() メソッドで呼ぶ方が分かりやすいので今回はそのようにしました。上の質問者も Build Constraints ではなく、init() メソッドで環境変数を読み込む方法を取ったようです。