とっしぃのTech Memo

PHPとかサーバとか他色々言語のメモ的な。あとはたまにガジェットとか。

夏だしgolang始めてみました

ご無沙汰してます。

とっしぃです。

一度書くの止まっちゃうともう無限に止まっちゃうんですよねブログ。

その円環の理を破るためにもたまには更新します。

まえがき

最近の業務的には特にネタになるようなものがなく、淡々と改修やらなんやらやってたんですが、 プライベート、というかtwitter界隈でよく目にしていたgolang(GO言語)がなんか良さそうってんで ちょっとやってみっかと思ったのでその話でも。

なんでgolang

そもそもなんでgolangかっていうとこなんですが、理由は何点か。

  • 就職した時から転職するまではずっとjavaだったけど最近はphpjavascript、たまにbashくらいしか触ってなくて、もっかい静的な言語やりたいと思った
  • ちょっとしたサービス作りたくて、バックエンド・フロントエンドと考えたらバックエンドはAPIサーバ、フロントエンドはjsでのSPAが理想型(個人的には)だなーと思った
  • APIサーバだったらViewとか要らなくて、CakePHPやらLaravelやら、RoRやらDjangoやら、Expressやらは要らない、つまりphpとかrubyとかpythonじゃなくていい
  • だったら静的言語にしよか
  • でも今更Javaもなー。記述量は多かったしモダンさはないよね。仕事ならともかく趣味なら趣味に走ろう
  • js界隈、python界隈の人がgolanggolang言ってて気にはなっていた
  • 同じく名前よく聞いていたのはRustだけど、これはホントに文献なくて困った
  • んじゃもうgolangかなぁ

てな感じ。

調べてたらあのカヤックさんもgolang推進派ぽくて、これは今後やっといて損はないのかなとも。

www.kayac.com

golangてどんな言語やねん

ものすげーざっくりと、

  • 静的型付け言語
  • C系言語、Python辺りに影響を受けたらしい Go (プログラミング言語) - Wikipedia
  • セミコロン要らない
  • スライスっていう便利な配列みたいなのがある
  • ループはforだけ
  • switchで式が使える
  • switchでbreakいらない
  • runeなんていう厨二心をくすぐる型がある(int32と同じらしい)
  • 例外(Exception)がない
  • 構造体(struct)がある
  • 型定義ができる(type)
  • 継承がない
  • interfaceはある
  • 変数定義と代入を同時にやる:=って演算子がある
  • 並列処理が得意らしい
  • goルーチンてのがある

とりあえず何すりゃいいんだろう

まずはここと

golang-jp.org

ここ見ながら、

golang.jp

この演習やればよさそう

A Tour of Go

あとWeb系やるなら

qiita.com

とか

Atom(エディタ)の設定

qiita.com

とかって感じすかね。

今後

サービスの進捗とかgolangの発見とかあったらまた都度書いていきます。