UbuntuでGo開発環境(GoLand)構築

こんばんわ、daihaseです。
今日はGoの開発環境構築を。前にUbuntuで使用するためのインストールを含んだ初期設定的な記事を書いてますので、PATH等はそちらを参考に設定してみてください。

[Ubuntu16.04にGolangをインストール]

今日はインストール後の、IDEを使った簡単な動作確認までをご紹介します。

Golangの開発自体はAtomでも、それこそ渋くvim-goなんかでやってもいいのですが、ちょうどJetBrains社さんが素敵な開発環境をご用意してくれてるのでこちらを使いましょう。

なにやらカッコいい雰囲気ですね。こちらからダウンロード出来るのでまずは落としてみましょう。
(※ちなみにJetBrainsさんとこのIDEは全て有償ですが、十分元が取れるくらい素晴らしいIDE達なので遠慮無く買ってしまいましょう)

ダウンロードするのはUbuntuなのでtarファイル。
過去記事のこちらを参考にランチャー登録まですることをオススメします。

インストールが終わったら早速起動してみましょう。

プロジェクトの作成

GoLandを立ち上げたら早速プロジェクトを作成します。
「New Project」を選択し、ここでは GoSample とプロジェクト名をつけます。

プロジェクトを作成したらIDEの最低限の設定だけとりあえずしておきましょう。
File -> Settings を選択、以下のような画面が出るのでGoの設定項目のGOROOTとGOPATHをセットしておきます。

GOROOTは最初から設定済みにはなっていると思います(Goを最初にインストールした場所を参照:筆者はGo1.9.2)

GOPATHの方ですが、Global GOPATHProject GOPATHがあります。 Globalの方はGoをインストールした場所を、Projectの方はこのGoSampleが作成されたパスを指定しておけば問題ありません。

こんな感じに設定出来たら「OK」を押して完了します。

実行ファイルの作成

それでは一番簡単なhttpサーバーとして起動させるサンプルコードを書いてみます。
画面左側の「GoSample」プロジェクトを右クリックし、New -> Go Fileを選択し適当なgoファイルを作成します。ファイル名はここでは server.go としました。

やってる内容は関数HandleFuncで関数helloと関数byeをハンドラに変換し、DefaultServeMuxへ登録しています。 これによって /hello , /bye それぞれのリクエストに対してハンドラが適切なレスポンスを返してくれるようになります。

それでは確認するために早速このファイルをもってしてサーバーを起動させてみます。 その前にIDE側の最後の設定があるので見てみましょう。

アプリケーションの実行

GoLandの右上▼ボタンがあるのがわかりますでしょうか。こちらをクリックすると「Edit Configurations…」というのが表示されます。

ポップアップが表示されるので、以下のように設定してみてください。
左側「+」ボタンでGo Applicationを選択し、 NameをGoSampleとします。(実際これは実行名としてのNameなのでGoとかでも何でもOKです)

Fileの部分が起動ファイルの選択となるのでmain()のある、この作ったserver.goを指定します。

それでは「OK」を押して、終了させます。
問題なければ先ほどの▼の横に、緑色の実行ボタンが表示されるようになったと思いますので、そちらを押して実行してみましょう。

実行後、ブラウザで「http://localhost:8080/hello」 「http://localhost:8080/bye」 それぞれ入力してみてください。 ちゃんと別々の関数結果が返ってきてると思います。

おわりに

どうでしょう、IDEなので今回はローカルで実行のみでしたが、直接サーバー側につないで作ったファイルをデプロイしたり、gitと連携したり、と色々出来ます。

つい最近までGoLandはGoglandという名前で した。最近名前がFixしたばかりで、しかもまだEAP版なので今後期待出来る開発環境かと思います。 Go自体PHPとかに比べるとまだそこまで現場で使われていません(それでも早い企業はもう2年くらい前から本番稼働させていたり…)

今のうちに色々触って慣れておくといいかと思います。 僕もちょうど2年くらい前に知り合いに「Goきてるよ」なんて言われ触るようになりましたし。

それでは良い開発ライフを〜

スポンサーリンク
336 x 280 レクタングル(大)
336 x 280 レクタングル(大)