この前調べたり、考えたことを忘れそうなので、復習兼ねた備忘録
go modules周りの話
go get ... バージョン管理したい対象の場合使う。go.modの変更が入る
go install (version指定あり)... ツール等グローバルに管理したいものを、version指定で入れるときに使う。go.modの変更が入らない
- go install (version指定なし)... go.modにある指定のversionが入る。なおtoolなどで無理やり依存関係をつくらないと、go mod tidyで消えてしまう。
protobufまわり
- protoファイルの
option go_package
の指定について go_pacakge指定のpathにbuildされるoption go_package="hoge;fuga"
のような記述で、package fuga
という名称になる。;fuga
がないとpacakge名はhoge
になる
protoファイルからgo,rubyなどのファイルをビルドする時
protobufが人のPC環境によって差分がでて、compileされたファイルの差分が生まれやすいので、compileを行うdocker imageを用意し、protobuf, protoc-toolのversionに差異が生まれないようにすることがベストプラクティス