Room A
Intermediate
5 mins.
Goでのアプリケーション開発で外部の公開されているライブラリを使用したい場合は go get を使用してパッケージをダウンロードします。
このときダウンロードされるライブラリは $GOPATH/pkg/mod 配下にフォルダが作成されGoのファイルが保存されます。
例を挙げる go get golang.org/x/sync
を実行すると $GOPATH/pkg/mod/golang.org/x/sync
の形で保存されます。
このときにフォルダやファイルが保存されるということは保存先のOSのファイルシステムの挙動を考慮する必要があります。代表なOSだとmacOSやWindowsだと大文字と小文字を区別しない設定が可能です。[1][2]
一方で、Goのライブラリを公開できるGitHubではユーザ名とリポジトリ名には大文字を使用することができます。 このような場合、大文字と小文字だけの違いがあるライブラリをダウンロードできない可能性があります。
この発表では go get で実行されるコードを紹介しつつ、この問題をどのように解消しているのかを紹介したいと思います。 これに加えて発表の中では実際にどのように処理の流れを理解したのかもお伝えすることで Go 自体のコードを読むことのハードルの低さを少しでもお伝えしたいと考えています。
発表スライドの章立ては以下を考えています。
参考文献 [1] https://learn.microsoft.com/ja-jp/windows/wsl/case-sensitivity [2] https://support.apple.com/ja-jp/guide/disk-utility/dsku19ed921c/mac