maco's life

主にエンジニアリングと読書について書いていきます。

Go 1.16以降の備忘録

この前調べたり、考えたことを忘れそうなので、復習兼ねた備忘録

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に差異が生まれないようにすることがベストプラクティス