From Tokyo, Japan. Web-Developer. Write some codes by Go/Scala And thanks everything around my self.

01.Go開発環境について(gosenbon-knock)

シリーズGosenbonKnockでは会社でGo入門用に起こしたテキストを適度にコピーして公開していきます。

今回は、Goを開発するにあたり注意すること、エディタ、IDEについて

はじめに

環境を構築しなくても、Goは最初のチュートリアルをオンラインで実行することが出来ます。

  1. https://tour.golang.org/welcome/1 
  2. A Tour of Goをめぐることにより、Goでのプログラミングを行うのに必要な知識は習得できるはずです。

 

※ A Tour of GoはGoの入門において必ずといっていいほど、「やるべき」といったコンテキストで語られますが、実のところ必須というわけではありません。

が、後述のPlaygroundの使い方に慣れる意味でも、一通り見るだけ見ても損はしないかもしれません。

     

     また、以下のサイトではコンソール出力を行う最低限のアプリケーションをオンラインでコンパイル・動作させることが出来ます。

    1. https://play.golang.org/
    2. https://goplay.space/

     

     

    Goで良いコードを書く上では、EffectiveGoを参照するのが良いようです。

    日本語訳もありますが、できれば英語で読んでみましょう。常に最新のはずですしね。

    さらに、Goを学ぶ上では、VOYAGE GROUPさんの資料が非常に有用です。

     

    インストール

    goのインストールは以下の方法があります

    • バイナリをダウンロード(https://golang.org/dl/)してパスの通った場所に置く 
    • ソースからコンパイルしてパスの通った場所に置く 
    • goにもいちおうrbenvなどのようなバージョンマネージャーが存在していますので、これを利用してインストール 

     

    環境変数「GOPATH」について

    開発にあたっては、「GOPATH」という環境変数を設定する必要があります。これは

    • import文の解決に利用される 
    • go get / go installしたバイナリのインストール先(${GOPATH}/bin)に利用される 
    • 開発するときには${GOPATH}/srcに配置する必要がある

    という理由からなっています。なお、場所については適当適切に決めてしまって問題はありません。

     

    大体は

    • windowsの場合:C:\go 
    • その他:${home}/go 

    と、することが多いように思いますが、Dockerを使った開発などを行うことが多い昨今ではこれらも確実なものではありません。みなさんが一番使いやすい形を編み出していってください。

     

    なお、前述の通り、

    • go get / go installしたバイナリのインストール先(${GOPATH}/bin)に利用される

    という動きになるので、環境変数「PATH」に${GOPATH}/binを含めておくようにしましょう。Goでインストールしたツールへの実行パスが通ります。

     

    パッケージマネージャーについて

     

     

    nodeで言うところnpm、phpで言うところのcomposer、Pythonで言うところのPip、Rubyで言うところのgem、Javaで言うところの・・・mavenとかあのへんのことですね。

    Goにおいても依存関係の解消のためのツールとして以下のものが存在しています

    ※ 2017年10月現在、最も利用されている依存関係ツールはglideだと思われますが、 glide公式からdepへの移行についてのアナウンスもあり、depに移行していくほうが良いかもしれません。

    glideのほうが現状まだまだ使いやすく、早くビルドできるようですが、今後のメインストリームはdepになっていくようですので、慣れておくのも一つの考え方としてはありだと思います。

    IDE/エディタについて

    IDEについては、通常IntelliJを利用して開発されている方は、JetBrainsからGoglandが提供されています(現在無料ベータ期間)

    また、Atom,SublimeText,VisualStudioCodeなどの開発者向けエディタについてもプラグイン等で対応されており、開発にあたってはいずれのエディタを選んでいても問題ないと思います。

     

    個人的にはVisualStudioCodeを利用しています。

    GoglandもIntellij製品に慣れているので使いやすかったのですが、OnSaveでのfmtには個人的にはgoreturnsを使いたいこと、同様にlintでgometalinterを使いたいという理由があってVisualStudioCode一択となりました。

     

    (VimとEmacsは知らない)

     

     

     

     

     

    おまけ

    Goインストール後にVSCで開発するためにインストールしたもの

     

     

     

     

    02.ハローワールドする(gosenbon-knock)

    LTLovers 2ndを開催しました