まっさんのブログ

エンジニアから、編集・ライターになりました。

Go勉強会にいってきましたー

f:id:toyosge:20150918015857j:plain

Javaもろくに書けないまっさんは、Goに浮気を始めた。

最近、話題のGoですが(ベトナム人の同期がめちゃめちゃ大好き)何者か気になったので勉強会に参加してきました。 インテリジェンスさんとトークノートさんからお一人ずつ会社での事例などを踏まえて、 Goの特徴をシェアする的な内容でした。メモ程度に超ざっくりとまとめたいと思います。 へっぽこ新卒エンジニア、まっさんの拙い知識でのまとめなので、 すべてのセンテンスの最後に「らしい」をつけて呼んでほしいものです。 ご興味をもった方はスライドシェアのリンクを最後に載せましたのでそちらを参照ください。

Goの開発者

  • C言語の開発者 : Ken Thompson
  • UTF-8の開発者 : Rob Pike
  • memcachedの開発者 : Brad Fitzpatrick らへんがからんでる。

Goの仕様、歴史

Googleのえらいおっさん

コンパイルが速く、並列処理とガベージコレクションを持つ 新しい言語に取り組むことに価値があると確信した。」

とのこと。

詳しいことは、以下のGoの日本語ドキュメントサイトのFAQのところに乗っている。 Goの公式ドキュメントを日本語翻訳していていい感じにまとまっている。 http://golang.jp/go_faq

特徴

  • Cを書いてきた人には馴染み易い
  • scalaとかより、習得が用意
  • コンパイルが早い(書き方によっては遅くなるらしい)
  • コードフォーマットのおかげでコード規約とか考えなくていい
  • 並列処理(go ルーチン)をやってくれる
  • コンパイル時の厳格なエラーチェック(いらない変数があったり、使ってないimport文があるとエラーとか?)
  • デプロイの容易さ(scpでポンと置くだけ)
  • スクリプトコードよりネイティブコードの方がアドバンテージある

企業での導入事例

開発環境

単体テスト

パッケージソースと同じディレクトリに、ファイル名が_test.goで終わるファイルを作成する。 このファイル内にimport "testing"と、次の形式の関数を記述する。

```` func TestFoo(t *testing.T) { ... }

```` そのディレクトリでgo testを実行してください。 このスクリプトがTest関数を探して、テスト用のバイナリをビルドし、実行を行います。

終わりに

PHPでプログラムを書いていた人が、楽しい!みたいな感じになったらしいので 社内でPHPとかを書いている人がもしいれば、Goをやってみてもいいかもしれません。

tourが結構充実しているらしいので、僕も時間があるときにさわってみたいところです。

Goに興味がある方は、以下のスライドシェアを参考にしてみるといいかもしれません。


【初心者向け】Go言語勉強会資料:インテリジェンス:大谷 http://www.slideshare.net/yujiotani16/go-49082403

TalknoteとGolangと私:Talknote:三浦 http://www.slideshare.net/leverages_event/ss-49021768

その他参考サイト 【goの日本語サイト】 http://golang.jp/go_faq

【cyber agentのGo専用のサイト】 https://www.cyberagent.co.jp/specialsite/golang/

情報

日時:2015/09/18(土)19:30~21:30 場所: ヒカリエ17階 レバレシーズ ヒカラボ https://atnd.org/events/68914

つぶやき

scalaとかkotlinとかもいいな〜Java8もやらなきゃな〜 業務とプライベートの狭間で色んな技術に振り回され中