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
コーディングエージェント概観(2025/07)
itsuki_t88
1
480
[Codecon - 2025] Como não odiar seus testes
camilacampos
0
100
Jakarta EE Meets AI
ivargrimstad
0
540
AIコーディングエージェント全社導入とセキュリティ対策
hikaruegashira
15
9.1k
商品比較サービス「マイベスト」における パーソナライズレコメンドの第一歩
ucchiii43
0
240
AI Agent 時代のソフトウェア開発を支える AWS Cloud Development Kit (CDK)
konokenj
6
1k
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
180
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
160
知って得する@cloudflare_vite-pluginのあれこれ
chimame
1
130
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
1
410
副作用と戦う PHP リファクタリング ─ ドメインイベントでビジネスロジックを解きほぐす
kajitack
3
510
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.4k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Git: the NoSQL Database
bkeepers
PRO
431
65k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Six Lessons from altMBA
skipperchong
28
3.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Designing for humans not robots
tammielis
253
25k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Unsuck your backbone
ammeep
671
58k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
What's in a price? How to price your products and services
michaelherold
246
12k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
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