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の苦手なところ