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
Yahoo! JAPANアプリとLayered Architecture
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takuya Shigemoto
March 12, 2018
Technology
2.2k
2
Share
Yahoo! JAPANアプリとLayered Architecture
2018.03.12(Mon)にBonfire Android #3で発表した資料です。
Takuya Shigemoto
March 12, 2018
More Decks by Takuya Shigemoto
See All by Takuya Shigemoto
Google I/O Extended Tokyo 2018レポート
shgmn
1
760
Other Decks in Technology
See All in Technology
レビューしきれない?それは「全て人力でのレビュー」だからではないでしょうか
amixedcolor
0
350
国内外の生成AIセキュリティの最新動向 & AIガードレール製品「chakoshi」のご紹介 / Latest Trends in Generative AI Security (Domestic & International) & Introduction to AI Guardrail Product "chakoshi"
nttcom
4
1.4k
[OpsJAWS 40]リリースしたら終わり、じゃなかった。セキュリティ空白期間をAWS Security Agentで埋める
sh_fk2
3
250
クラウドネイティブな開発 ~ 認知負荷に立ち向かうためのコンテナ活用
literalice
0
150
基盤を育てる 外部SaaS連携の運用
gamonges_dresscode
1
120
Hacobu Tech Deck
hacobu
PRO
0
120
Keeping Ruby Running on Cygwin
fd0
0
180
Good Enough Types: Heuristic Type Inference for Ruby
riseshia
1
290
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
760
Do Vibe Coding ao LLM em Produção para Busca Agêntica - TDC 2026 - Summit IA - São Paulo
jpbonson
3
150
マルチプロダクトの信頼性を効率良く保っていくために
kworkdev
PRO
0
170
UIライブラリに依存しすぎないReact Native設計を目指して
grandbig
0
130
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
340
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
480
Writing Fast Ruby
sferik
630
63k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
170
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
680
Mind Mapping
helmedeiros
PRO
1
160
Transcript
Yahoo! JAPANΞϓϦͱ Layered Architecture Ϡϑʔגࣜձࣾ ॏݩ
About me • ॏݩ ʢtwitter: @shgmn9ʣ • Android / iOS
• Ϡϑʔגࣜձࣾʢ2017.07ʙʣ • Android൛ Yahoo! JAPANΞϓϦ • Χϝϥͱੜ͖͕͖ • ञ
ΞδΣϯμ • Yahoo! JAPANΞϓϦ๊͕͍͑ͯͨ • Layered Architectureಋೖ • Layered ArchitectureಋೖͷՌ
• ઃܭΛҡ࣋͢ΔऔΓΈ • ͜Ε͔Β • ·ͱΊ
Yahoo! JAPANΞϓϦ͕ ๊͍͑ͯͨ ࣸਅɿΞϑϩ
ࣸਅɿΞϑϩ • େਓͷ։ൃͰɺෳҊ͕݅ฒߦͯ͠Δ • ໌֬ͳઃܭํ͕ແ͍ • Ϣχοτςετ͕ॻ͖ͮΒ͍
ઃܭͷબ ࣸਅɿΞϑϩ
Model View Whateverʁ ࣸਅɿΞϑϩ • Model View Whatever • MVP…ModelͱViewͱPresenter
• MVVM…ModelͱViewͱViewModel • Presentation Domain SeparationʢPDSʣ • Presentation…ೖྗΛड͚औΔɺݟͨΛ࡞Δ • Domain…ͦΕҎ֎
Presentationʹ͍ͭͯ ࣸਅɿΞϑϩ • Presentationͷ࣮ݱ • MVP…ViewͱPresenter • MVVM…ViewͱViewModel
Domainʹ͍ͭͯ ࣸਅɿΞϑϩ • Domainʁ • MVPMVVMͷMʢModelʣͷ͜ͱ • Domainͷઃܭʹ͍ͭͯMVWͰ৮Ε͍ͯͳ͍
Layered Architectureಋೖ ࣸਅɿΞϑϩ
goo.gl/GTAfLv
Application Presentation Domain Infrastructure ViewͱWhatever Model
Application Presentation Domain Infrastructure Ϣʔβೖྗɺදࣔ Presentation͕ୟ͘૭ޱ υϝΠϯΞΫηε͠ϢʔεέʔεΛ࣮ݱ ϏδωεϩδοΫ ֎෦ͷΞΫηεʢωοτϫʔΫɾDBɾetc…ʣ
ಋೖํ๏ • ϨΠϠʔׂΛ࣮ࡍʹίʔυʹద༻͢ΔͨΊʹ • ઃܭنҧΛػցతʹ͘Έ͕ඞཁ • ֤ϨΠϠʔผϞδϡʔϧʹׂ ࣸਅɿΞϑϩ
Application Presentation Domain Infrastructure compile project(‘:Application’) compile project(‘:Domain’) compile project(‘:Infrastructure’)
Application Presentation Domain Infrastructure Observable Observable Observable
αʔϏεͷάϩʔε • ػೳՃࢭ·Βͳ͍ • ಉҰػೳͷϦϑΝΫλϦϯάͱػೳՃ͕ಉ࣌ʹΒͳ ͍Α͏ʹεέδϡʔϧΛҾ͍ͨ ࣸਅɿΞϑϩ
࣭ • େنͳϦϑΝΫλϦϯάͷલޙͰͷ࣭୲อ • ApplicationϨΠϠʔҎԼϢχοτςετʢC0ʣΛٛ ͚ͨ • Coverage 80%Ҏ্ ࣸਅɿΞϑϩ
ఘΊͨ͜ͱ • DIಋೖ • Dagger2ֶशίετΛߟ͑ͯಋೖΛఘΊͨ ࣸਅɿΞϑϩ
Layered Architecture ಋೖͷՌ ࣸਅɿΞϑϩ
ಘͨͷ • ίʔυ͕͖Ε͍ʹͳͬͨ • ػೳՃͷࡍʹΉ͜ͱ͕ݮͬͨ • ϝϯόͷٕज़Ϩϕϧ͕ͨ͠ • ৽نʹδϣΠϯ͘͢͠ͳͬͨ ࣸਅɿΞϑϩ
Layered ArchitectureΛ ҡ࣋͢ΔऔΓΈ ࣸਅɿΞϑϩ
• ίϛολʔ੍ • ༷ڞ༗ձ • ઃܭϨϏϡʔձ ࣸਅɿΞϑϩ
ίϛολʔ੍ • ֓ཁ • ઃܭɾ࣮ํΛཧղͨ͠ϝϯόʔʢίϛολʔʣʹϓϧϦΫΤε τͷϨϏϡʔͷΛෛͬͯΒ͏ • ϓϧϦΫΤετͷϚʔδʹɺ࠷1ਓͷίϛολʔͷঝೝ͕ඞཁ • త
• େنϦϑΝΫλϦϯάޙͷίʔυΛܧଓతʹ͖Ε͍ͳঢ়ଶʹอͭ • ݱࡏʢ2018.03ʣ • ։ൃϝϯό21ਓʹର͠ίϛολʔ5ਓ ࣸਅɿΞϑϩ
༷ڞ༗ձ • ֓ཁ • Ҋ༷݅Λ؆୯ʹυΩϡϝϯτʹ·ͱΊɺΤϯδχΞ ؒͰڞ༗͢Δձ • త • ଐਓԽΛղফ͢Δ
• ༷ͷٕज़తͳݒ೦Λઃܭલʹચ͍ग़͢ • ଞҊ݅ͱͷฒߦ։ൃͷ࣮ݱՄೳੑΛݕ౼͢Δ ࣸਅɿΞϑϩ
ࣸਅɿΞϑϩ ઃܭϨϏϡʔձ • ֓ཁ • ༷ڞ༗ձͰγΣΞ༷ͨ͠ʹؔ͢ΔઃܭΛυΩϡϝ ϯτʹ·ͱΊɺΤϯδχΞؒ • త •
ઃܭํΛἧ͑ɺΞϓϦͷઃܭɾ࣭Λҡ࣋͢Δ
͜Ε͔Β ࣸਅɿΞϑϩ
͍͖͍ͬͯͨऔΓΈ • UIͷςετ • DI • AACʢLifecycleɺViewModelɺLiveDataʣ • ϏϧυͷߴԽ •
ػೳ͝ͱͷϚϧνϞδϡʔϧԽ ࣸਅɿΞϑϩ
·ͱΊ
·ͱΊ • ղܾ͍ͨ͠Λ͖ͪΜͱݟఆΊͯಋೖ͢ΔઃܭΛܾΊ Δ͜ͱ • ઃܭͷಋೖʹ͋ͨͬͯɺແཧ͠ͳ͍͜ͱ • ϏδωεଆͷཧղΛ͖ͪΜͱಘΔ͜ͱ • ઃܭΛҡ࣋͢ΔͨΊͷࢪࡦΛ͖ͪΜͱߦ͏͜ͱ
Yahoo! JAPANͰ ༷ʑͳྖҬͰΤϯδχΞΛืू͍ͯ͠·͢ʂ https://about.yahoo.co.jp/hr/ ࣸਅɿΞϑϩ
Thank you!