Knowledge Work主催Gopher Enablement Internshipの成果発表会で発表したスライドです。 インターンではgoindexSearchという、go vetコマンドやgrepコマンドをインターネット上の大量のGoのパッケージに対してかけるツールを開発しました。 本スライドではgoindexSearchの詳細や開発の工夫などについて述べます。
Gopher Enablement Internship 2023.03成果発表 - Gopher Enablement InternshipチームA speed(@strayer_13)
View Slide
Gopher Enablement Internship 2023.03 2成果物情報タイトル選んだテーマリポジトリURLenum型の導入に伴う後方互換性調査ライブラリ② 新しいGoの機能https://github.com/speed1313/goindexSearch
Gopher Enablement Internship 2023.03 3開発したツールについてツール概要解決したい課題goindexSearchhttps://index.golang.org/index にあるパッケージに対して go vet や grep をかけるツールGo言語に新たな機能を追加するたびに後方互換性のチェックをする手間を省きたい。e.g.) enum型の導入時、enumが識別子として使われていると互換性が崩れる。実行結果や図を貼る
Gopher Enablement Internship 2023.03見つかったenum(golang.org/x/text)https://cs.opensource.google/search?q=enum&sq=&ss=go%2Fx%2Ftext
Gopher Enablement Internship 2023.03 5開発する中で工夫したこと課題工夫go vetの処理時間が長すぎる!goroutineを最大10個で回して並行処理拡張性を広げたい-vettoolやgrepのpatternをコマンド引数で与えれるようにした
Gopher Enablement Internship 2023.03 6インターンシップに参加した感想できるようになったこと感想● net/http, sync/atomic, goroutineなどGoの様々な機能を組み合わせて使う● 拡張性を考えてコードを書く● 低レイヤ自作が好きでnet/httpや並行処理は使う機会があまりなかったため、今回静的解析と組み合わせて使えてよかった。● go vetは、grepに比べてより細かいチェックができるが、遅いというトレードオフがあることがわかった
Gopher Enablement Internship 2023.03 7今後の取組み● 並行処理を最適化する○ goroutine最大実行数のパラメータチューニングなど● 探索パッケージ対象をカスタマイズしたい● downloadするpackageのセキュリティチェック
できる喜びが巡る日々を届けるDeliver the joy of enablementGopher Enablement Internship 2023.03