TIS ENGINEER NOTE

27才文系出身フリーランスエンジニアのブログ

プログラミング

Go言語のいい感じの開発環境を構築する

更新日:

今回はmacに、いい感じでバージョン&パッケージを管理できる開発環境を構築していこうと思います。

goenvの導入

まずはgolang自体のバージョンを管理するためのツールであるgolangを導入します。

goenvを通してgolangをインストールすることで、異なるバージョンを利用する必要がある時にスムーズに作業を継続できます。

基本的な使い方はrubyのrbenvや、pythonのpyenvと大差ありません。gvmというツールもあるのですが、個人的にrbenv,pyenvを使ってきたので、goenvを選択しました。

まずはbrewでgoenvをインストールします。

あとは環境変数にgo言語のコマンドを実行した時の利用先のパスを設定します。

.bash_profileを編集したら、以下のコマンドで変更を適用します。

Go言語のインストール

インストールしたgoenvを使用してGo言語をインストールします。

まずはインストールできるバージョンの確認。

ずらーっとバージョンが並びます。今回は記事作成時点で最新の1.9をインストールします。

インストールしたGo言語を有効化するために以下のコマンドを実行します。

無事Go言語がインストールされたかを確認してみましょう。

goenvでインストールしたバージョンが表示されていたら、Go言語までインストール完了となります。

direnvの導入

ここまででGo言語自体はインストールでき、開発可能な状態にはなりました。

しかし開発を行なっていると、特に複数プロジェクトに手をつけている場合においては、プロジェクトごとにインストールするパッケージをしっかりと分けて管理したいところ。

しかしGo言語ではGOPATHという環境変数に設定されたパスにどんどんパッケージが追加されていく仕様となっております。つまり上記を実現させるためには作業しているプロジェクトごとにGOPATHを切り替える必要が出てくるわけです。

これを手動でやっていたら、作業効率ガタ落ちですよね。その環境変数の切り替えを自動で実施してくれるのがdirenvというツールになります。

以下のコマンドでインストール。

次にbash_profileに設定を追加します。EDITORはdirenvの設定ファイルを編集するときに起動されるエディターです。お好みで変更してもOKです。

設定が完了したら、実際に作業ディレクトリに移動して、direnvの設定ファイルを作成します。

まずは適当に作業ディレクトリを作業して、そのディレクトリに移動します。

そしてdirenvの設定ファイルを作成するために以下のコマンドを打ちます。

するとエディターが立ち上がって設定を追加できるようになります。以下の内容を入力して、保存します。

そうすると、現在いるディレクトリに

.envrcというファイルが新規作成できております。ここに記載した環境変数がそのディレクトリに移動した際に読み込まれるようになるわけです。めっちゃ便利。

vendoringについて

Go1.6からは依存パッケージを分けて管理することのできるVendoringが標準で適用されるようになりました。

もしGo1.5以下で環境構築する必要がある場合、以下のような環境変数を設定する必要があります。

1.6以上であればスキップしてOKです。

glideの導入

残る課題はパッケージのインストール先とパッケージ管理です。

要するにRailsでいうGemfileで管理して、vendor配下にパッケージを配置するということをしたいわけです。

こんなわがままを実現してくれるのがglideというツールです。

なにはともあれインストール。

インストールが完了したら作業ディレクトリにて以下のコマンドを実行します。

途中でY or Nの選択肢は基本的にYでOKです。

Go言語のディレクトリ構成はプロジェクトディレクトリ配下にsrc/[アプリケーションディレクトリ]を作成し、そこに開発ソースを配置していくのが一般的な模様。glideの仕様上、[作業用ディレクトリ]/src/[アプリケーションディレクトリ]の構成を守らないと、上手くパッケージを読み込んでくれませんので、注意しましょう。

では実際にパッケージをインストール。今回は例としてWebフレームワークであるechoをインストールしてみます。

普通はgo getとやるところをglide getで実行します。

こちらも途中で選択肢が出てきますが、基本的にはM(minor)を選択しておけば問題ありません。

echoの動作確認のために、go-sample/src/myappにserver.goを作成し、以下のように記述します。echoのガイドを参考に進めています。

保存してサーバーを起動しようしたところ、エラーが発生しました。

色々調べてみると、glideでは依存パッケージが自動的にインストールされないケースがあるとかないとか・・・

というわけで先頭にあるcolorを手動でインストールします。

