Room A
All
5 mins.
2023年末にGo公式が「Finding unreachable functions with deadcode」( https://go.dev/blog/deadcode )というブログを通して、使用されていない関数を見つけ出すためのdeadcodeというツールを紹介しました。
このブログでdeadcodeが紹介されたことをきっかけに、複数のlinterを同時に設定することができるツールであるgolangci-lint( https://github.com/golangci/golangci-lint )に対して、Go公式のものであるdeadcodeを採用するのはどうかというissueが複数挙げられました。
しかし、golangci-lintはこのdeadcodeを採用せず、代わりにunusedという類似の機能を持つlinterと比較してこの提案を棄却しました。その理由と2つのlinterの違いについて深ぼることで、それぞれのlinterの特徴と使い分けが理解できると思っています。
また、私自身deadcodeを使用し、あるOSSのコードをリファクタリングするPRを送りました。ただ、そのPRが不要なリファクタリングという指摘を受け、deadcodeで検知して削除するべきではないinterfaceの中のメソッドの役割を学びました。
そこで、その経験を通して、現段階のdeadcodeを使う際の注意点についてもお伝えしたいと思っています。
具体的にはこのセッションで以下の項目についてお話しします。
このセッションは、Goで使用されていない関数をlintしたい方や、Goのlint自体に興味がある方に対して特にお話ししたい内容です。