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
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
920
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
120
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
8
1.3k
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
980
コードを読んで理解するko build
bells17
1
110
Domain-Driven Transformation
hschwentner
2
1.9k
Django NinjaによるAPI開発の効率化とリプレースの実践
kashewnuts
1
250
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
5
1.1k
CI改善もDatadogとともに
taumu
0
200
推しメソッドsource_locationのしくみを探る - はじめてRubyのコードを読んでみた
nobu09
2
200
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
150
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Gamification - CAS2011
davidbonilla
80
5.2k
Producing Creativity
orderedlist
PRO
344
40k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
370
Side Projects
sachag
452
42k
Visualization
eitanlees
146
15k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
BBQ
matthewcrist
87
9.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Building Applications with DynamoDB
mza
93
6.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
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