Transcript
DBじゃないOracleの話
Gunosy.go#12
なに?
Goの開発環境いろいろ揃ってるから、Goを書き始めたものぐさjava使いの人も心配しなくていいよ、という感じの話です
だれ?
・川田優介 (@kuxuxun)
・フリーランスプログラマ
・Java -> Scala -> Haskell ->
Clojure -> Go
・https://github.com/kuxuxun
新しい言語を学ぶものぐさjava使いの悩み
・Eclipse、Intellij対応してない言語で開発環境整備に
苦労した思い出がある(Scalaとか。。)
・それを思い出すとちょっと面倒(エディタで書きたい)
※IntelliJは不満ないくらいに対応済らしいです。
Eclipseも未調査ですがきっといけてるはず。
・IDEが必要になるときがきっと来る
Goを選ぶ(個人的)理由
・ぶりぶりリファクタリングしたい
のでコンパイル言語がいい
・コンパイルさくさく
・メモリ食わない
・公式/準公式の開発支援ツールが
やたらある
開発支援ツール・gofmt
・golint
・gorename
・godoc
・stringer
・oracle
・などなど…
golang.org/x/tools/oracle
・リッチなIDEのようなソースコード解析を
提供してくれるツール
・各種エディタとの連携(vim,emacs, atom,sublime)
・go doc以外にも親切なマニュアルがある
“go oracle: user manual”
golang.org/x/tools/oracle
1 callees
呼び出しているfunctionの情報取得
2 callers
自分を呼び出しているfunctionの情報取得
3 callstack
自分を呼び出しているfunctionの階層を取得
golang.org/x/tools/oracle
4 describe
変数の情報を取得(変数の型など)
5 freevars
選択範囲で参照はされているけど値の代入がされて
ない変数を洗い出す
6 implements
interfaceと構造体の関連情報をいろいろ取得
golang.org/x/tools/oracle
7 peers
channelがmakeや参照されている箇所の情報を取得
8 pointsto
指定のポインタ変数への代入箇所一覧
9 referrers
変数を参照している箇所一覧
golang.org/x/tools/oracle
7 peers
channelがmakeや参照されている箇所の情報を取得
8 pointsto
指定のポインタ変数への代入箇所一覧
9 referrers
変数を参照している箇所一覧
Goには強力な開発ツールがたくさん
top related