Upgrade to Pro — share decks privately, control downloads, hide ads and more …

go get で考慮している ファイルシステムの挙動について

go get で考慮している ファイルシステムの挙動について

Go Conference 2024:https://gocon.jp/2024

shinnosuke

June 08, 2024
Tweet

More Decks by shinnosuke

Other Decks in Technology

Transcript

  1. go get の仕組みを簡単に紹介 5 タグを指定しない場合を例に 引用:The Go Blog 「Module Mirror

    and Checksum Database Launched」 1. バージョンのリストを取得 2. 最新のタグのメタ情報を取得 3. 依存関係にある mod ファイル等を取得 4. zip ファイルとしてダウンロード
  2. go get の仕組みを簡単に紹介 6 引用:The Go Blog 「Module Mirror and

    Checksum Database Launched」 1. バージョンのリストを取得 2. 最新のタグのメタ情報を取得 3. 依存関係にある mod ファイル等を取得 4. zip ファイルとしてダウンロード タグを指定しない場合を例に
  3. go get の仕組みを簡単に紹介 7 引用:The Go Blog 「Module Mirror and

    Checksum Database Launched」 1. バージョンのリストを取得 2. 最新のタグのメタ情報を取得 3. 依存関係にある mod ファイル等を取得 4. zip ファイルとしてダウンロード タグを指定しない場合を例に
  4. go get の仕組みを簡単に紹介 8 引用:The Go Blog 「Module Mirror and

    Checksum Database Launched」 1. バージョンのリストを取得 2. 最新のタグのメタ情報を取得 3. 依存関係にある mod ファイル等を取得 4. zip ファイルとしてダウンロード タグを指定しない場合を例に
  5. go get の仕組みを簡単に紹介 9 引用:The Go Blog 「Module Mirror and

    Checksum Database Launched」 1. バージョンのリストを取得 2. 最新のタグのメタ情報を取得 3. 依存関係にある mod ファイル等を取得 4. zip ファイルとしてダウンロード タグを指定しない場合を例に
  6. どのように処理の流れを追って理解していったのか ある程度当たりをつけて処理を探した 25 1 今回は go get の挙動についてだったので、 ❏ get

    が付いているファイル or 関数があるはず ❏ modget というディレクトリに get.go というファイルがあった ❏ 処理を追ってもあまり処理を理解できなかった IDE の力を借りるべく Go の実装を手元にダウンロードした 0
  7. go build 時の挙動だったり Go version 1 との比較とかも機会があれば 業務時の軽い雑談で紹介した挙動を偶然見つけて 初めて Go

    のソースコードを読んだ まとめ GitHub だと大文字・小文字違いのアカウントは作成できないので ほとんど起きない現象なのかもしれない 27
  8. ❏ The Go Blog 「Module Mirror and Checksum Database Launched」

    ❏ GopherCon 2019: Katie Hockman - Go Module Proxy: Life of a Query ❏ Go Module Mirror, Index, and Checksum Database ❏ Macのディスクユーティリティで利用できるファイルシステムフォーマット ❏ Installing Go from source 参考