すると無事echoが起動されますので、ブラウザでhttp://localhost:1323/にアクセスしてみましょう。

Hello worldが表示されていれば構築完了です!

まとめ

まだまだデファクトスタンダードが存在していない状態ではありますが、今回構築した環境であれば、Railsにおけるbundleに近い感覚で使えるかと思います。

今回の記事がGoを初めてたいと考えている人のお役に立てば幸いです。

紹介した方法で上手く行かない際はTwitterかお問い合わせでお声かけいただければ、対応できる範囲でお応えいたしますので、どうぞお気軽に。

閲覧いただき、ありがとうございました。

よく読まれている記事

エンジニア入門

2018/8/19

プログラミング初心者にRubyを強くオススメする理由

こんにちは、フリーエンジニアのてぃすです。 プログラミングを始めようと思った時にまず立ちはだかるのが、 どのプログラミング言語を選択するか という問題です。 Googleで『プログラミング おすすめ』や『プログラミング 初心者』などと調べてみても、 オススメプログラミング言語○選といった類の記事やサイトばかりで 結局何を勉強すればいいの? となってしまっていることでしょう。 そこで今回は、現在プログラマーとして働いている私から、これからプログラムを勉強したいという方に向け、国産プログラミング言語であるRu ...

続きを読む

エンジニア入門

2018/3/26

エンジニアは勉強し続けなければいけない職業なのか

こんにちは。フリーランスエンジニアのてぃすです。 最近は就職・転職する際にエンジニアを選択肢に含める人が増えてきています。 しかしエンジニアという職業を候補にあげるにあたって、 エンジニアは働きながら勉強し続けなければいけないのではないか? という疑問もよく見聞きします。 そこで今回はフリーランスエンジニアとして活動している僕の視点からこの疑問についての答えを説明していこうと思います。 結論 先に結論を述べると、 エンジニアは勉強し続けなければいけないのか? という疑問の答えはNOです。 決してエンジニア ...

続きを読む

エンジニア独立

2018/1/17

自分の市場価値を把握しようとしないエンジニアは搾取される

こんにちは。フリーランスエンジニアのてぃすです。 エンジニア需要の高まり、待遇の向上からエンジニア・プログラマを目指す人が急増してきている昨今。 確かにエンジニアという職業はこれから高収入・柔軟な働き方を目指そうとした時に、最も適切な選択肢です。 そんな高収入かつ将来性のある職業であるエンジニアですが、自分のエンジニアとしての市場価値を知っておかないと、本来得られるはずの収入よりも少ない額で働くことになる可能性があります。それでも中小企業のサラリーマンよりは稼げますが。 今回は何故市場価値を把握しようとし ...

続きを読む

エンジニア入門

2018/12/30

DMM WEBCAMP(旧:WEBCAMP PRO) - エンジニアとして働きたい人のためのプログラミングスクール

最近のプログラミングスクールは、就業サポート・業務で役立つ教育を掲げているところがかなり多くなってきました。というかこの2つを満たしていないスクールはもはや存在価値が薄くなってきています。 今回はその2本の柱を高いクオリティで実現している DMM WEBCAMP(旧:WEBCAMP PRO)について、現役プログラマの目線から紹介していこうと思います。 このDMM WEBCAMPは総合的に見て、本気でエンジニアを目指そうとする人にとって最有力候補と言えるレベルで非常に優秀なプログラミングスクールです。この根 ...

続きを読む

エンジニア独立

2018/1/27

エンジニア歴2年の僕がギークスジョブでフリーランスを目指してみた

ぼちぼちの偏差値の文系大学を卒業後、パッケージ運用系のIT企業に就職。9か月で退職。 その後特定派遣会社の正社員として働いてきた僕がなぜフリーランスを目指す気になったのか。 一番の理由はズバリ、お金が稼ぎたかったから。 正確にはもっと効率よくお金を稼ぎたかったからです。 こんな会社もう嫌だ・・・ 現在僕は正社員として2年以上継続して現場に赴き、プログラミングの業務に従事してきましたが、全く給料が上がらない。 ぶっちゃけると手取りが20万円に届かないレベル。ボーナスもお小遣い程度なので年収も悲惨。 給与明細 ...

続きを読む

-プログラミング
-,

Copyright© TIS ENGINEER NOTE , 2019 All Rights Reserved Powered by AFFINGER5.