背景と解決したい問題
Goの学習を進めるにあたり、簡易的なサンプルコードを書いて実行する、というサイクルを頻繁に回していました。
その際にいちいちエディタと実行するウィンドウを往復することになり、手数が増えて効率が落ちてしまっている実感がありました。
そこで、ファイルの更新を自動検知して自動でビルド&実行(ホットリロード)してくれる環境が欲しくなりました。
解決策
Go のツール、gohr
を使うことをおすすめします。
https://github.com/longtime1116/gohr
導入と利用
README.md に書いてある通り、以下のコマンドを実行します。
$ go get github.com/longtime1116/gohr
あとは、自分の開発しているワーキングディレクトリで gohr
コマンドを実行すればOK。第一引数に出力ファイル名を指定します。
$ gohr main
おまけ
このようなツールを使わなくても watch コマンドを使うと擬似的に同じような機能を実現できます。
状況に関係なく使える技なので、覚えておくと便利かもしれません。
# 1秒ごとにコマンドを繰り返す。
$ watch -n1 <コマンド>
(例えば↑で watch -n1 go run main.go
とかやっておけば1秒おきに実行してくれる)