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
1k
Money Forward XでのGo利用事例について
マネーフォワード×ナレッジワーク 『ビジネス課題をGoで解決する 』
keitaro shishido
March 09, 2023
Tweet
Share
Other Decks in Programming
See All in Programming
Compiling Python to WebAssembly with py2wasm
syrusakbary
0
130
せっかくモデル図描くのなら、嬉しいことが多い方がいいよね!
kuboaki
1
1.7k
どうしてこうなった命名集 ~🔥編~ / OOC 2024 LT
pictiny
4
2.8k
チームでモデリングを育てるうえで 考えたこと・気づいたこと / Cultivating Modeling in Teams: Thoughts and Insights
mackey0225
5
2.2k
[スクリプト] Swiftの型推論を学ぼう
omochi
0
110
ドメイン・ファーストで考える問題解決に役立つモデル設計 / Domain First Model Design
suzushin54
1
1.4k
TDDと今まで
kanayannet
0
140
document.write再考
brn
5
2.5k
CSRF対策のやり方、そろそろアップデートしませんか / Update your knowledge of CSRF protection
hiro_y
25
14k
【KMC春合宿2024】実装視点で見るNeural Radiance Fields
runningoutrate
0
150
導入から5年が経って見えた Datadog APM 運用の課題
bgpat
2
540
Go1.22からの疑似乱数生成器について/go-122-pseudo-random-generator
convto
1
160
Featured
See All Featured
Bash Introduction
62gerente
604
210k
Fontdeck: Realign not Redesign
paulrobertlloyd
75
4.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
The Mythical Team-Month
searls
214
42k
Embracing the Ebb and Flow
colly
78
4.1k
GitHub's CSS Performance
jonrohan
1023
450k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
11
1.4k
Thoughts on Productivity
jonyablonski
57
3.8k
Raft: Consensus for Rubyists
vanstee
130
6.2k
Optimizing for Happiness
mojombo
369
69k
Six Lessons from altMBA
skipperchong
19
2.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
8
8.2k
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