Fumiのブログ

「golang.tokyo #22+Okayama.go/Sendai.go」参加レポート

はじめに

f:id:fantm21:20190322231052p:plain

最近Golangをどんどん使いたい衝動に駆られています。まだ入門した手だけど。

engineer-fumi.hatenablog.com

そんな中で、Golangのハンズオンがあるじゃないですか。
それは参加しますよね。

golangtokyo.connpass.com

主催者

golang.tokyo

プログラミング言語のGoの導入企業のメンバーが集まり、Goの普及を推進するコミュニティです

golangtokyo.github.io

twitter.com

www.youtube.com

タイムテーブル

時間 内容
12:30 ~ 開場・受付
13:00 ~ モクモクハンズオン
~ 17:00 終了・撤収

概要(Connpassより)

静的解析に必要な知識をハンズオン形式で学習します。 終わった方々でgolang.org/x/tools/go/analysispkgをつかった静的解析ツールの自作に挑戦してみましょう。

以下の資料で触れられている内容に取り組んでいると当日楽しめるかと思います。

invite.slack.golangbridge.org

前準備

前日まで何もしていないので、開始前の午前中に概要で書かれていた資料を一通り目を通します。

当日

好きなGopherくんが作れる(∩∀`*)

gopherize.me

静的解析は何のためにする?

プログラムの品質チェックに使う ・自動生成の時にもよく使う

Goと静的解析

Goは静的解析しやすいように作られている

Goの式とは

静的解析の基本的な手順

https://cdn-ak.f.st-hatena.com/images/fotolife/u/uedatakuya275/20181214/20181214185312.png

Goの標準パッケージ

go/ast go/build go/constant go/doc go/format etc...

Goのサードパーティパッケージ

x/tools/goパッケージ

中身一覧 * analysis
* ast
* callgraph
* cfg
* expect
* packages
* pointer
* ssa
* types

1. 字句解析

  1. 入力された文字列をトークンとして分解
  2. トークンを抽象構文木(AST)に変換
ソースコード => トークン => 抽象構文木(AST)

黙々ハンズオン

golangtokyo.github.io

このハンズオンをしながら、Slackで色々質問しながら個々のペースで進みました。
いつも講師がやっているのを真似して、みんな一律で進むからこの方式は初体験。

最初は、どうしたらいいか分からなかったけど、
Slackでどんな初歩的な質問もGoの構文関係についての質問もできてすごく有意義な時間でした!!!

これから

とりあえず、以下のリンクのソースを呼んで、使い方をもっと学ぼ。

github.com

godoc.org