序章

Go は、Googleの欲求不満から生まれたプログラミング言語です。 開発者は、効率的に実行されるがコンパイルに長い時間がかかる言語を選択するか、プログラミングが容易であるが本番環境で非効率的に実行される言語を選択する必要がありました。 Goは、高速コンパイル、プログラミングの容易さ、本番環境での効率的な実行という3つすべてを同時に利用できるように設計されています。

Goは、さまざまなプログラミングプロジェクトに使用できる汎用性の高いプログラミング言語ですが、ネットワーキング/分散システムプログラムに特に適しており、「クラウドの言語」としての評判を得ています。 これは、最新のプログラマーが強力なツールセットを使用してより多くのことを実行できるようにすること、フォーマットを言語仕様の一部にすることでフォーマットに関する議論を排除すること、および単一のバイナリにコンパイルすることでデプロイメントを容易にすることに焦点を当てています。 Goは非常に少数のキーワードで簡単に習得できるため、初心者にも経験豊富な開発者にも最適です。

このチュートリアルでは、ローカルのmacOSマシンにGoをインストールし、コマンドラインからプログラミングワークスペースを設定する方法について説明します。

前提条件

インターネットに接続された管理アクセス機能を備えたmacOSコンピュータが必要になります。

ステップ1—ターミナルを開く

インストールとセットアップのほとんどをコマンドラインで完了します。これは、コンピューターと対話するための非グラフィカルな方法です。 つまり、ボタンをクリックする代わりに、テキストを入力し、テキストを介してコンピューターからフィードバックを受け取ることになります。 シェルとも呼ばれるコマンドラインは、コンピューターで毎日実行するタスクの多くを変更および自動化するのに役立ち、ソフトウェア開発者にとって不可欠なツールです。

macOSターミナルは、コマンドラインインターフェイスにアクセスするために使用できるアプリケーションです。 他のアプリケーションと同様に、Finderに移動し、[アプリケーション]フォルダーに移動してから、[ユーティリティ]フォルダーに移動すると、アプリケーションを見つけることができます。 ここから、他のアプリケーションと同じようにターミナルをダブルクリックして開きます。 または、CMDおよびSPACEキーを押したままにしてSpotlightを使用し、表示されるボックスに入力してターミナルを見つけることもできます。

macOS Terminal

より強力なことを実行できるようにするために学習するターミナルコマンドは他にもたくさんあります。 記事「[Linuxターミナルの紹介]( ../an-introduction-to-the-linux-terminal )」は、より良い方向性を得ることができますMacOSターミナルに似たLinuxターミナルを使用します。

ターミナルを開いたので、Goをインストールするために必要な開発ツールのパッケージであるXcodeをダウンロードしてインストールできます。

ステップ2—Xcodeをインストールする

Xcodeは、macOS用のソフトウェア開発ツールで構成される統合開発環境(IDE)です。 ターミナルウィンドウに次のように入力すると、Xcodeがすでにインストールされているかどうかを確認できます。

  1. xcode-select -p

次の出力は、Xcodeがインストールされていることを意味します。

Output
/Library/Developer/CommandLineTools

