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
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
300
Vibe coding コードレビュー
kinopeee
0
460
State of CSS 2025
benjaminkott
1
110
実践 Dev Containers × Claude Code
touyu
1
230
AI時代のドメイン駆動設計-DDD実践におけるAI活用のあり方 / ddd-in-ai-era
minodriven
22
8.8k
バイブコーディング × 設計思考
nogu66
0
120
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
290
「リーダーは意思決定する人」って本当?~ 学びを現場で活かす、リーダー4ヶ月目の試行錯誤 ~
marina1017
0
230
MLH State of the League: 2026 Season
theycallmeswift
0
150
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
560
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
130
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
150
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
96
6.2k
What's in a price? How to price your products and services
michaelherold
246
12k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
890
Thoughts on Productivity
jonyablonski
69
4.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Docker and Python
trallard
45
3.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Agile that works and the tools we love
rasmusluckow
329
21k
Testing 201, or: Great Expectations
jmmastey
45
7.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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