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
73
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
タイミーのモジュール分割あれこれ
syam
May 12, 2024
More Decks by syam
See All by syam
Firebase Dynamic Linksの廃止と今後
syam4869
1
860
Other Decks in Technology
See All in Technology
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
120
SRE Next 2026 何でも屋からの脱却
bto
0
620
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
3.4k
ヘルスケア領域における AI 活用と その安全性担保のための取り組み (Leveraging AI in Healthcare and Our Efforts to Ensure Its Safety) - Google I/O Extended Tokyo 2026, July 11, 2026
zettaittenani
0
270
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
350
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
140
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
2
170
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
220
完全自律ロボットを作りたくて、先に開発を自律させた話(ROS Japan UG #63 LT)
rryz09
0
490
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
13
2k
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
180
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
2.6k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Product Roadmaps are Hard
iamctodd
55
12k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
230
Google's AI Overviews - The New Search
badams
0
1.1k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
590
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
460
Music & Morning Musume
bryan
47
7.3k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
330
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 おわりに
おわりに • 優先順位をつけてシンプルに分割してみよう • あらかじめ方針決めと共有理解の構築をチームでとろう • モジュール分割の恩恵を受けて、少しでも早くビルド時間を短縮して みう • チーム全体がより幸せな開発ライフを送れるように...