👌

初心者情シスがGoの勉強を始めてみました(環境構築編)

2022/01/14に公開

tl;dr

  • 社内のとあるツールを整備するのにGoで書かれていることがわかった
  • 社内にGo言語に明るい先生が多く、わからないところは聞きやすそう
  • 久々にプログラミング言語を体系立てて勉強する機会がやってきた!

自分のスペック

  • 今までやってたこと
    • 24*365で稼働するシステム運用保守を10数年間
    • 運用保守業務のプロセス設計、プロジェクトマネジメント
    • 社内業務の生産性向上のための各種ツール作成
  • プログラミングスキル:総じてジュニア
    • Linuxのコマンドを叩いたり、bashを書く程度
    • Javaも処理フローが読める程度
    • GASはUbie入社してから開発・メンテナンスを手がける(3ヶ月くらい)
  • インフラスキル:省略

何から始めたの?

というのもわからなかったので、先生に聞いたら「みんGOでしょ、第2版いいよ!」ということだったので早速Get.
本に沿って、環境構築からスタート!
https://www.amazon.co.jp/改訂2版-みんなのGo言語-松木-雅幸/dp/4297107279

環境構築

Goのインストール

  • brew install go コマンドを実行
    • brewはすでにインストール済みだったので、幸先の良いスタート
    • 10分くらいで完了
    • which go でコマンド返ってきた
  • PATHを通す
    • GOPATHっていうのがある模様
    • M1 macだからか、教科書とちょっと違うpathだけど、気にせず進んでみよう
    • /opt/homebrew/Cellar/go/1.17.5/libexec/bin
  • パッケージインストール
    • goreっていうツールをインストールするらしい
    • ダメそう
    go get: github.com/motemen/gore@v0.5.3: parsing go.mod:
    	module declares its path as: github.com/x-motemen/gore
    		but was required as: github.com/motemen/gore
    
    • なるほど、x-motemenに変わってた模様、そっちでインストール
    • できたけれど非推奨らしい。自分は1.17だったので警告が出たのか
    go get: installing executables with 'go get' in module mode is deprecated.
    	Use 'go install pkg@version' instead.
    	For more information, see https://golang.org/doc/go-get-install-deprecation
    	or run 'go help get' or 'go help install'.
    

Goをお試ししてみよう

  • goreでHello Worldをやってみる
    • 早速対話型になった!
    moritatakahiro@MacBook-Pro-tamosan ~ % gore -autoimport
    gore version 0.5.3  :help for help
    gore> 
    
    • 叩いてみる、がWarning出る
    gore> fmt.Println("Hello World")
    warning: GOPATH set to GOROOT (/opt/homebrew/Cellar/go/1.17.5/libexec) has no effect
    Hello World
    12
    nil
    gore> 
    
  • 終了してみる
    • quitやexitを試したが違う、^Dとのこと(親切
    gore> quit
    warning: GOPATH set to GOROOT (/opt/homebrew/Cellar/go/1.17.5/libexec) has no effect
    undefined: quit
    gore> exit
    warning: GOPATH set to GOROOT (/opt/homebrew/Cellar/go/1.17.5/libexec) has no effect
    undefined: exit
    gore> ^C
    (^D to quit)
    gore> %
    moritatakahiro@MacBook-Pro-tamosan ~ % 
    

ところでwarningは一体?

  • 最初のPATH設定をミスしていた
    • 正:export GOPATH=$(go env GOPATH)
    • 誤:export GOPATH=$(go env GOROOT)

総括

  • 所要時間:30分
  • 環境構築は本の通りに進められれば初心者でもすんなり構築できそう
  • ただバージョン差異などで本と異なる環境になりうるので、少しでも気になったら調べると吉だった

追記

続きやろうと思ったら環境変数が消えているという凡ミスをしていた。
~/.zshrc に上書きして再発防止完了。

Discussion