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

自作ツールを作って分かった Go を使うことのメリット

daichi
October 12, 2023

自作ツールを作って分かった Go を使うことのメリット

https://knowledgework.connpass.com/event/297546/
Enablement Bootcamp for Gopherizing #1 での発表資料

daichi

October 12, 2023
Tweet

More Decks by daichi

Other Decks in Programming

Transcript

  1. Background / Motivation
 Bootcamp 以前は Goをほとんど書いたことはなかった
 これを機会を Go を書ける素地を身に付けたい
 実際に学んだこと:Goらしいコード・テスト・エラー処理

    など
 
 ここからは コードを書くこと で理解を深めたい
 普段は Ruby・TypeScript を書いているので
 その経験と比較すると Go の理解も進めやすい 
 Bootcamp資料より引用 

  2. 作ったもの 
 kudoas/gis (GitHub Issue Syncer)
 
 コマンド実行で自動的に 子Issue と

    
 親Issue の情報を同期できるツール
 Issue から Issue を作ると 
 親Issueの情報 (label, millstone など) が 子 Issue に引き継がれないため
 このツールをまだ育てている最中なので 
 機能は最小限です🙏

  3. 子 Issue から親 Issue fieldを取得する
 内部実装を簡単に紹介
 OAuth2.0 で GitHub API

    を認可する
 子 Issue fieldをアップデートする
 1 2 3
  4. 開発で使用したツール・ライブラリ等
 Editor 
 VSCode
 Go 
 Version 1.21.3
 Library
 golang/oauth2

    OAuth2.0 による認可のクライアント実装
 shurcooL/githubv4 GitHub API v4 SDK
 

  5. GraphQL との連携が扱いやすい 
 GitHub API のレスポンスを格納する構造体を定義 
 クエリを呼び出してレスポンスを構造体に格納する 
 API

    のレスポンスが構造体に合わない場合は 
 エラーになる
 GraphQLのクエリと構造体が紐づいている 
 取得した値に型のサポートがつく