Go言語の勉強を始めたばかりの超初心者なんで、プログラミング始めるに当たり、必要な情報を収集したものです。
Go言語とは
Go(golangと呼ばれることも多い)は、2009年にRobert Griesemer、Rob Pike、Ken ThompsonによってGoogleで作成されたプログラミング言語です。 これは、AlgolとCに似ており、ガベージコレクション、制限された構造型、メモリセーフ、およびCSPスタイルの並行プログラミング機能が追加された、コンパイルされた静的型言語です。 (CSPスタイルとは、並行システムにおけるインタラクションのパターンを記述するための正式な言語の仕様に影響されているという事の様です。) Googleが開発したコンパイラやその他の言語ツールは、すべて無料のオープンソースです。
-
[Go (プログラミング言語) JA.WIKIPEDIA] (https://ja.wikipedia.org/wiki/Go_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E))
Go言語が成功している理由
Rob Pike氏が、Go言語の成功している理由として,語った要約です。
- コンパイルの速さ
- 実行の速さ
- デプロイの容易さ
- ツール(go tool) THE GO TOOL https://mattn.kaoriya.net/software/lang/go/20120216093718.htm
- 標準ライブラリ
などのGo言語のエコシステムがよく挙げられるそうです。また,言語の特徴としては,
- 並行プログラム
- インターフェース
などが挙げられるそうですが,どれも本当の理由ではないということでした。 Rob Pike氏が考える成功の理由は,**Go言語のSimplicity(単純さ)**です。
参照元: Go言語の父と呼ばれるRob Pike氏による基調講演~Go Conference 2014 http://gihyo.jp/news/report/01/GoCon2014Autumn/0001
Go言語の適用用途
2016年のアンケート調査によると、Go言語の利用用途としては、Webアプリケーションが最も多く、次がシステム・プログラミングなんですね。
参照元: https://blog.golang.org/survey2016-results
インストール方法
ちょっと、使ってみたいという場合は、パッケージマネージャーでインストールできるUbuntu Linuxが便利だと思います。 でもGo言語のバージョンが古いので後述の仮想環境を利用するのが、お勧めです。
- Getting Start, The Go Programing Language https://golang.org/doc/install
- Go Ubuntu Wiki https://wiki.ubuntu.com/Go
- CentOSにGo言語をインストール https://qiita.com/ikenyal/items/eecc65b703eba8a52e88
仮想環境
Go言語のバージョンを指定してインストールする、Go言語のバージョンを切り替える便利なツールです。
- GitHub https://github.com/syndbg/goenv
- goenv(とgoof)で仮想環境を作ってみた #golang https://qiita.com/knsh14/items/e977b2dbf0efabfc77e1
- Golangをgoenvを使ってインストールしてみた https://qiita.com/walkers/items/761b2a5e58849176a633
パッケージ&ライブラリ
パッケージの依存関係を解決してパッケージをインストールするツールに関するリンクです。
godep
- コマンドの利用法 Command godep https://godoc.org/github.com/tools/godep
- インストール方法 GitHub godep https://github.com/tools/godep
- Goのパッケージ管理ツールgodepの紹介と、僕がハマった罠 http://otiai10.hatenablog.com/entry/2015/02/12/013406
注意 goenvでgolangをインストールした場合、godepが正しく動作いない様です。 困まる場合は、[Getting Start, The Go Programing Language] (https://golang.org/doc/install) の従って、インストールするとgodepが正常に動作する様になります。
Glide
- Glide Package Management for Go https://glide.sh/
- Glide から dep に移行せよ https://qiita.com/spiegel-im-spiegel/items/e931ad1a7565d02d179e
dep
- depのインストールと利用法 (現在は実験的な位置付け、しかし実用可能、Go言語 1.8以降) https://github.com/golang/dep
パッケージのリスト
- パッケージのリスト Packages, The Go Programing Language https://golang.org/pkg/
Go言語ホームページ、ドキュメントなど
最初に環境変数 GOPATH と ワークスペースの関係について、理解しておくと、コードを作り始めた後に困らなくても良い。
- How to Write Go Code ⭐️ https://golang.org/doc/code.html
- GOPATH は適当に決めて問題ない https://qiita.com/yuku_t/items/c7ab1b1519825cc2c06f#gopath
ドキュメントの在り処
-
Documentation, The Go Programing Language https://golang.org/doc/
-
Goプログラミング言語仕様 golang.jp http://golang.jp/go_spec
-
Go 言語に関するブックマーク ⭐️⭐️⭐️ https://qiita.com/spiegel-im-spiegel/items/98d49ac456485b007a15#%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AE-go-%E8%A8%80%E8%AA%9E-on-windows
-
Goに関する投稿 Qiita https://qiita.com/tags/Go
-
golangに関する投稿 https://qiita.com/search?utf8=%E2%9C%93&sort=&q=golang+
チュートリアルなど入門
- A tour of Go https://go-tour-jp.appspot.com/list
- AN INTRODUCTION TO PROGRAMING iN GO https://www.golang-book.com/books/intro
- 他言語プログラマがgolangの基本を押さえる為のまとめ https://qiita.com/gctfuji/items/e2a3d7ce7ab8868e37f7
- goコマンドざっくりまとめ https://qiita.com/gougyan/items/8db66b1d05aec0921791
- Ubuntu 16.04 に GoLang 1.6 と Gin Web Framework をインストールし、HTMLテンプレートを読み込むまで https://qiita.com/kent_ocean/items/5bfb7b69973f78b8c843
- はじめての Go 言語 (on Windows) https://qiita.com/spiegel-im-spiegel/items/98d49ac456485b007a15#%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%AE-go-%E8%A8%80%E8%AA%9E-on-windows
Webフレームワーク
- 概観からGoのWebFrameworkを選ぶ(2016/02) https://qiita.com/jumbOrNot/items/45f86db15a5a6c8a0622
- Revel Feamework https://revel.github.io/
- BEEGO Framework https://beego.me/
- Gin Web Flamework https://gin-gonic.github.io/gin/
RESTフレームワーク
- Build RESTful API service in golang using gin-gonic framework https://medium.com/@thedevsaddam/build-restful-api-service-in-golang-using-gin-gonic-framework-85b1a6e176f3
- golang+EchoでREST APIを作った話 http://namihira.hatenablog.com/entry/20170409/1491710093
Go言語ソースコード、サンプルコードなど
- golang/go, GitHub https://github.com/golang/go
- Go サンプルプロジェクト https://github.com/golang/example
エディタやIDE
- dominikh/go-model.el, GitHub https://github.com/dominikh/go-mode.el
- Emacs で Go を書く https://qiita.com/senda-akiha/items/8bbdd3e59c51d5619ea7
- GoLand https://www.jetbrains.com/go/
- Gogland - Go 言語用 IDE - を使ってみた (2016年12月版) https://qiita.com/pankona/items/380f8b08e39d469ca94d
- Goの開発環境 Eclipse+GoClipse(Windows) https://qiita.com/takanorig/items/9a652739ad2abcb5a221
デバッカ
- go言語のデバッガ(delveとgdb)とcore dump https://qiita.com/YasunoriGoto1/items/abd0d23262a72e2be9bf
- derekparker/delve https://github.com/derekparker/delve
- Debugging Go Code with GDB https://golang.org/doc/gdb
質問、サポート・コミュニティ、Issueトラッキング
- 日本語 stack overflow https://ja.stackoverflow.com/questions/tagged/go
- 英語 stack overflow https://stackoverflow.com/questions/tagged/go
- Issues GitHub https://github.com/golang/go/issues
- golang-nuts https://groups.google.com/forum/#!forum/golang-nuts
GoDoc
- goDoc Home https://godoc.org/
- godoc コメントの書き方 https://qiita.com/macococo/items/fb6da04d3909edc90e37
クラウドやDocker実行環境
CloudFoundry
- IBM Cloud Cloud Foundryアプリケーション Go https://console.bluemix.net/docs/runtimes/go/index.html#go_runtime
- Cloud Foundry Go Buildpack https://docs.cloudfoundry.org/buildpacks/go/index.html
- GitHub cloudfoundry/go-buildpack https://github.com/cloudfoundry/go-buildpack
Docker
- Dockerで最小のGoのイメージを作成する(cgo編) https://qiita.com/shibukawa/items/fe847e800f845c2f555d
- DockerHub golang https://hub.docker.com/_/golang/
Major Cloud
- Getting Started on Heroku with Go https://devcenter.heroku.com/articles/getting-started-with-go#introduction
- Google Cloud Platform での Go https://cloud.google.com/go/home?hl=ja
- AWS SDK for Go https://aws.amazon.com/jp/sdk-for-go/
- Cloud Foundry Build Pack GitHub https://github.com/cloudfoundry/go-buildpack
- Cloud Foundry Build Pack ドキュメント https://docs.cloudfoundry.org/buildpacks/go/index.html
- IBM Cloud Your first Golang app server on Bluemix (video) https://www.ibm.com/blogs/bluemix/2015/11/first-golang-app-server-bluemix-video/
- IBM Cloud を利用して Go言語のアプリ開発入門 https://qiita.com/MahoTakara/items/70572f3f214f24ee452d
API Library
- SoftLayer API softlayer/softlayer-go https://github.com/softlayer/softlayer-go