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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
syam
May 12, 2024
Technology
72
0
Share
タイミーのモジュール分割あれこれ
syam
May 12, 2024
More Decks by syam
See All by syam
Firebase Dynamic Linksの廃止と今後
syam4869
1
850
Other Decks in Technology
See All in Technology
Microsoft 365 / Microsoft 365 Copilot : 自分の状態を確認する「ラベル」について
taichinakamura
0
430
QAエンジニアはどうやって プロダクト議論の場に入れるのか?
moritamasami
0
230
COBOL婆さんの伝説
poropinai1966
0
130
Claude Code を安全に使おう勉強会 / Claude Code Security Basics
masahirokawahara
12
39k
MySQL 9.7がやってきた ~これまでのあらすじと基本情報~ @ 日本MySQLユーザ会会2026年04月 / mysql97-yattekita
sakaik
0
150
EMから幅を広げるために最近挑戦していること / Recent challenges I'm undertaking to expand my horizons beyond EM
hiro_torii
1
170
小さいVue.jsを30分で作る
hal_spidernight
0
120
Forget technical debt
ufried
0
150
AIが盛んな時代に 技術記事を書き始めて起きた私の中での小さな変化
peintangos
0
340
AI時代に越境し、 組織を変えるQAスキルの正体 / QA Skills for Transforming an Organization
mii3king
1
560
20260423_執筆の工夫と裏側 技術書の企画から刊行まで / From the planning to the publication of technical book
nash_efp
3
690
【技術書典20】OpenFOAM(自宅で深める流体解析)流れと熱移動(2)
kamakiri1225
0
360
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.9k
The Cult of Friendly URLs
andyhume
79
6.9k
Designing for Performance
lara
611
70k
Context Engineering - Making Every Token Count
addyosmani
9
850
From π to Pie charts
rasagy
0
180
The browser strikes back
jonoalderson
0
1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Code Review Best Practice
trishagee
74
20k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Practical Orchestrator
shlominoach
191
11k
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 おわりに
おわりに • 優先順位をつけてシンプルに分割してみよう • あらかじめ方針決めと共有理解の構築をチームでとろう • モジュール分割の恩恵を受けて、少しでも早くビルド時間を短縮して みう • チーム全体がより幸せな開発ライフを送れるように...