Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Money Forward XでのGo利用事例について
Search
keitaro shishido
March 09, 2023
Programming
3
1.3k
Money Forward XでのGo利用事例について
マネーフォワード×ナレッジワーク 『ビジネス課題をGoで解決する 』
keitaro shishido
March 09, 2023
Tweet
Share
Other Decks in Programming
See All in Programming
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
240
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
1k
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
7
1.5k
コンテナをたくさん詰め込んだシステムとランタイムの変化
makihiro
1
150
return文におけるstd::moveについて
onihusube
1
1.3k
useSyncExternalStoreを使いまくる
ssssota
6
1.5k
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
200
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
280
情報漏洩させないための設計
kubotak
4
890
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
1k
Online-Dokumentation, die hilft: Strukturen, Prozesse, Tools
ahus1
0
100
歴史と現在から考えるスケーラブルなソフトウェア開発のプラクティス
i10416
0
140
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Code Review Best Practice
trishagee
65
17k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
1
110
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Navigating Team Friction
lara
183
15k
Done Done
chrislema
182
16k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Transcript
ビジネス課題をGoで解決する − Money Forward XでのGo利用事例について
自己紹介 • 宍戸 啓太郎(Shishido Keitaro) • 2020/12 マネーフォワード入社 • 法人向けサービスを開発するグループのグループリーダー
• Go歴5年 • 職歴 ◦ SIer ◦ 住宅設備機器メーカー ◦ ソーシャルゲーム開発 ◦ 人材系 • 興味 ◦ 競馬 ◦ サッカー観戦(ベガルタ仙台) ◦ ストロングゼロ(ダブルレモンが至高 )
Agenda 1. Money Forward Xの抱えていた課題 2. Goの利用事例 3. Goを利用するメリット 4.
Goを利用したことで見えてきた課題 5. まとめ
Money Forward Xの抱えていた課題 • 2020年頃の状況 ◦ 一部バッチ処理でGoを採用していたが、Rubyプロダクト・エンジニアが中心 ◦ 会社方針としてのGoの採用 ▪
マネーフォワードCTOが考えていること(2020年9月) ◦ Goのエンジニア0人 ▪ Go経験者を採用し、開発力向上・普及を目指す • 金融機関向けサービスに求められるもの ◦ 安定性 ◦ スケジュール ◦ 品質
2020年のPush配信集計バッチでの利用に始まり、 Goを利用するプロダクトが続々と増えています。 Goの利用事例 2020 2021 2022 2023 ★ ★ ★
★ ★ ★ ★ Push配信集計バッチ X Cloud Storage X Insight Marketing XIM-BI Mikatano ID BANK APP Mikatano 課金基盤
Goの利用事例 • Mikatano ID ◦ Serverless Framework (Lambda) × Go
◦ GraphQL (gqlgen)
Goの利用事例 • Mikatano 課金基盤 ◦ EKS × Go ◦ gin
◦ sqlboiler ◦ GraphQL (gqlgen)
Goを利用するメリット • 静的型付けがある ◦ 変更時にテストコードやビルドでミスに気付きやすい(影響範囲がわかりやすい) ◦ 保守性の高さ ◦ 型を使って堅牢に実装出来る(金融機関向けにより安心して使えるようになった) ◦
interfaceを使ったテストしやすいコード ◦ 静的解析を利用したコードチェック
Goを利用するメリット • 習得の容易さ ◦ 記法がシンプルで習得へのハードルが低い ◦ ツールの充実 (gofmt, goimport, golang-cilint)
◦ キャッチアップはどのように? • 基本的には自習 • マネーフォワード社内のGo採用プロダクトを参考に • Go経験者によるレビュー • reviewdogを使っての静的解析
Goを利用したことで見えてきた課題 • フレームワーク・ライブラリのデファクトスタンダードが無い ◦ Goエンジニアが少ない場合、どれを使うか迷ってしまう ◦ 開発止まってしまうものも多い → どうしたか •
コード量が多くなる ◦ エラー判定(if err != nil)多すぎる ◦ Generics(まだ使ったことない)でどのくらい変わるか(コード量、パフォーマンス)
Goを利用したことで見えてきた課題 • 採用難しい ◦ Goエンジニアなかなか見つけられない ◦ 市場感 ▪ Goエンジニアは増えている ▪
Goを採用する企業はもっと増えている • goconのスポンサー増えている(MoneyForwardシルバースポンサー)
まとめ • Money Forward X では2020年頃からGoを採用し、Go製のプロダクトも増えてきました • 金融機関向けのサービスに求められる堅牢性という意味でもGoはより向いていると言えます • Goは比較的習得も容易なので普及に向けたハードルは高くないです
• Goエンジニアの採用は苦戦するかもしれません • Money Forward X ではGoエンジニアを募集しています
We are Hiring! https://hrmos.co/pages/moneyforward/jobs/0004293