LoginSignup
10
11

More than 5 years have passed since last update.

MacでGolangのローカル開発環境(IntelliJ対応)をなるはやで作る

Last updated at Posted at 2016-07-23

コンセプト

  • とりあえず、MacでGoやってみたい人のために、できるだけ最短に
  • 自分もまだ始めたばかり・・・

ダウンロード

  • ここからGolangのpkgファイルをダウンロード
  • pkgファイルを開いてGolangの環境をインストール

環境変数設定

~/.bash_profileに以下を追加

export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=~/go-workspace

ワークスペースを作る。このディレクトリがソースファイルなどの置き場となる。場所は任意で良いが、GOPATH環境変数と合わせる必要がある。

$ mkdir ~/go-workspace

編集した.bash_profileを読んでおく

$ source ~/.bash_profile

お約束のHello, World実行

$ mkdir ~/go-workspace/src
$ mkdir ~/go-workspace/src/example.jp
$ mkdir ~/go-workspace/src/example.jp/sample1
  • example.jpの部分は本来は運営するサイトドメイン名などを入れますが
  • とりあえず今回はサンプルということでこれで
  • sample1以下にhello.goというファイルを作る。
hello.go
package main

import "fmt"

func main() {
    fmt.Print("「ザ・ワールド!」ッ!時よ止まれ!\n")
}

コンパイル&インストール

$ go install example.jp/sample1

~/go-workspace/bin/sample1 という実行ファイルができる。

実行

$ ~/go-workspace/bin/sample1
「ザ・ワールド!」ッ!時よ止まれ!

あれ?Hello, Worldじゃない。ま、いいか。

つまり、こういう流れ。

  • ~go-workspace/src/ドメイン名/プロジェクト名/に、ソースファイルを置く
  • go install ドメイン名/プロジェクト名/で、コンパイル
  • ~go-workspace/bin/プロジェクト名(実行ファイル)が作られる

HTTPサーバーを起動する

先ほどのhello.goを修正

hello.go
package main

import (
    "fmt"
    "net/http"
)

func handler(writer http.ResponseWriter, request *http.Request) {
    fmt.Fprintf(writer, "「ザ・ワールド!」ッ!時よ止まれ!\n")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}
  • さっきと同じくgo installして、sample1を実行
  • ブラウザで http://localhost:8080/ へアクセス
  • 「ザ・ワールド!」ッ!時よ止まれ!が表示される

めちゃ簡単です。
とはいえ、本格的な開発にはフレームワークがあったほうがいい。自分はメジャーどころのGinってフレームワーク使ってます。

Ginの説明は、ここではしません。なるはやなので。

IntelliJをインストール

  • いちいちコマンドラインでやるのは面倒なのでIDEを使う
  • IntelliJ + golang pluginが良いみたいです
  • IntelliJを以下からダウンロードしてインストール

Golangプラグインをインストール

go02.png

go03.png

インデント調整

プロジェクトを作る

  • メニュー > File > New > Project
  • Goを選択してNext
  • ProjectのSDKを選択してNext。おそらくGo 1.6など一択
  • プロジェクトの情報を入力してFinish
    • Project Name: sample2
    • Project Location: ~/go-workspace/src/ドメイン名/sample2
    • ここ重要。$GOPATH/src/ドメイン名/に配置しておくとIntelliJからの実行がすんなりいきます
    • その他、サーバーへデプロイするときなども含めて、$GOPATH/src/ドメイン名/パッケージ名/の下にソースファイルを置くのが無難です。それ以外でやるとトラブルの元。
  • プロジェクトが開く

サンプルコード

  • プロジェクトツリーのルートを選択

01.png

  • メニュー > New > File > Go File
  • ダイアログにhello.goと入力してOK
  • hello.goの内容は、今度こそHello, Worldにしてみる。
hello.go
package main

import (
    "fmt"
    "net/http"
)

func handler(writer http.ResponseWriter, request *http.Request) {
    fmt.Fprintf(writer, "Hello, World.\n")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

実行

  • メニュー > Run > Edit Configurations
  • +ボタンを押してGo Applicationを選択
  • 以下のように入力してOKを押す

02.png

  • RunKind: File
  • File: hello.goへの絶対パス
  • Working Directory: hello.goがあるフォルダ。つまりパッケージフォルダ。

これで動く準備が整いました。

03.png

ブレークポイントを貼ってデバッグ実行すれば、きちんとそこで止まります。

04.png

これでサクサクコード書いてトライ&エラーできるね\(^o^)/
あと、やっぱりサーバーサイドも静的型付け言語がいい!

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11