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
大公開! ZOZOTOWN iOSのコードレビューを覗きながらレビューの必要性を再確認しよう!...
Search
Saya Matsui
December 07, 2021
Programming
2
3.3k
大公開! ZOZOTOWN iOSのコードレビューを覗きながらレビューの必要性を再確認しよう! / Big reveal! Let's revisit the need for reviews with a peek into the ZOZOTOWN iOS code review!
ZOZO Tech Talk #2 - iOSでの登壇資料です。
Saya Matsui
December 07, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
740
DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure
yoshiyoshifujii
4
650
コーディングエージェント概観(2025/07)
itsuki_t88
0
440
GPUを計算資源として使おう!
primenumber
1
290
Bedrock AgentCore ObservabilityによるAIエージェントの運用
licux
8
360
状態遷移図を書こう / Sequence Chart vs State Diagram
orgachem
PRO
3
290
NEWT Backend Evolution
xpromx
1
160
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
220
Google I/O Extended Incheon 2025 ~ What's new in Android development tools
pluu
1
200
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
40
15k
AI Ramen Fight
yusukebe
0
120
Gemini CLI のはじめ方
ttnyt8701
1
110
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
720
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Practical Orchestrator
shlominoach
189
11k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
760
Testing 201, or: Great Expectations
jmmastey
43
7.6k
Into the Great Unknown - MozCon
thekraken
40
1.9k
How GitHub (no longer) Works
holman
314
140k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Transcript
େެ։ʂ ZOZOTOWN iOSͷίʔυϨϏϡʔΛ͖ ͳ͕ΒϨϏϡʔͷඞཁੑΛ࠶֬ೝ͠Α͏ʂ גࣜձࣾZOZ O ZOZOTOWN։ൃຊ෦ ZOZOTOWNΞϓϦ෦ iOSϒϩοΫ Saya
Matsui Copyright © ZOZO, Inc.
© ZOZO, Inc. גࣜձࣾZOZO ZOZOTOWN։ൃຊ෦ ZOZOTOWNΞϓϦ෦ iOSϒϩοΫ দҪ ࠼ʢSaya Matsuiʣ
20207݄ʹೖࣾ ZOZOTOWN iOSΞϓϦͷ։ൃΛ୲ 2
© ZOZO, Inc. 3 talk topic
© ZOZO, Inc. ZOZOTOWN iOSͷPull RequestʢҎԼɺPRʣϨϏϡʔࣄͱ ະܦݧͰೖࣾͨ͠Θ͕ͨ͠ɺखް͍ϨϏϡʔચྱΛड͚ͳ͕Β 1ͰͲͷΑ͏ʹͨ͠ͷ͔Λ͓͠·͢ɻ 4
© ZOZO, Inc. Agenda 5 1. ZOZOTOWN iOSͷνʔϜମ੍ͱϨϏϡʔࣄ 2. Θͨ͠Λͤͨ͞PRϨϏϡʔ
3.PRΛग़͢ͱ͖ʹҙ͍ࣝͯ͠Δ͜ͱ 4.·ͱΊɿPRϨϏϡʔͷඞཁੑ
© ZOZO, Inc. 6 ZOZOTOWN iOS ͷ νʔϜମ੍ͱϨϏϡʔࣄ 01 CHAPTER
© ZOZO, Inc. 7 ຊ࣭վળɾPRඞਢϨϏϡϫʔ ZOZOTOWN iOS νʔϜମ੍ νʔϜϦʔμʔ ։ൃ
© ZOZO, Inc. 8 ຊ࣭վળɾPRඞਢϨϏϡϫʔ ػೳ։ൃɾෆ۩߹मਖ਼ ZOZOTOWN iOS νʔϜମ੍
© ZOZO, Inc. ٕज़ސɹ؛͞Μ 9
© ZOZO, Inc. PRϨϏϡʔΛͯ͠ΒͬͨΓ SlackͰٕज़తͳ࣭ʹ ͑ͯΒͬͨΓ͍ͯ͠·͢ʂ 10
© ZOZO, Inc. 11 શʹۀ୲͞Ε͍ͯΔͷʁ🤔 ඞਢϨϏϡϫʔ͕͍ͳ͍࣌ɺ։ൃࢭ·ΔΜͰ͔͢ʁ💥
© ZOZO, Inc. 12 ຊ࣭վળɾPRඞਢϨϏϡϫʔ ػೳ։ൃɾෆ۩߹मਖ਼ ZOZOTOWN iOS νʔϜମ੍
© ZOZO, Inc. ZOZOTOWN iOS ։ൃࣄ 13 ෳͷϓϩδΣΫτ͕ฒߦɺ ϒϥϯν͕ཚཱ͕ͪ͠ ͱ͋Δͷϒϥϯνঢ়گ
© ZOZO, Inc. 14 ࣮ͷҰ෦ΛݟΔࢹͱશମΛݟ௨͢ࢹҟͳΔ ϨϏϡʔʹूதͯ͠Β͏͜ͱͰಘΒΕΔϝϦοτ ࣭୲อ શମతͳυϝΠϯࣝΛ࣋ͭਓ͕ෳ͍Δ͜ͱͰɺ ଞͷը໘ͷӨڹൣғʹؾͮ͘͜ͱ͕Ͱ͖ΔͳͲ
࣭୲อʹܨ͕Δ ඞਢϨϏϡϫʔϨϏϡʔʹूதͰ͖ΔͨΊɺ ઃܭॻ͖ํͳͲΑΓྑ͍ํ๏Λࡉ͔͘ ݟΔ͜ͱ͕Ͱ͖ΔͷͰɺϨϏϡΠʔͷʹܨ͕Δ
© ZOZO, Inc. 15 Θͨ͠Λͤͨ͞PRϨϏϡʔ 02 CHAPTER
© ZOZO, Inc. 16 ීஈΒ͍ͬͯΔ ϨϏϡʔίϝϯτΛ େެ։͠·͢ʂ
© ZOZO, Inc. ೖࣾͯ͠͡Ίͯग़ͨ͠PRͷ͓ 17 ͓ मਖ਼diff ಛఆͷಈ࡞Λͨ࣌͠ʹૹΒΕΔΠϕϯτͷIDΛ͔Βจࣈྻʹมߋ͢Δ
© ZOZO, Inc. ೖࣾͯ͠͡Ίͯग़ͨ͠PRͷ͓ 18 ͓ मਖ਼diff ಛఆͷಈ࡞Λͨ࣌͠ʹૹΒΕΔΠϕϯτͷIDΛ͔Βจࣈྻʹมߋ͢Δ ͜ͷPRɺԿ݅ίϝϯτ͕ ͍ͭͨͱࢥ͍·͔͢ʁ
© ZOZO, Inc. thinking time!! 19
© ZOZO, Inc. 16݅ 20 ʘͨͬͨ1ߦमਖ਼ͳͷʹʂʁʗ
© ZOZO, Inc. 21 ͔͠1ͭ1ͭͷίϝϯτΊͬͪΌ͍Μʂ
© ZOZO, Inc. 22 ਤΛ༻͍ͨઆ໌׆ൃʹ͓͜ͳΘΕ͍ͯ·͢
© ZOZO, Inc. 23 վળޙ
© ZOZO, Inc. 24 1ؒͰग़ͨ͠ PRͷ ࢲͷPRʹ͍ͭͨ ૯ίϝϯτ PR1ݸʹ͖ͭ ฏۉίϝϯτ
Θͨ͠ͷ1ؒͷPRʹؔ͢ΔࣈΛݟͯΈΑ͏ʂ
© ZOZO, Inc. 25 1ؒͰग़ͨ͠ PRͷ 120 ࢲͷPRʹ͍ͭͨ ૯ίϝϯτ PR1ݸʹ͖ͭ
ฏۉίϝϯτ Θͨ͠ͷ1ؒͷPRʹؔ͢ΔࣈΛݟͯΈΑ͏ʂ
© ZOZO, Inc. 26 1ؒͰग़ͨ͠ PRͷ 120 1426 ࢲͷPRʹ͍ͭͨ ૯ίϝϯτ
PR1ݸʹ͖ͭ ฏۉίϝϯτ Θͨ͠ͷ1ؒͷPRʹؔ͢ΔࣈΛݟͯΈΑ͏ʂ
© ZOZO, Inc. 27 1ؒͰग़ͨ͠ PRͷ 120 1426 12 ࢲͷPRʹ͍ͭͨ
૯ίϝϯτ PR1ݸʹ͖ͭ ฏۉίϝϯτ Θͨ͠ͷ1ؒͷPRʹؔ͢ΔࣈΛݟͯΈΑ͏ʂ
© ZOZO, Inc. 28 ͜Ε·ͰΒͬͨίϝϯτͰ جຊ͚ͩͲͱͯେࣄͩͱࢥͬͨ ۩ମྫΛհ͠·͢ʂ
© ZOZO, Inc. 29 01. มؔͷ໊͚ͮ
© ZOZO, Inc. 30 ͓ ίʔσΟωʔτใΛAPI͔Βऔಘ͠ɺ CollectionViewʹදࣔͤ͞Δ
© ZOZO, Inc. Question!! 31
© ZOZO, Inc. 32 मਖ਼diff thinking time!!
© ZOZO, Inc. 33 ϨϏϡʔ
© ZOZO, Inc. 34 मਖ਼diff
© ZOZO, Inc. νϣοτσΩϧΑ͏ʹͳͬͨPoint 35 ɾฦΓͷͳ໋͍ྩతͳfuncಈࢺͰॻ͘ ɾରͷfuncΛ࡞Δ࣌ରশੑͷ͋ΔಈࢺΛ͏ ɾಉ͡Α͏ͳॲཧͷͱ͖पลίʔυͰͲΜͳ໊͚͕ͮ͞Ε͍ͯΔ͔֬ೝ͢Δ
© ZOZO, Inc. 36 02. Λߟ͑Δ
© ZOZO, Inc. 37 ͓ ΦϑϥΠϯঢ়ଶͰͷ ʮΧʔτʹೖΕΔʯϘλϯΛԡͨ࣌͠ɺ దͳΤϥʔΛදࣔͤ͞Δ
© ZOZO, Inc. Question!! 38
© ZOZO, Inc. 39 मਖ਼diff thinking time!!
© ZOZO, Inc. 40 मਖ਼diff
© ZOZO, Inc. 41 ϨϏϡʔ
© ZOZO, Inc. νϣοτσΩϧΑ͏ʹͳͬͨPoint 42 ɾׂΛཧղͯ͠దͳॴʹίʔυΛॻ͘ ɾPRΛग़͢લʹࣗͷॻ͍͍ͯΔίʔυ͕దͳॴʹॻ͔Ε͍ͯΔ͔ݕ౼͢Δ
© ZOZO, Inc. 43 03. ίʔυͷՄಡੑΛߴΊΔ
© ZOZO, Inc. 44 ͓ ΞΠςϜͷ͕حͷ߹ ۭനηϧΛදࣔ͢Δ Before After brandName
brandName Name brandName Name
© ZOZO, Inc. 45 طଘ࣮ goodsListͱ͍͏ม͕ใΛ͓࣋ͬͯΓɺ goodsListͷcountͰηϧ͕࡞ΒΕΔ࣮ʹͳ͍ͬͯͨ
© ZOZO, Inc. Question!! 46
© ZOZO, Inc. 47 मਖ਼diff goods͕nilͷ࣌emptyCellΛද͍ࣔͤͨ͞ͷͰɺ goodsΛΦϓγϣφϧʹ͠ɺisEmptyΛBoolͰදݱͰ͖ΔܕΛ࡞Γɺ ͦΕΛgoodsListͷܕʹͨ͠ goodsΛgoodͱλΠϙ͍ͯ͠Δ… thinking
time!!
© ZOZO, Inc. 48 ϨϏϡʔ
© ZOZO, Inc. 49 վળޙ enumΛͬͯgoods͕ଘࡏ͢Δঢ়ଶͳͷ͔ɺ emptyͷঢ়ଶͳͷ͔ΛΘ͔Γͨ͘͢͠
© ZOZO, Inc. νϣοτσΩϧΑ͏ʹͳͬͨPoint 50 ɾঢ়ଶͷཧʹؾΛ͚Δ ɾϩʔΧϧมͰྑ͍ͷΛϝϯόมʹ͠ͳ͍Α͏ʹ͢Δ ɾؔʹ໊͚ͭͨલҎ֎ͷॲཧΛͤ͞ͳ͍Α͏ʹ͢Δ ɾదͳίϝϯτΛੵۃతʹ͚ͭΔ
© ZOZO, Inc. 51 ͍·ͰɺޙഐͷPRϨϏϡʔΛ͢ΔͳͲ ͕ࣗڭ͑ͯΒ͖ͬͯͨ͜ͱΛؐݩ͍ͯ͠·͢
© ZOZO, Inc. 52 PRΛग़͢ͱ͖ʹҙ͍ࣝͯ͠Δ͜ͱ 03 CHAPTER
© ZOZO, Inc. ϨϏϡϫʔͷෛ୲Λܰݮ͢ΔͨΊʹɾɾɾ 53 ɾͲͷΑ͏ʹमਖ਼ͨ͠ͷ͔ɺͳͥͦͷमਖ਼Ҋʹͨ͠ͷ͔ ਤΛͬͯઆ໌͢ΔͱΘ͔Γ͍͢͜ͱ͋Δ ʢͱ͘ʹෳͷঢ়ଶύλʔϯ͕͋Δ߹ͳͲʣ
© ZOZO, Inc. ϨϏϡϫʔͷෛ୲Λܰݮ͢ΔͨΊʹɾɾɾ 54 ɾͲ͜ΛͲ͏͍͏෩ʹमਖ਼ͨ͠ͷ͔ɺͳͥͦͷ मਖ਼Ҋʹͨ͠ͷ͔ΛͳΔ͘ॻ͘Α͏ʹ͢Δ
© ZOZO, Inc. ϨϏϡϫʔͷෛ୲Λܰݮ͢ΔͨΊʹɾɾɾ 55 ɾमਖ਼ՕॴӨڹൣғΛύοͱݟͰΘ͔ΔΑ͏ʹ ɹ໌ࣔ͢Δ ʢνʔϜϝϯόʔ͔Βڭ͑ͯΒͬͨ͜ͱͷ1ͭͰ͢ʂʣ
© ZOZO, Inc. 56 ·ͱΊɿPRϨϏϡʔͷඞཁੑ 04 CHAPTER
© ZOZO, Inc. 57 ͜ΜͳʹϨϏϡʔΛ͔ͬ͠ΓΔͱɺ૿͑·͢ΑͶʁ🤔 ͦΕ͚ͩΛඅͯ͠େৎͳΜͰ͔͢ʁ⚠
© ZOZO, Inc. 58 ݟੵΓஈ֊ͰɺϨϏϡʔظؒΛؚΊͯΛࢉग़ ϦϦʔεʹରͯ͠ॊೈͳରԠ࣮ࢪ͍ͯ͠Δ ʢಈ࡞ʹ͕ͳ͘ɺίʔυͷॻ͖ํ͚ͩͷϨϏϡʔʹ͍ͭͯ λεΫΛ͚ͯϦϑΝΫλϦϯάͱͯ͠ޙͰରԠ͢ΔͳͲʣ
© ZOZO, Inc. PRϨϏϡʔͷඞཁੑ 59 • ϓϩμΫτͷ࣭୲อͷͨΊʹඞཁͰ͋Δ • ઃܭɺॻ͖ํ͕ΑΓྑ͍ͷʹͳΔ •
ϨϏϡʔ͢Δ͜ͱͰυϝΠϯ͕ࣝʹͭ͘ • ʹܨ͕Δ
None