Slide 1

Slide 1 text

Gopher Enablement Internship 2023.03 成果発表 - Gopher Enablement Internship チームB 佐藤恭

Slide 2

Slide 2 text

Gopher Enablement Internship 2023.03 2 成果物情報 タイトル 選んだテーマ リポジトリURL 時間のないそこのあなた! ③ 効果の高いLinter https://github.com/Keyl0ve/termcheck

Slide 3

Slide 3 text

Gopher Enablement Internship 2023.03 こんな経験したことありませんか? - 関数を呼ぶ時 - 構造体のフィールドにアクセスする時 いつの間にか冗長なコードになっている

Slide 4

Slide 4 text

Gopher Enablement Internship 2023.03 4 開発したツールについて ツール概要 解決したい 課題 - パッケージ名 . 関数名 - 構造体 . フィールド名 ↑ で単語が重複して使われていたら 警告を出します - 冗長になるコード - リーダブルではないコードの抹殺 実行結果や図を貼る

Slide 5

Slide 5 text

Gopher Enablement Internship 2023.03 5 開発する中で工夫したこと 課題 工夫 - 誰が見てもすぐにわかるコードにしたい - テストケースの拡充 - 関数の責務を適切に分ける - 関数、変数の名前を簡潔に - コメントアウトの追加 文字が扱いずらかった - ほしい文字列に整形 - package の組み合わせ - github.com/iancoleman/strcase - pkg.go.dev/strings

Slide 6

Slide 6 text

Gopher Enablement Internship 2023.03 - 扱いやすい文字へ - v1 - user, readuserfromjapan - v2 - user, read_user_from_japan - v3 - [ user, read, user, from, japan ] 工夫した点 strcase.ToSnake() strings.Split(str, “_”)

Slide 7

Slide 7 text

Gopher Enablement Internship 2023.03 - slice に append するときに再帰で実装 工夫した点

Slide 8

Slide 8 text

Gopher Enablement Internship 2023.03 8 インターンシップに参加した感想 できるように なったこと 感想 - linter を作れるようになった - 静的解析の理解 ++ - 構文解析の理解 ++ - ast の構造 - 型 check の理解 ++ - types パッケージの使い方 静的解析について深く学べたインターンシップでした!静的解析を通してGo言語がますます好きになり ました。まだまだ理解しきれていない箇所もあるので静的解析ツールを作りながら学んでいこうと思い ます。新しくできることが増えて、次は何を作ろうかと考える時間が楽しいです! このインターンシップに携わった方々に感謝しています! Special Thanks - tenntenn さん - notogawa さん - チームBのみんな

Slide 9

Slide 9 text

Gopher Enablement Internship 2023.03 9 今後の取組み これからやりたいこと - 静的解析ツールの作成 - SSA - ポインタ解析 - コードの自動生成

Slide 10

Slide 10 text

できる喜びが巡る日々を届ける Deliver the joy of enablement Gopher Enablement Internship 2023.03