search
LoginSignup
2
Help us understand the problem. What are the problem?

posted at

Go導入リンク

Go導入リンク

新しく案件でGoを使うことになったので使えそうなドキュメントをリンクしていく
随時更新予定

追記予定:
デプロイ周り
Unity連携
gRPC-web

Goダウンロード・インストール

公式サイト

ダウンロード

確認

$ go version
go version go1.17.6 darwin/amd64

エディタ

VSCodeやAtomなどにプラグイン入れる方法もあるが、すぐ始められて多機能なJET BRAINSのGoLandが一番いいと思う(有料だけどその価値はあった

チュートリアル

A Tour of Go

初学者は一通りこれを見ればいい、ポインタ、Goroutineだけ理解を深めるため他のサイトも見た。

メモ

以下、Go特有だったのでメモ

Defer
遅延処理 try-cath-finalyのfinaly的に使う
https://go-tour-jp.appspot.com/flowcontrol/12

Array
スライスはデータ格納していない、単に元の配列の部分列を指すだけ
https://go-tour-jp.appspot.com/moretypes/8

Pointer receivers
ポインタレシーバ、変数レシーバーの違い
変数レシーバーはコピーを渡す。
ポイントレシーバーはレシーバー自体を更新する。
レシーバー自身を更新することが多いため、変数レシーバよりもポインタレシーバの方が使うことが多い
https://go-tour-jp.appspot.com/methods/1
https://go-tour-jp.appspot.com/methods/4

使い所、構造体など
https://nishinatoshiharu.com/go-structure-pointermethod/

The empty interface
型が不明な場合にvar i interface{} を使うと全ての型を入れることができる。(Any的な)a := x と違いはintとかstringとか型が違を入れ替えて使うことができる。
https://go-tour-jp.appspot.com/methods/14

Stringers
fmt.Println(a, z) でString() を見にいく、これに関しては標準関数を理解していないとわからないので、他に定義済みが無いか確認しないとダメ
https://go-tour-jp.appspot.com/methods/17

Goroutine
個人サイトの方がわかりやすかった。
GoroutineはGoLangで書くメリットの大きな一つなので下記でポイントを押さえておく
https://qiita.com/taigamikami/items/fc798cdd6a4eaf9a7d5e
https://go-tour-jp.appspot.com/concurrency/1

標準ライブラリ

チュートリアルやって標準ライブラリ詳しくないとダメだと認識

テスト

標準ライブラリにテストがあり使い勝手がGOOD!!
実行はGoLandで走らすことができた

gRPC

公式サイトのQuick startがわかりやすかった

MacOS gRPCインストール

$ brew install protobuf
$ protoc --version 
libprotoc 3.19.4

クライアントツール

毎回Go側でクライアントコードを書くのも大変なのでクライアントツールをインストール
使い方はサイトを参考

$ brew install --cask bloomrpc

Go Plugins

$ go get -u google.golang.org/grpc
$ go install -v google.golang.org/protobuf/cmd/protoc-gen-go@latest
$ go install -v google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
$ export PATH="$PATH:$(go env GOPATH)/bin"

MongoDB

公式ドライバあり、ドキュメントもわかりやすい。

ダウンロード

$ go get go.mongodb.org/mongo-driver/mongo
$ go install -v go.mongodb.org/mongo-driver/mongo
$ go install -v go.mongodb.org/mongo-driver/mongo/options
$ go install -v go.mongodb.org/mongo-driver/mongo/readpref

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2
Help us understand the problem. What are the problem?