$30 off During Our Annual Pro Sale. View Details »

Gopher Enablement Internship

Gopher Enablement Internship

Kyo Sato

March 20, 2023
Tweet

More Decks by Kyo Sato

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. 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, “_”)

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide