Gokyoto 行ってきた。 Go、チュートリアルやったり、Docker のコード読んだりくらいしかしてなかったので、集中して Go 勉強できるちょうどいい機会だった。
A Tour of Go で Go に入門した - ゆううきブログ
Go
@Jxck_ さんの当日の資料、コンパクトにまとまっててよかった。 A Tour of Go さっとみたあとにみるとよい感じする。
Go Kyoto(Go勉強会 そうだ京都、行こう) のハンズオン資料 (http://www.zusaar.com/event/4367004)
新しい言語を覚えようとすると、言語仕様はもちろんある程度覚える必要があるけど、開発補助ツールとか標準的な書き方とかデバッグ方法とか実装に向いたアプリケーションの性質などの文化を知る必要がある。 Perl とか歴史が長い言語ほど困る。cpanm を知らずに過ごしてしまうこともありうる。 新しい言語だと情報がその分少ないのでそれも困る。 その辺を自分でウォッチするのは結構手間がかかるので、たった4時間でそういうのを知れたのはすごくよかった。
具体的に得られた知見は以下の様な感じ。
- http://godoc.org 相当のアプリケーションをローカルで起動できる。インターネットなくても安心。あと、自分で書いたモジュールのドキュメントもみれる。
godoc -http=:4000
- init 関数で初期化処理を走らせることができる。(Perl の BEGIN ブロックに近い?)
- log.SetFlags(log.Lshortfile) って設定しておくと、log の出力フォーマットが日付の代わりに行番号になる、デバッグ時に便利。
- 変数宣言時にはだいたい暗黙的型宣言を使う。
- Vim の場合、https://github.com/jnwhiteh/vim-golang を使って、保存と同時に gofmt 書けられるから便利。
- スライスのハマりどころ
- Go の事例集ページ知らなかった。 GoUsers - go-wiki - A list of organizations that use Go. - Go Language Community Wiki - Google Project Hosting
- Youtube の MySQL ツール知らなかった。youtube/vitess · GitHub
- Go のサンプルコード集 Golang Sampes · GitHub
- Go は rubygemsやbundler相当の"標準的な"パッケージ管理システムを持ってない
- バージョン固定とかは、go get で落としてきたコードをそのまま自分のリポジトリにコミットする
- [New] package mapper という仕組みでバージョン固定できそう mapper - GoDoc
- たまたま見つけたけどいい資料あった。 build-web-application-with-golang/ja/ebook at master · astaxie/build-web-application-with-golang · GitHub
- もっとあった気がする
当日書いたコードは、https://github.com/y-uuki/gotask においた。
感想
#gokyoto なんか初心者じゃないっておこられた きびしい
— ゆううき (@y_uuk1) 2014, 3月 15
初心者のフリした非初心者が混ざってる罠。 #gokyoto
— Jxck (@Jxck_) 2014, 3月 15
おこられたので、モジュール分割とテストも書いてって言われて書いた。 チュートリアルしかやってない人間、どう考えても初心者だと思う。
懇親会、なんか Go とか Eralng とか JS とか HTTP2.0 とか Immutable Infrastructure とか話してた気がするけど何も思い出せない。 @Jxck_ さんが最高のエイプリルフールネタ思いついたって喜んでおられたからだいたいよかったと思う。
イベント準備・運営していただいた @shokiri さん、はるばる東京から講師としてきていただいた @Jxck_ さんありがとうございました。
某社発見 #gokyoto pic.twitter.com/hfdQbvcDqg
— Jxck (@Jxck_) 2014, 3月 15
見つかった。