技術広報ブログ

技術広報のためブログです。

Go言語のすごさとその将来性についてのメモ

結構前の話になってしまいましたが、7月1日に開催された「Qiita Night〜これだけは伝えたい!Goのすごさとその将来性〜」に参加していました。Goには興味があったので、本当に短文ですがメモ残して起きます。Goの前提知識がそれほどなかったので、今回勉強会を開いてくださり、とても助かりました。ありがとうございます。

 

【概要】

参加した理由:Rustを勉強しようかと思ったけど、Goについても関心があったから

学んだこと:GoはGoogleが開発しており、コードの一貫性にこだわった言語

実践すること:とりあえずRustを触っていく(すみません)

 

登壇内容は下記の通り。

  • LT①「弊社でのGoの取り組み〜どう広げたか、その後の人員戦略〜」
  • LT②「スケールするGo」
  • LT③「Googleソフトウェアエンジニアリングに沿った開発をするためのGoの利便性」
  • トークセッション

 

LT①「弊社でのGoの取り組み〜どう広げたか、その後の人員戦略〜」のメモ

Go言語は2018年のデータ連携バッチにつかい始めた。

その時からの課題

・みんな初心者

  • OSSコードを読んだり勉強会に参加して知見を貯める

・正しい書き方がわからない

  • Ossのコードを読んだりしてブラッシュアップ

・リリースして終わりじゃない

  • 自動化を加速して解決していった

・リリース時にバイナリ再起動が必要

  • コンテナベースの仕組みを利用で解決していった

 

人員戦略

その時に出た3つの案

  • 社内の他のチームから持ってくる → 現実的ではない
  • 新規で人を増やす → 時間がかかる
  • パートナーさんに頼る

勉強会やチュートリアルを作って、みんなで高めるようにするのが大事

 

Goの良いところ

  • 標準で用意されているツール群
  • シンプルな言語である
  • 並行処理の書きやすさ
  • ワンバイナリ(他の環境構築に持っていけば大抵動く)
  • Goユーザの愛情深さ

 

LT②「スケールするGo」のメモ

Goができた背景は次の記事に書いてある

Go at Google: Language Design in the Service of Software Engineering

https://talks.golang.org/2012/splash.article

 

Go v1の間は言語の後方互換性が保たれる(Go v2はしばらくは出ない)

コードフォーマットができている

コミュニティの意見の取り組みがある

Goの言語だけでなく文化も学ぶ

 

LT③「Googleソフトウェアエンジニアリングに沿った開発をするためのGoの利便性」

エムスリー株式会社はGoを多く採用している

Go言語の良いところはコードの一貫性を大切にしている

  • gofmtやgoimportsで標準ツールの自動化 → 公式が用意しているのが良い
  • スケーリングを可能 → 長期保守をしやすくする
  • GoもGoで書かれている → 手を動かして書き方を学べる
  • Goは驚くような書き方ができない → 初心者と経験者でそれほど差がでない

 

トークセッション

Q Goのここが困っている

情報が少なくて調べるのが大変

 

Q Goでの調べ方

公式ドキュメントやHelpコマンド、ソースコードをみて調べる。

公式のブログ

 

Q おすすめのフレームワーク

net/http、他はnet/httpのラッパー

 

Q Goの魅力

触りやすい

モジュールが公開しやすい、コミュニティもモジュールをよく公開してくれている

 

Q どの場面でよく使われているか?

WebApi、インフラ系のOSS

 

Q なんの言語に似ているか?

圧倒的にCに似ている

 

Q Goで何から行えばいいか?

小さいことから始める。コマンドラインツールとか社内向けの画像変換ツールとかを作る。

 

Q Goの苦手なところ

UIを作ることや数値計算系。APIサーバに徹することが多い