みんなのGo言語 Day3
今日もつらつらと読んだことをメモ的に書いていく📝
Goを始める
学習方法
- A Tour of Go を一通りやってみる
- ドキュメント を読む
プロジェクトを始める時に気をつけること
- リポジトリ名は小文字にする
- リポジトリのディレクトリ構造は
$GOPATH/src/{レポジトリのドメイン}/{レポジトリのパス}
の形にする - ディレクトリ名はパッケージ名と同一にする
- ディレクトリ単位でパッケージとなるため
- testdataやアンダースコアで始まるディレクトリはgoのパッケージとして見なされない
- サブパッケージはサブディレクトリを切って作る
- 基本的にはあまりサブパッケージを作ることはない、ロガーのパッケージなどはあり得る
- 他のプロジェクトから使えるような形を維持できるようにすることを考える
- コンポーネントはtypeを定義して、typeごとにファイルを分けるのが良い
- 基本的にはあまりサブパッケージを作ることはない、ロガーのパッケージなどはあり得る
- サブパッケージはインポートする際に絶対パスで指定する
- go getなどで取ってくる時に絶対パスである必要がある
外部パッケージの依存管理について
- goにはvendoringという依存管理の機能がついている
- プロジェクト配下に
vendor/
以下にパッケージを配置すれば、GOROOTや$GOPATHよりもそちらを優先して読み込むようになっている
- プロジェクト配下に
- これに加えてglideを入れると、bundlerのGemfileやGemfile.lockなどと同じようなglide.ymlとglide.lockというファイルが生成され、これをコミットしておくことによって同じバージョンの外部パッケージが、他の環境でもインストールできるようになる github.com