Golang/Ginフレームワークにairでホット再起動サポートを提供

793 ワード

Golangというコンパイル言語はRails/Pythonというスクリプト言語とは異なり、スクリプト言語はバックエンドとなり、構成やデータベースが変化しない限り、ソースコードが変更されると、最新のバックエンドサービスがすぐに有効になるのが一般的です.
しかし、Golangがバックエンドを行うには、コードを変更するたびに再コンパイルしてサービスを再起動する必要があります.しかし、コードを変更するたびに端末に切り替えてCtrl+Cを押すのも煩わしい.
私のようなコードを書くのがおっくうな怠け者にとって、偉大なGoogleはこれまで既成の案を持っていて、Macで直接次のコマンドでバックエンドディレクトリの下で実行しています.
$ curl -fLo ~/air \
    https://raw.githubusercontent.com/cosmtrek/air/master/bin/darwin/air

$ chmod +x ~/air

$ ./air

このように簡単で、FRPに合わせて、直接現地で開発し、フロントエンドで直接呼び出すことでアリクラウドの逆エージェントを通じて現地開発機にアクセスすることができる.
Golangソースコードが変更されると、airは自動的に再コンパイルして再起動し、超便利で、Ctrl+Cを押す必要はありません.
注意:airのこのような再コンパイルと再起動の方案は開発環境に適しており、生産環境の場合、Golang HTTPに基づく必要がある.shutdownスキームは、よりスマートなサブプロセス熱置換スキームを開発する.そうしないと、再起動の瞬間にユーザアクセス要求が失われる.
That's all, gopher! ;)