mercari.go #9 に参加した
Gopher ライブドローイングのご説明
@tottie san
- Gopher のスタンプを作った話
- 何も貼れないけど、ボツになったスタンプたち(めっちゃかわいい
- お気に入りスタンプ
protoactor-goでPregelを作った話
@rerorero san
ちょっと自分には難しかったのでメモが取れてない
メルペイでの残高管理の話
@knsh14 san
- balance service
- トランザクションの貼り方
- DB について
- Cloud Spanner
- mercari/yo でコード生成
- API の実装
- 各種残高の増減
- 上位サービス Payment Service との通信
- RPC 設計
- どの残高を捜査刷る時でも同じように扱える -> 共通のインターフェース
- Payment でのロールバックに対応したい
- 冪等性を担保するための仕組み
- payment の各フェーズでリトライができるかを考える
- 2重取り引きを防ぐ
- 参照形
- 更新がかからないので冪等性は必要ない
- 更新系
- 途中でタイムアウトしたら?
- 叩く側のマイクロサービスがリトライしたら?
- => 冪等性の担保が必要
- 1つの取引で処理は1度だけ
- 取引の履歴
- 何か買ったときのお客様情報の調査
- 取引レコードからの産出 => 会計にも使える
- 取引後の残高スナップショット
- 取引後の残高スナップショット
- 消費、追加などの結果のスナップショットを保存
- 前のスナップショットの ID をたどることができる
- トランザクションの最終段階でスナップショットを作成
- 前のスナップショットに最新の ID を追加する
- まとめ
- メルペイの中で一番裏で動いている
- マイクロサービスで意識しないといけないこと
- バランスサービスはメルペイの中でもシンプルなサービスだけど考えることが多い
マイクロサービスの 1 サービス単位でどういう事に気を付けないといけないのか気になっていたので、とても参考になった。
Readable code in Go
@akkie30 san
- 読みやすさの話
- 名核な言葉を選択する
- Filter より Select, Exclude,Older(Newer)Than
- シフト演算の例
- 読める人と読めない人が別れやすい => コメントがあったほうがいい
- 意図がわからないパラメータ
- 読み手が理解できるコメントがあると嬉しい
- 監督としての感想を書く
- 追加要件の時は実装を1から見直す
- ネストが浅くなるかも?
- 段落分けを行う
- 脳は自動的にグルーピングするので、改行があるだけでも読みやすくなる。
- Lint 何使ってますか?
The Go Playgroundをコマンドラインから扱う
@tenntenn san
- ダブルブッキングしたので Gopher 道場の会場から
- 外部 package の import. ができる
---
でファイルが区切れるようになった- gp
- txtar 形式
Gopher イラスト発表
@tottie san
- Gopher さんのお披露目
- 合計 9 枚の作品がライブペインティングで完成!
- スタンプ制作中は追いこまれた
- Gopher. スタンプをリリースしたことで温かいフィードバックをもらえた
- 絵を書くことに価値を見いだせた
ライブドローイングや、リモートからの発表など楽しい内容が盛りだくさんでとても楽しかった。mercari.go のたびに go が楽しくなるので、引き続き参加したい!