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
syam
May 12, 2024
Technology
0
67
タイミーのモジュール分割あれこれ
syam
May 12, 2024
Tweet
Share
More Decks by syam
See All by syam
Firebase Dynamic Linksの廃止と今後
syam4869
1
840
Other Decks in Technology
See All in Technology
Red Hat OpenStack Services on OpenShift
tamemiya
0
130
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.4k
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
1
170
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
140
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
360
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
400
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
220
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
Agent Skils
dip_tech
PRO
0
130
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
540
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
390
Featured
See All Featured
Claude Code のすすめ
schroneko
67
210k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Producing Creativity
orderedlist
PRO
348
40k
Tell your own story through comics
letsgokoyo
1
810
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Leo the Paperboy
mayatellez
4
1.4k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
57
The Spectacular Lies of Maps
axbom
PRO
1
530
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
440
RailsConf 2023
tenderlove
30
1.3k
Transcript
2024/02/29 関西モバイル勉強会A #2 タイミーのモジュール分割あれこれ @arus4869 syam
目次 • 自己紹介 • タイミーについて • モジュール分割とは • タイミーのモジュール分割の取り組み について
• おわりに
1 自己紹介
自己紹介 syam TimeeのAndroidエンジニアです ピンクで丸いものやRPGが好きです(FF7楽しみです。) カレーはCoCo壱が好きです🍛 (4辛くらいがちょうどいい)
1 タイミーについて
タイミーの実績 スキマ バイト No.1 ※2024年2月時点 ※1 [調査方法]インターネット調査 [調査期間]2021年2月9日~11日 [調査概要]スキマバイトサービスの実態調査 [調査対象]直近1年以内にスキマバイトを経験したことのある18〜69歳の男女1034名[調査実施]株式会社マクロミル 6
利用率・リピート率 ※1 導入事業者数 98,000企業 ワーカー数 700万人
7
8
業界を超えて広がるタイミー タイミーは多くの業界で活用されるサービスに成長し、物流/小売/飲食の各業界TOP10社の半数以上がタイミーを導入中。 現在導入事業者数は98,000企業 230,000拠点以上になり、様々な業界に広がっています。 9
求人募集人数も一貫して高成長を継続 直近では、前年比 約2.2倍で伸長 事業の成長|タイミー全体の募集人数 前年比 約2.2倍
1 モジュール分割とは
シングルモジュールなプロジェクト Android Studioで新規プロジェクトを作成すると、最初にApplication Module(appディレクトリを持つモジュール)が作成される。この状態は「シングル モジュールなプロジェクト」と呼ばれる。 POINT
マルチモジュールなプロジェクト Application Moduleは、複数のモジュールに分割することが可能 モジュール分割されたプロジェクトを「マルチモジュール」なプロジェクトと呼ぶ POINT
モジュール分割を行うためのステップ例 1. コードの共通部品をモジュールに分割する 2. 関心を切り離したいレイヤーを決めて分割の優先順位をつける 3. 優先順位ごとにモジュールを分割する 4. 古いUIのコードを別のパッケージに移す 5.
UIのコードを「Feature Module」として機能単位に分割
大事なのは、 方針決めと 共有理解の構築
モジュール分割のメリットと注意点 - 効率化: 編集されたモジュールのみコンパイル → キャッシュ活用 - Gradle恩恵: ビルドシステムにより特に顕著 ビルド時間の短縮
コード品質の向上 - 関心の分離: 機能ごとにモジュール化 → 明確な責務分担 - 集中力向上: 機能実装に集中可能 - 新規参入の容易さ: 新規開発者が理解・参加しやすい - コードの抽象化: モジュール分割によるコードの整理・最適化 - 問題解決: 分割を通じて既存の課題に対処 抽象化と改善 - 計画性: 目的なき分割は逆効果 → 計画と目的を明確に 注意点
1 タイミーのモジュール 分割の取り組みについて
抱えている課題 現状抱えている課題は大きく2つあります。 • 開発組織の拡大に伴い、複数人での並列的な開発により生じる課題 ◦ 広範囲で強制化されていないコードが存在しているため、コードを触る 開発者の人数が増えることによって、アーキテクチャの強制が効かなく なる可能性がある ◦ コンフリクトの増加
◦ 別開発チームのレビューにかかる時間が増加 • サービスの拡大に伴いコード量が増加することで生じる課題 ◦ ビルド速度の低下 ◦ リファクタリングにおける影響範囲が読みづらくなる ◦ コードが読みづらくなる 他にも様々な課題が考えられそうですが、モジュール分割を適切に行うことによって、上 記課題の改善がされることを期待しています。
ライブラリモジュールについて 全体で60以上のモジュールがあります。 POINT
機能モジュールで考えていること
機能分割するとこのようになります。
画面遷移で考えていること
そのまま参照すると循環参照になってしまう
循環参照 and 相互依存させないためには... 「画面遷移の抽象化」が必要
機能モジュールで考えていること
1 おわりに
おわりに • 優先順位をつけてシンプルに分割してみよう • あらかじめ方針決めと共有理解の構築をチームでとろう • モジュール分割の恩恵を受けて、少しでも早くビルド時間を短縮して みう • チーム全体がより幸せな開発ライフを送れるように...