【有料】Gopher塾 #3 - 静的解析を使ったGoの開発ツール制作 入門編 - DAY 1
イベント内容
Gopher塾 #3 - 静的解析を使ったGoの開発ツール制作 入門編 - DAY1
Gopher塾は、tenntennによるGoに関する有料の講義です。第3回目は静的解析ツール(入門編)について行います。
無償でGopher道場などで学習することも可能ですが、より実践的で高度な内容を扱います。
なお、Goの静的解析ツールに関しては、プログラミング言語Go完全入門 - 14. 静的解析とコード生成や逆引き Goによる静的解析で無償で学べます。
本講義では、独学では難しい勘所をお伝えできればと考えています。手を動かす教材も準備予定です。
キャンセルについて
原則、自己都合によるキャンセルはご遠慮願います。止む得ずキャンセルしたい場合は、連絡先のフォームからお問い合わせください。
なお、学生では無いにも関わらず、学生枠に申し込んだ場合は、こちらでキャンセル致します。誤って申し込んだ方は別途、ご連絡ください。
日程の変更について
運営の体調、不慮の事態などによって開催ができない場合は、別日に振替させて頂きます。 その際は別途メールにてご連絡致します。
講師: tenntenn / Takuya Ueda
バックエンドエンジニアとして日々Goを書いている。Google Developers Expert (Go)。一般社団法人Gophers Japan代表。Go Conference主催者。大学時代にGoに出会い、それ以来のめり込む。人類をGopherにしたいと考え、Goの普及に取り組んでいる。複数社でGoに関する技術アドバイザーをしている。マスコットのGopherの絵を描くのも好き。
- Webサイト: https://tenn.in
- Twitter: https://twitter.com/tenntenn
- Mastodon: https://mstdn.jp/@tenntenn
過去の実績などはこちらをご覧ください。
内容
Goはリリース当初から開発ツールが作りやすい言語です。たとえば、標準ライブラリでは静的解析を扱うためのgo
パッケージがあり、それらを活用して公式ツールとしてgofmt
やgo vet
、gopls
などが存在します。
すでに多くの開発ツールがサードパーティ製を含め存在します。 しかし、以下のような課題を解決するために、自作することもできます。
- 過去に障害につながったバグを防ぎたい
- プロジェクト固有のルールの厳守をツールで保証したい
- コード生成によって煩雑なコードの記述やミスを減らしたい
- セキュリティの問題になるコードを発見したい
- レビューコストを減らしたい
本講義では、実際に手を動かして以下のようなツールを開発します。
- リファクタリングが必要な関数を見つける
- ループ内でdefer文を使っている
- nilチェックが漏れている関数を見つける
本講義で学べる知識は以下の通りです。
- Goの開発ツールについて
- 静的解析ツールの概要
- analysisパッケージとskeleton
- 構文解析
- 型チェック
なお、入門編で扱わない知識は以下の通りです。 今後、応用編として扱う予定です。
- 静的単一代入(SSA)形式
- コード生成
- ポインタ解析
- コールグラフ
※ 内容が変更になる可能性があります
※ 参加者の希望によって、内容を変更する場合があります
※ 途中で適宜休憩を入れながら講義を行います
対象者
- Goの基礎を一通り終えた方
- GoでGoの開発ツールが作りたい方
入門者向けの講義ではありません。Goの基礎的な内容は解説しませんので、予めご了承ください。Goの基礎的な内容を学習したい場合は、無償のGopher道場やプログラミング言語Go完全入門をご活用ください。
18歳以上の方を対象としております。
参加方法
- 講義:Remo
- 質問:Slack
RemoやSlackのURLはconnpassのメール機能によってお送り致します。
用意するもの
- 以下の環境が入ったPC(OSは問いません)
- 最新のGoのツールチェイン
- Remo(Chromeなどのブラウザ)
- Slack
講師のPCはmacOSです。WindowsやLinuxのPCでもご参加頂けますが、OS固有の問題にあたった場合は解決できないことがありますので、ご了承ください。
RemoやSlackのURLはご入力頂いたメールアドレスに共有致します。
配布物
参加者の方には、スライドおよび当日の録画を配布致します。 なお、準備には万全を期しますが、機器トラブルによって録画が行えない可能性がありますので、予めご了承ください。
スライドの一部は、今後の講師の活動において無償で公開される可能性があります。予めご了承ください。録画動画は編集し、有料の講義動画として公開する可能性があります。参加者のみなさまが特定できる形では公開致しません。
配布物はアンケートフォームにご入力頂いたメールアドレスに共有致します。
質問について
講義当日までに、Slackにご招待します。当日はSlackに質問を頂けると回答致します。 当日質問頂いた内容は、録画される可能性があります。
Slackでの質問は講義後、1ヶ月間は回答を保証致します。期間後はベストエフォートにて回答致しますが、期間外は回答をお約束できるものではありません。また、期間内であっても質問の内容や分量によっては回答しかねる場合もございますので、予めご了承ください。なお、質問内容は講義内容に関するものでなくても、回答が可能なものはお答えします。
有償開催について
講師はコミュニティ活動の一環として、無償の講義も行っています。コミュニティ活動は、所属企業によるサポートや一般社団法人Gophers Japanとしての活動、および限られた個人の時間を用いて行っています。
本講義は、講師個人の時間を使用して行っています。そのため、準備・実施時間などを鑑みて有償とさせて頂いています。なお、今後の需要によっては価格の改定などを行う可能性がございます。
学生枠について
学生は無料で参加頂けます。申込時のアンケートフォームに、ac.jpで終わるドメインのメールアドレスを入力ください。
社会人としての収入(アルバイトやインターンシップは除く)のある学生の皆様は、他の学生の方を優先したいので、通常枠でご参加頂けますようお願い致します。
所属学校から末尾がac.jpのメールアドレスが発行されていない学生のみなさまは別途お問い合わせください。
なお、学生では無いにも関わらず、学生枠に申し込んだ場合(学校のメールアドレスの記載がない場合)は、こちらでキャンセル致します。誤って申し込んだ方は別途、ご連絡ください。
ブログ枠にて登録された方はブログへの投稿の後に、Gophers Slackへの投稿とこのconnpassページへ掲載を行いますので、ご連絡ください。
企業向けの講義について
本講義は、個人向けの講義となっています。企業で同じような内容での講義をご希望の場合は、仕事依頼フォームから別途お問い合わせください。
行動指針
本イベントでは、参加者および講師はGo Community Code of Conductに従います。
ライセンス表記
GoのマスコットのGopherの原作者はRenee Frenchさんです。
注意事項
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。
新規会員登録
このイベントに申し込むには会員登録が必要です。
アカウント登録済みの方はログインしてください。
※ ソーシャルアカウントで登録するとログインが簡単に行えます。
※ 連携したソーシャルアカウントは、会員登録完了後にいつでも変更できます。