High 意識 Android - Mercari Day
by
Motohiro Takayama
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
High ҙࣝ Android mootoh
Slide 2
Slide 2 text
FAQ
Slide 3
Slide 3 text
: ϝϧΧϦͬͯ͏ ΞϓϦͯ͠Δ͠ Δ͜ͱͳ͍Μ͡Όͳ͍ͷ?
Slide 4
Slide 4 text
A: ·ͩ·ͩ·ͩ·ͩ ·ͩ·ͩ·ͩ·ͩ ͋Δ
Slide 5
Slide 5 text
2016/02~ • νϟϨϯδ • Χϧνϟʔ • ະདྷ
Slide 6
Slide 6 text
2016
Slide 7
Slide 7 text
Stats % git diff --shortstat `git log --pretty=%H --since 'last year' | tail -n 1` → 2,029 files changed, +385,707, -170,628 ■■■■ % git log --pretty=%H --since 'last year' | wc -l → 4,049 commits
Slide 8
Slide 8 text
Team of 4 in "# # "
Slide 9
Slide 9 text
Team of 4→7 in "#$ $ # "
Slide 10
Slide 10 text
ެ҆9՝
Slide 11
Slide 11 text
“զʑͷؒʹɺνʔϜϓϨʔͳͲͱ͍͏ ߹ͷΑ͍ݴ͍༁ଘࡏͤΜɻ ͋Δͱ͢ΕελϯυϓϨʔ͔Βੜ͡Δɺ νʔϜϫʔΫ͚ͩͩɻ” — ߥרେี, 2002
Slide 12
Slide 12 text
ެ҆9՝Ϟσϧ • ߈֪ػಈୂ S.A.C • ཱࣗͨ͠ଟ༷ͳϝϯόʔ • ݸʑͷ؍͔ΒϓϩμΫτ/৫ͷվળΛ ࣮ફ͢Δ
Slide 13
Slide 13 text
FAQ
Slide 14
Slide 14 text
: ̓ਓΤϯδχΞ͍Ε ेͰ͠ΐ
Slide 15
Slide 15 text
A: ·ΔͰΓͳ͍ • #, ", $ ͦΕͧΕʹ͔Ε͍ͯΔ • ϓϩδΣΫτ͋ͨΓ 1~2ਓ • ͬͱ͍ΕΕΔ͜ͱΛ૿ͤΔ
Slide 16
Slide 16 text
Challenges
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
ଠฏ༸Λ·͙ͨ Code Review " PR # Review " Revise # Review # LGTM " Revise " Merge ☀ ☀ ☀ ☀ PR ͷཹ͕࣌ؒ͘ͳΔ → ϦϦʔε
Slide 19
Slide 19 text
Solution A
Slide 20
Slide 20 text
6:30am standup meeting • " ϝϯόʔ͕Έͳ༮ࣇ࣋ͪͩͬͨ → ڧ੍ૣى͖ • # ʹ༏͍͠ (ன) • Նͩͬͨ → ே໌Δ͍ͷͰૣى͖͍͢͠ → ࢼ͠ʹͬͯΈΑ͏
Slide 21
Slide 21 text
݁Ռ: • • Sync ͷճ͕૿͑ͨ͜ͱʹΑΓɺϨϏϡʔͷޮ ্͕͕ͬͨ • • ࢠ͕6am ʹى͖ΔͷͰग़੮Ͱ͖ͳ͍ • ҙਤͷ֬ೝͳͲͰ͖Δ͕ PR ϕʔεͳͷͰ async
Slide 22
Slide 22 text
Solution B https://screenhero.com
Slide 23
Slide 23 text
ScreenHero • ϦϞʔτϖΞϓϩ • protected void synchronized review { … } • ࣌ؒ߹ΘͤΔඞཁ͕͋Δ
Slide 24
Slide 24 text
݁Ռ • ίϛϡχέʔγϣϯͷଳҬ͕͍ • ͍͚ • ॏ͍ϨϏϡʔͷ࣌ʹཱͭ • PR Ͱ2-3ΓऔΓͯͯ͠Β͕͔ͪ͋ͳ͍ → ͭͳ͍Ͱνϟνϟͬͱղܾ
Slide 25
Slide 25 text
# " $ Or…
Slide 26
Slide 26 text
ۃ Meeting • ཱྀ͍͍ͩͨඅ30~100ສ • ͍͍ͩͨڑ • פ͍⛄️
Slide 27
Slide 27 text
ݟ • ૣى͖Ωπ͍͕ʹཱͭ • ෳࡶʹԠͯ͡ίϛϡχέʔγϣϯͷଳҬΛม͑Δ • ͕࣌ࠩൃੜ͠ͳ͍Α͏ʹνʔϜΛ͚Δͷ • ۃΛఘΊͳ͍❄
Slide 28
Slide 28 text
Challenges
Slide 29
Slide 29 text
https://commons.wikimedia.org/wiki/File:Adobe_guadalupe_wine_barrel.jpg ख़
Slide 30
Slide 30 text
ख़ίʔυ • ϓϩμΫτ։ൃΛ࠷ͰલʹਐΊ͖ͯͨ • 3ख़ (࣌) • ݹΊͷςΫϊϩδ • (ಛʹ)৽͍͠ϝϯόʔʹͱͬͯมߋͮ͠Β͍
Slide 31
Slide 31 text
ݹΊͷςΫϊϩδ 34 • Networking: • HttpUrlConnection / Apache HttpClient with ൿͷϨγϐ • Async Operation: • Callback Interface / EventBus • Singletons • Giant Activities
Slide 32
Slide 32 text
→एฦΓ 5 • Networking: okhttp • Async Operation: RxJava • Singletons: Dagger2 • Giant Activities: MVVM
Slide 33
Slide 33 text
ϦϑΝΫλϦϯά͍͕ͨ͠… • Ҋ݅։ൃͰύπύπ • ϦϑΝΫλϦϯά͢Δ͜ͱͰσάϨ͢Δ͜ͱ ͕͋ͬͨ • QA ͔Βͷ৴པஷۚ㽊
Slide 34
Slide 34 text
࡞ઓ⚽ • Ҋ݅ͷεέδϡʔϧʹ৫ΓࠐΉ • ϦϑΝΫλͨ͠ํ͕ૣ͍ূڌΛੵ͢Δ • ςετͰσάϨΛࢭ͠ɺ৴པΛஷΊΔ
Slide 35
Slide 35 text
ݟ • ৽͍͠ػೳ࣮Λ͢ΔલʹϦϑΝΫλϦϯά • εέδϡʔϧʹ৫ΓࠐΉ • ͡Θ͡Θ͛Δ • ಆ͍ଓ͚ΔɺఘΊͳ͍
Slide 36
Slide 36 text
Challenges
Slide 37
Slide 37 text
# " 1 → 8 0 → 1 Product Phase
Slide 38
Slide 38 text
$ # " 0 → 1 8 → 10 1 → 8 Product Phase
Slide 39
Slide 39 text
Repository # " + $ • ONE OK REPOSITORY • flavor Ͱ͚͍ͯͨ
Slide 40
Slide 40 text
• มߋͮ͠Β͍ • isJP(), isUS(), isUK() • #͚ͷมߋΛ͍͚ͨͩ͠ͳͷʹ"ͷίʔυΛؾʹ͠ͳ͍ͱ͍͚ͳ͍ • ࣌ࠩ (ઌड़) • QA େม • Өڹൣғ: #͚ͷมߋ͚ͩͲɺ΄Μͱʹ"յΕͯͳ͍? • Region ͝ͱͰ phase ͕ҟͳΔ • ༏ઌ։ൃελΠϧҟͳΔ
Slide 41
Slide 41 text
Solutions • ͻͱ·ͣ Branch Λ͚ͨ ⎇ • Fork ͨ͠ΒΔͷࠔ • ͬͱ Region ͕૿͑ͨΒ?
Slide 42
Slide 42 text
Challenges
Slide 43
Slide 43 text
ID ج൫
Slide 44
Slide 44 text
ID ج൫ • Single Sign On తͳͷ • Mercari <-> Souzoh • iOS / Android ͷϥΠϒϥϦॻ͘͜ͱʹͳͬͨ
Slide 45
Slide 45 text
ݸਓతνϟϨϯδ • Kotlin • ຊମΞϓϦʹಋೖ᪳ΘΕΔ͕ϥΠϒϥϦʹͳΒ • gRPC • HTTP/2, Protobuf, ΫϩεϓϥοτϑΥʔϜ
Slide 46
Slide 46 text
gRPC "# • #-"Ͱ gRPC ௨৴͢Δͱ͞ΔσόΠε͕ • " Ͱ͕ൃੜ͠ͳ͍ • ϥΠϒϥϦͷԞਂ͍ͱ͜Ζʹ͕͋Γͦ͏ • ී௨ͷ௨৴͕ͳ͍ • ͔͕࣌ؒ͠͠ͳ͍⌛
Slide 47
Slide 47 text
gRPC-gateway ? • gRPC ͷαʔϏεʹ RESTful JSON API ͰΞΫ ηεͰ͖Δ • ී௨ͷ HTTPS ΞΫηεͭͳ͕Δ • ճආ
Slide 48
Slide 48 text
ݟ • Kotlin • ϥΠϒϥϦɺςετͳͲ͔Β߈ΊΔ → μϝʔδগͳ͍ • ϨϏϡʔ͞ΕͮΒ͍ • gRPC • REST ಀ͕͛ͩʹཱͭ • ίϯτϦϏϡʔγϣϯͰ͖Δ༨༟Λ͓ͯ͘͠
Slide 49
Slide 49 text
Future
Slide 50
Slide 50 text
·ͩ·ͩ·ͩ·ͩ·ͩ·ͩ͋Δ • ܻҧ͍ʹͨ͘͞Μͷ A/B ςετΛ ؆୯ʹճͤΔΈ • ଞ Region ্ཱͪ͛ • Inter-Region ചങ • 3D ग़ɺ VR γϣοϐϯά (ໝ)
Slide 51
Slide 51 text
Wrap Up
Slide 52
Slide 52 text
Wrap up • ·ͩ·ͩνϟϨϯδ͕͋Δ • ٕज़త & ϓϩμΫτత • ެ҆̕՝Ϟσϧ
Slide 53
Slide 53 text
“و༷ɺ͍͍Λ͍ͯ͠Δͳɻ ࠓ͔Βࢲͷ෦ԼʹͳΕɻ” — ಽૉࢠ, 2004
Slide 54
Slide 54 text
JOIN US