1.11 まとめ

具体的な実装方法のベストプラクティスといいつつ、Goの文化や考え方が伝わりやすいトピックを集めました。特に、Go以外の言語の人がGoに触れるときに気になるトピックなどを集めています。

特に、Javaのような実行時にさまざまなことが動的にできる言語を利用してきた方からすると、Goはかなり妥協の産物に見えるかもしれません。多くの割り切りのおかげでGoはシンプルに作られています。Goは書きやすさよりも、読みやすさにパラメーターを振った言語と言われています。誰が書いても似たような見た目になります。また、コードフォーマッターのgo fmtコマンドはオプションがなく、Goユーザーが全員同じスタイルのコードを書くことになります。Go 1.13からはGo Modulesというパッケージ管理も公式で用意され、ツール選定で悩まないようになりました。

言語レベルではメタプログラミングを使って動的に挙動が変わる余地がほとんどなく、なるべく静的に解決していく文化を持っています。そのため、書いてある通りに動作します。1の記述をしただけで、裏でさまざまな便利な処理をするJavaとは異なります。

Goに限らずですが、言語や技術を使うときは、それぞれの作者がベストだと考える実装方法を選択すると、短くコンパクトに書けて、間違いも少なくなるように設計されています。今までの言語と違うところがあっても、なるべくGoらしさを意識してGoしぐさを身につけると、他の人の書いたコードを読んだ時のストレスも減り、理解もしやすくなります。