Help us understand the problem. What is going on with this article?

Go言語開門

More than 1 year has passed since last update.

まだ、入ってはいないので開門。

※ここでまとめるのは技術的なことよりも、勉強会に参加して良いなと感じたことなどエモい話中心です。
技術的なことでしたら、他の方が丁寧にまとめてくださっております。

Goを使う上で良いなって感じたこと

チームで開発する際の優位性

Goに入ってはGoに従え」という言葉あるように、大体の人が同じコーディングになる。
GofmtとGolintで整形する必要があるので、開発する際は個々が好きなフォーマットで開発しても問題ない。そのため、コーディング規約の同一や摺合せの必要がなくなる。

また、Goに触ったことがないニューカマーも
A Tour of Go
Effective Go
を一通りこなせば、キャッチアップできる。

普通に開発すればそこそこパフォーマンスが出せる

愚直にコーディングするしかないので、読み/書きの量は多いが、基本的には無難なコーディングとなっていく。
並列処理が開発しやすく、FIFOキューといった順番を考える処理も担保しやすい。

また、pprofでパフォーマンスの改善点を探すことができ、改善ポイントさえ見つけてしまえば他の人に実装を委ねることもできる。

シンプルな言語仕様

デザインが「悪い方が良い」原則(worse is better)である。
New Jersey アプローチ:はじめから必要なものは一通り用意されいる

Goのkeyword(予約語)は25語あるだが、マイナーチェンジの間は変わらない。言語のバージョンアップも原則バグフィックスかパフォーマンス改善となっている。なので、基本的にはひたすら同じコードは動く。

シンプルは後から足せないので、言語のバージョンアップによるデグレを確認しなくて良いのは良いと思いました。
(使っている機能が消されたら辛い

※対立的にMITアプローチというものがある。
(一貫性を欠かさない。代わりに完全性が少しだけ犠牲にしても良い)
参考:http://chasen.org/~daiti-m/text/worse-is-better-ja.html

配布が用意

バイナリとしてビルドができるので、自分で作ったツールを他に配りやすいのは良いと思いました。

ハマりそうなポイント

http://www.yunabe.jp/docs/golang_pitfall.html
https://qiita.com/umisama/items/e215d49138e949d7f805

ri-zhi
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away