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
マネーフォワード クラウド経費 フロントエンド分離はじめました
Search
Money Forward, Inc.
September 06, 2023
Technology
0
150
マネーフォワード クラウド経費 フロントエンド分離はじめました
Money Forward, Inc.
September 06, 2023
Tweet
Share
More Decks by Money Forward, Inc.
See All by Money Forward, Inc.
スケールし続ける事業とサービスを支える組織とアーキテクチャの生き残り戦略 / The survival strategy for Money Forward’s engineering.
moneyforward
0
280
MEet Flutter Add-to-App: Unlocking Our Productivity
moneyforward
0
210
マネーフォワードが取り組む グローバルテックカンパニーへの挑戦 / Money Forward’s Challenge to Become a Global Tech Company
moneyforward
0
280
マネーフォワードのエンジニアリング進化論 / The Evolution of Engineering at Money Forward
moneyforward
0
530
Rubyにおける並行処理 / Concurrency in Ruby
moneyforward
0
210
通知基盤におけるKafka活用事例 / Kafka Case Study on the Notification Platform
moneyforward
0
370
マネーフォワードにおけるデータ戦略 / Data Strategy at Money Forward
moneyforward
0
320
FiftyOneを用いたOCRモデルの比較 / Comparing OCR Models using FiftyOne
moneyforward
0
170
グローバル環境における効果的なチームワーク / Effective Teamwork in a Global Environment
moneyforward
0
300
Other Decks in Technology
See All in Technology
AWS re:Invent 2024 recap in 20min / JAWSUG 千葉 2025.1.14
shimy
1
100
Azureの開発で辛いところ
re3turn
0
240
【NGK2025S】動物園(PINTO_model_zoo)に遊びに行こう
kazuhitotakahashi
0
220
実践! ソフトウェアエンジニアリングの価値の計測 ── Effort、Output、Outcome、Impact
nomuson
0
2.1k
アジャイルチームが変化し続けるための組織文化とマネジメント・アプローチ / Agile management that enables ever-changing teams
kakehashi
3
3.4k
Accessibility Inspectorを活用した アプリのアクセシビリティ向上方法
hinakko
0
180
信頼されるためにやったこと、 やらなかったこと。/What we did to be trusted, What we did not do.
bitkey
PRO
0
2.2k
東京Ruby会議12 Ruby と Rust と私 / Tokyo RubyKaigi 12 Ruby, Rust and me
eagletmt
3
870
デジタルアイデンティティ技術 認可・ID連携・認証 応用 / 20250114-OIDF-J-EduWG-TechSWG
oidfj
2
670
Kotlin Multiplatformのポテンシャル
recruitengineers
PRO
2
150
Cloudflareで実現する AIエージェント ワークフロー基盤
kmd09
0
290
.NET AspireでAzure Functionsやクラウドリソースを統合する
tsubakimoto_s
0
190
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Designing Experiences People Love
moore
139
23k
Gamification - CAS2011
davidbonilla
80
5.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Being A Developer After 40
akosma
89
590k
Documentation Writing (for coders)
carmenintech
67
4.5k
Become a Pro
speakerdeck
PRO
26
5.1k
Why Our Code Smells
bkeepers
PRO
335
57k
Transcript
マネーフォワード クラウド経費 フロントエンド分離はじめました Money Forward Tech Event vol.1 2023/07/26 カシフクトモヤ
自己紹介 樫福智哉(カシフクトモヤ) 2023年4月 株式会社マネーフォワード に入社 徳島出身、Iターンで東京から福岡に引越し
趣味: ゲーム(最近はゼルダ、ピクミン)、博物館巡り GitHub: https://github.com/tnyo43 𝕏: https://twitter.com/cashfooooou
おことわり まだ始まったばかりのプロジェクトでリリースはしていないです。 「こんなプロジェクトを始めたよ」「こんなことを考えて取り組んでいるよ」という共有です。
マネーフォワード クラウド経費の紹介 経費精算を自動化するシステム スマートフォン・PCで操作可能で、各種サービス自動連携やレシート内容の自動読み取りなど、 手入力の手間を徹底して省くことができる。 2016年2月にサービス提供開始( 現在8年目) 面倒だった経費精算にかかる時間を1/10※に 経費明細のデータ
連携で自動入力 ※当社調べ 領収書画像データの 自動取得 独自の銀行API連携機能で 振込処理が効率化
歴史が長いからこそのつらさ • レガシーな技術 ◦ ある時点で最善の選択をしても、すぐによりよい技術が登場する ◦ そもそも技術の刷新は難しい ▪ 通常の機能開発の片手間でやるには規模が大きすぎる ▪
過去に技術的な改善を試みたが、完全には対応しきれなかった • 例: slim + coffeescript, React (jsx, tsx)で書かれたコードが混在 • コードが密結合 ◦ フロントエンドとバックエンド、一見関係なさそうなフロントエンドのコードが密結合 ▪ 小規模に見える変更が簡単にできるとは限らない ▪ アーキテクチャレベルの対応が必要 ◦ そもそもテストしづらい ので、十分テストされている状態を作ることが難しい ▪ デグレが発生してしまう
フロントエンド分離はじめました 2023年3月から、フロントエンドの負債解消プロジェクト 「フロントエンド分離」 発足 やること • コード品質の向上 • フロントエンドとバックエンドの分離 •
モダンな技術の導入 ... などなど 期待する効果 • バックエンドとの疎結合化 • デプロイの独立 • テスタビリティ向上 + カバレッジ向上 • フロントエンドの性能改善 ... などなど
フロントエンド分離のここがすごい! • 今後の長期的な開発を見据えて、しっかりリソースを割く • 内部品質を高くするために、独立性を高くする • モダンな技術を取り入れる
フロントエンド分離のここがすごい! 今後の長期的な開発を見据えて、しっかりリソースを割く 現在、4人のエンジニアがフロントエンド分離に専属で取り組んでいる。 完遂まで年単位でリソースを割くことを決断している。 品質を高くすることが目的なので、品質に妥協をしない。 • プロダクトを長く育てていく意思がある • 会社の体力があるからこそできること 意外と難しい
つい瞬間的なスピードを求 めて妥協しがち
フロントエンド分離のここがすごい! 内部品質を高くするために、独立性を高くする 機能ごとにパッケージを分けて小さくビルドする。 安全な開発ができる状況を目指す。 • パッケージ同士を疎結合にして、責務・影響を最小限に留める ◦ 内部品質の向上 ▪ 理解容易性
▪ 変更容易性 ▪ テスタビリティ ◦ ユーザへ届ける価値が高まる ▪ リリースまでにかかる時間が短くなる ▪ 障害の修正までにかかる時間が短くなる ディレクトリを分けることより も強い制約
フロントエンド分離のここがすごい! モダンな技術を取り入れる ユーザ体験/開発体験を向上させることを目的に、新しい技術を積極的に取り入れていく • React + Next.js (フロントエンドフレームワーク、 App Router
も導入中) • turbo (ビルドシステム) • URQL (GraphQL クライアント) • Jest + Testing Library (UI を含めた自動テスト) • Storybook (UI カタログ、 VRT) • Mock Service Worker (ローカル環境、テスト環境のためのモックサーバー)
フロントエンド分離の行く末は、君の目で確かめてくれ! フロントエンド分離プロジェクトは、まだ始まったばかり。 今後どのように進んでいくかは神のみぞ知る ...。 • テックブログやイベントで発信をしていく予定 ◦ Moneyforward Developers Blog
◦ Zenn ◦ connpass • We are hiring! ◦ 他にもいろんな技術改善プロジェクトがあります ◦ この後の懇親会でぜひ声をかけてください ◦ 採用情報 ◦ 発表者の 𝕏: @cashfooooou