Go のチュートリアルに足りないこと

ちょうど今日から夏休みの @ymmt2005 こと山本泰宇です。こんにちは。 夏休みなのにブログを書いている点は突っ込まないでください。

今回は Go を初めて業務に使ったときに躓いた点をまとめた資料を紹介します。これから使いだそうと考えている方は、これを読めば1日分位の調査は省けるかと思います。

ご存知の方も多いと思いますが、Go は Google で C++ が従来担当していたシステム開発用の言語として開発され、2009 年に公開されたプログラミング言語です。ここ最近広く使われだしたようで、一昨日の Hacker News では Go の記事が乱立していました。

Go at Hacker News

cybozu.com でも Go を開発言語のひとつに採用しようとして、まず Python で書かれていたある TCP のクライアント・サーバープログラムを Go で書き直してみました。型どおりに公式のチュートリアルをこなし、さて作ってみようとしてハタと困ったのです。

「どうやって実行ファイル用のパッケージは作るんだろう?」

いやもちろん書いてあるんですけど、このチュートリアルを読むだけだと hello/ ディレクトリの下に a.go, b.go というファイルを置けば "a", "b" コマンドが作れるようにも読めます。実際最初そうしようとして失敗しました。

実は、1実行ファイルにつき1ディレクトリ必要で、ディレクトリ名がコマンド名になるんです。そうは書かれていないのですが。

この資料では、実際に私が実用プログラムを開発するまでに躓いたポイントをひとつひとつ解説しています。何分 Go 歴一週間にも満たない時点で作成した資料なので不正確な点があるかもしれませんが、お気付きの方は twitter で教えていただければ訂正します。

おまけに、調査中のメモも以下で公開します。内容はほぼ一緒ですが、A Tour of Go の Exercise の回答もありますので、見たくない人はご注意ください。