エラーが発生した場合は、Webブラウザに[AppStoreのXcode]をインストールしてください( https://itunes.apple.com/us/app/xcode/id497799835?mt=12&ign-mpt=uo%3D2 )そしてデフォルトのオプションを受け入れます。

Xcodeがインストールされたら、ターミナルウィンドウに戻ります。 次に、Xcodeの個別のコマンドラインツールアプリをインストールする必要があります。これは、次のように入力することで実行できます。

  1. xcode-select --install

この時点で、Xcodeとそのコマンドラインツールアプリが完全にインストールされ、パッケージマネージャーHomebrewをインストールする準備が整いました。

ステップ3—自作のインストールと設定

macOSターミナルにはLinuxターミナルやその他のUnixシステムの多くの機能がありますが、ベストプラクティスに対応するパッケージマネージャーは付属していません。 パッケージマネージャーは、ソフトウェアの初期インストール、ソフトウェアのアップグレードと構成、および必要に応じたソフトウェアの削除を含むインストールプロセスを自動化するために機能するソフトウェアツールのコレクションです。 インストールを中央の場所に保持し、システム上のすべてのソフトウェアパッケージを一般的に使用される形式で維持できます。 Homebrew は、macOSへのソフトウェアのインストールを簡素化する無料のオープンソースソフトウェアパッケージ管理システムをmacOSに提供します。

Homebrewをインストールするには、ターミナルウィンドウに次のように入力します。

  1. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

HomebrewはRubyで作成されているため、コンピューターのRubyパスが変更されます。 curlコマンドは、指定されたURLからスクリプトをプルします。 このスクリプトは、それが何をするかを説明し、プロセスを一時停止して確認を求めます。 これにより、スクリプトがシステムに対して実行する内容について多くのフィードバックが得られ、プロセスを検証する機会が得られます。

パスワードを入力する必要がある場合、キーストロークはターミナルウィンドウに表示されませんが、記録されることに注意してください。 パスワードを入力したら、returnキーを押すだけです。 それ以外の場合は、インストールの確認を求められたら、「はい」の文字yを押してください。

curlコマンドに関連付けられているフラグを見ていきましょう。

  • -fまたは--failフラグは、サーバーエラーでHTMLドキュメント出力を提供しないようにターミナルウィンドウに指示します。
  • -sまたは--silentフラグは、curlをミュートして進行状況メーターを表示せず、-Sまたは--show-errorフラグと組み合わせます失敗した場合、curlにエラーメッセージが表示されるようになります。
  • -Lまたは--locationフラグは、要求されたページが別の場所に移動したことをサーバーが報告した場合、curlに要求を新しい場所にやり直すように指示します。

インストールプロセスが完了したら、HomebrewディレクトリをPATH環境変数の先頭に配置します。 これにより、作成中の開発環境に逆行する可能性のあるmacOSが自動的に選択するツールを介してHomebrewのインストールが呼び出されるようになります。

nanoコマンドを使用して、コマンドラインテキストエディタnano~/.bash_profileファイルを作成または開く必要があります。

  1. nano ~/.bash_profile

ターミナルウィンドウでファイルが開いたら、次のように記述します。

export PATH=/usr/local/bin:$PATH

変更を保存するには、CTRLキーと文字oを押したまま、プロンプトが表示されたらRETURNキーを押します。 これで、CTRLキーと文字xを押したままにしてnanoを終了できます。

ターミナルで以下を実行して、これらの変更をアクティブにします。

  1. source ~/.bash_profile

これを実行すると、PATH環境変数に加えた変更が有効になります。

次のように入力すると、Homebrewが正常にインストールされたことを確認できます。

  1. brew doctor

この時点で更新が必要ない場合、ターミナル出力は次のようになります。

Output
Your system is ready to brew.

そうしないと、brew updateなどの別のコマンドを実行して、Homebrewのインストールが最新であることを確認するように警告が表示される場合があります。

Homebrewの準備ができたら、Goをインストールできます。

##ステップ4—Goのインストール

Homebrewを使用して、brew searchコマンドで利用可能なすべてのパッケージを検索できます。 このチュートリアルでは、Go関連のパッケージまたはモジュールを検索します。

  1. brew search golang

:このチュートリアルでは、返される結果が多すぎるため、brew search goは使用しません。 goは非常に小さな単語であり、多くのパッケージに一致するため、検索語としてgolangを使用することが一般的になっています。 これは、インターネットでGo関連の記事を検索する場合にも一般的な方法です。 Golang という用語は、Goのドメインであるgolang.orgから生まれました。

ターミナルは、インストールできるもののリストを出力します。

Output
golang golang-migrate

Goはリストのアイテムの1つになります。 先に進んでインストールします。

  1. brew install golang

ターミナルウィンドウには、Goのインストールプロセスに関するフィードバックが表示されます。 インストールが完了するまでに数分かかる場合があります。

インストールしたGoのバージョンを確認するには、次のように入力します。

  1. go version

これにより、現在インストールされているGoの特定のバージョンが出力されます。これは、デフォルトで、利用可能なGoの最新の安定バージョンになります。

将来、Goを更新するには、次のコマンドを実行して、最初にHomebrewを更新し、次にGoを更新します。 最新バージョンをインストールしたばかりなので、今すぐこれを行う必要はありません。

  1. brew update
  2. brew upgrade golang

brew updateは、Homebrew自体の数式を更新し、インストールするパッケージの最新情報を確実に入手できるようにします。 brew upgrade golangは、golangパッケージをパッケージの最新リリースに更新します。

Goのバージョンが最新であることを確認することをお勧めします。

コンピューターにGoをインストールすると、Goプロジェクト用のワークスペースを作成する準備が整います。

ステップ5—Goワークスペースを作成する

Xcode、Homebrew、Goがインストールされたので、プログラミングワークスペースの作成に進むことができます。

Goワークスペースには、ルートに2つのディレクトリが含まれます。

  • src:Goソースファイルを含むディレクトリ。 ソースファイルは、Goプログラミング言語を使用して作成したファイルです。 ソースファイルは、実行可能なバイナリファイルを作成するためにGoコンパイラによって使用されます。
  • bin:Goツールによってビルドおよびインストールされた実行可能ファイルを含むディレクトリ。 実行可能ファイルは、システム上で実行され、タスクを実行するバイナリファイルです。 これらは通常、ソースコードまたはダウンロードした別のGoソースコードによってコンパイルされたプログラムです。

srcサブディレクトリには、複数のバージョン管理リポジトリ( Git Mercurial Bazaar など)が含まれる場合があります。 プログラムがサードパーティのライブラリをインポートすると、github.comgolang.orgのようなディレクトリが表示されます。 github.comのようなコードリポジトリを使用している場合は、プロジェクトとソースファイルもそのディレクトリに配置します。 これにより、プロジェクトにコードを正規にインポートできます。 Canonical インポートは、github.com/digitalocean/godoなどの完全修飾パッケージを参照するインポートです。

一般的なワークスペースは次のようになります。

.
├── bin
│   ├── buffalo                                      # command executable
│   ├── dlv                                          # command executable
│   └── packr                                        # command executable
└── src
    └── github.com
        └── digitalocean
            └── godo
                ├── .git                            # Git reposistory metadata
                ├── account.go                      # package source
                ├── account_test.go                 # test source
                ├── ...
                ├── timestamp.go
                ├── timestamp_test.go
                └── util
                    ├── droplet.go
                    └── droplet_test.go

1.8以降のGoワークスペースのデフォルトディレクトリは、goサブディレクトリまたは$HOME/goを持つユーザーのホームディレクトリです。 1.8より前のバージョンのGoを使用している場合でも、ワークスペースに$HOME/goの場所を使用することをお勧めします。

次のコマンドを発行して、Goワークスペースのディレクトリ構造を作成します。

  1. mkdir -p $HOME/go/{bin,src}

-pオプションは、mkdirに、ディレクトリにすべてのparentsが現在存在しない場合でも、それらを作成するように指示します。 {bin,src}を使用すると、mkdirへの一連の引数が作成され、binディレクトリとsrcディレクトリの両方を作成するように指示されます。

これにより、次のディレクトリ構造が確実に配置されます。

└── $HOME
    └── go
        ├── bin
        └── src

Go 1.8より前は、$GOPATHというローカル環境変数を設定する必要がありました。 明示的にそうする必要はなくなりましたが、多くのサードパーティツールが設定されているこの変数に依存しているため、それでも良い習慣と見なされています。

$GOPATH~/.bash_profileに追加することで設定できます。

まず、~/.bash_profilenanoまたはお好みのテキストエディタで開きます。

  1. nano ~/.bash_profile

ファイルに以下を追加して、$GOPATHを設定します。

〜/ .bash_profile
export GOPATH=$HOME/go

Goがツールをコンパイルしてインストールすると、ツールは$GOPATH/binディレクトリに配置されます。 便宜上、ワークスペースの/binサブディレクトリを~/.bash_profilePATHに追加するのが一般的です。

〜/ .bash_profile
export PATH=$PATH:$GOPATH/bin

これで、~/.bash_profileに次のエントリが含まれるはずです。

〜/ .bash_profile
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

これにより、システム上の任意の場所でGoツールを介してコンパイルまたはダウンロードしたプログラムを実行できるようになります。

シェルを更新するには、次のコマンドを発行して、作成したグローバル変数をロードします。

  1. . ~/.bash_profile

echoコマンドを使用し、出力を調べることで、$PATHが更新されていることを確認できます。

  1. echo $PATH

$GOPATH/binがホームディレクトリに表示されます。 sammyとしてログインした場合、パスに/Users/sammy/go/binが表示されます。

Output
/Users/sammy/go/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

ワークスペースのルートが作成され、$GOPATH環境変数が設定されたので、次のディレクトリ構造で将来のプロジェクトを作成します。 この例では、リポジトリとしてgithub.comを使用していることを前提としています。

$GOPATH/src/github.com/username/project

https://github.com/digitalocean/godo プロジェクトで作業している場合は、次のディレクトリに配置します。

$GOPATH/src/github.com/digitalocean/godo

この方法でプロジェクトを構造化すると、go getツールでプロジェクトを利用できるようになります。 また、後で読みやすくなります。

これを確認するには、go getコマンドを使用してgodoライブラリをフェッチします。

  1. go get github.com/digitalocean/godo

ディレクトリを一覧表示すると、godoパッケージが正常にダウンロードされたことがわかります。

  1. ls -l $GOPATH/src/github.com/digitalocean/godo

次のような出力が表示されます。

Output
-rw-r--r-- 1 sammy staff 2892 Apr 5 15:56 CHANGELOG.md -rw-r--r-- 1 sammy staff 1851 Apr 5 15:56 CONTRIBUTING.md . . . -rw-r--r-- 1 sammy staff 4893 Apr 5 15:56 vpcs.go -rw-r--r-- 1 sammy staff 4091 Apr 5 15:56 vpcs_test.go

このステップでは、Goワークスペースを作成し、必要な環境変数を構成しました。 次のステップでは、いくつかのコードを使用してワークスペースをテストします。

ステップ6—簡単なプログラムを作成する

Goワークスペースを設定したので、次は簡単な「Hello、World!」を作成します。 プログラム。 これにより、ワークスペースが機能していることを確認し、Goに慣れることができます。

実際のプロジェクトではなく、単一のGoソースファイルを作成しているため、これを行うためにワークスペースにいる必要はありません。

ホームディレクトリから、nanoなどのコマンドラインテキストエディタを開き、新しいファイルを作成します。

  1. nano hello.go

ターミナルでテキストファイルが開いたら、プログラムを入力します。

package main

import "fmt"

func main() {
	fmt.Println("Hello, World!")
}

controlおよびxキーを入力してnanoを終了し、ファイルの保存を求めるプロンプトが表示されたら、yを押します。

このコードは、fmtパッケージを使用し、Hello, World!を引数としてPrintln関数を呼び出します。 これにより、プログラムの実行時にHello, World!というフレーズが端末に出力されます。

nanoを終了してシェルに戻ったら、プログラムを実行します。

  1. go run hello.go

作成したhello.goプログラムにより、Terminalは次の出力を生成します。

Output
Hello, World!

このステップでは、基本的なプログラムを使用して、Goワークスペースが適切に構成されていることを確認しました。

結論

おめでとう! この時点で、ローカルのmacOSマシンにGoプログラミングワークスペースがセットアップされ、コーディングプロジェクトを開始できます。