「merpay Backend Engineer Meetup #3」に参加してきた
参加のモチベーション
- Golangを副業等で使っていて、初心者を抜け出したい。
- Golangが使い慣れたら、どのような印象に変わったかを知りたい。
- 今のところ、パワフルかつ緩やかに型が強制されるメリットを感じつつも、書いててあまり楽しくはないw。
参加メモ
※ 客観的に書いてるつもりですが、私にとって自明なところは省略したり、勘違いしてる可能性もあるので予めご了承ください。
パネルディスカッション
登壇者
なぜGoを選択したのか?
- メルカリの歴史的経緯
- 機能面
- Dockerと相性がよい
- みんな同じ書き方になるので、不毛な戦争が起きない
- 型がある
勉強方法は?
syumai
- 出会い
- 勉強法
- A Tour Of Goから始めた
- 本
- スターティングGo言語 (CodeZine BOOKS):易しめで個人的には良かった
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES):CSの知識がある前提で進められる部分もあり、最初は難しく感じた。訳者の柴田さんと毎週1時間半読み続けてる。
toshi0607
- 出会い、どうやって勉強したか
- 前職の別のチームで採用して楽しそうだと思ってた
- Udemyで独学
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)を読んだ
- しっくりきた
- 何回読んでも、学ぶや発見がある
- A Tour Of Goはやったが、あまり合わなかった
- サーバレスアーキテクチャでは大体Golangが採用されてる
- Gopher道場に参加
- オススメ勉強法
- Gopher道場
- CLIを作るのは勉強になった
- 簡単にマルチプラットフォーム対応できて、いろんな人に見てもらえる
- 他の言語で書かれたものをGoで書き換える
- 技術書典で Goで学ぶAWSラムダ を出版
execjosh
- MySpaceでRubyでザッピングのツール使ったら遅い
- 当時α版のGolangを使ってみたら、めちゃくちゃ速かった
- 社内のツール(?)でGolangが使われてた
- バグを修正しようと思いコードを読んだら、スラスラ読めた
- PR投げて経験つけた
- Gopher道場に参加
メリットやデメリット
- Goを採用して良かったこと
- 別の言語からGoに変えた経験談
toshi0607
- Rubyと違って型があるので安心
- パッケージとか構成とかの設計とかの方が悩んだ
- 他のプロジェクトや本でキャッチアップ
- Golangそのもののキャッチアップにはあまり苦労しなかった
- マイクロサービスやgRPC, GCPとかのキャッチアップに比べると楽
- k8sが一番きつかった(人類にはまだ早いw)
execjosh
- そこまで苦労しなかった
- オブジェクト指向から抜けるのが時間かかった
- エラーハンドリングは特徴的
syumai
- 型で安心
- protobuf採用してるので、ビルド時に気づけるので
- リファクタリングが速い(Golandのメソッドの置換)
- インターフェースは苦労した
- 差し替えるモックとかDIのありがたみがわかるまでは特に
- エラーハンドリング
- errorのstructにどういう情報もたせるべきかが最初は悩ましい
気をつけてることなど
toshi0607
- 標準パッケージが読みやすいのでそこから学ぶ
syumai
- レイヤー間は厚めに
- チームによってアーキテクチャが異なる
execjosh
Q&A
- goroutineはメルカリでも使っているか
- 負荷がなくても、SQLを複数投げるときとかに有効で使ってる
- なんだかんだ避けては通れない
感想、個人的な学び
- Gopher道場良さそうなので、参加してみたい
- プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)読む
- 簡単なCLIを作る