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
フロントエンドの設計刷新〜決断から効果検証まで〜
Search
starfish719
December 27, 2023
0
44
フロントエンドの設計刷新〜決断から効果検証まで〜
starfish719
December 27, 2023
Tweet
Share
More Decks by starfish719
See All by starfish719
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.2k
動作確認やテストで漏れがちな観点3選
starfish719
6
1.2k
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
28
6.5k
Findyの爆速開発を支えるPull requestの粒度
starfish719
0
4k
開発生産性実践入門 Pullrequestの粒度編
starfish719
0
1.3k
Gatsby + Netlifyで ポートフォリオサイトを 作った話
starfish719
0
60
vegatech_3.pdf
starfish719
0
400
Nuxt.jsとGraphcoolで ツールを作っている話
starfish719
0
120
CloudFunctionsと CloudVisionで 遊んでみた
starfish719
0
65
Featured
See All Featured
Bash Introduction
62gerente
611
210k
Mobile First: as difficult as doing things right
swwweet
223
9.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Code Review Best Practice
trishagee
67
18k
Site-Speed That Sticks
csswizardry
4
450
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
11
610
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
320
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
117
51k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
28
2k
Transcript
ϑϩϯτΤϯυͷઃܭ৽ ʙܾஅ͔ΒޮՌݕূ·Ͱʙ ϑϩϯτΤϯυͷٕज़తෛ࠴ʹ͖߹͏LTେձ@Ԭ 2023/08/23(ਫ)
ͳͥϑϩϯτΤϯυͷઃܭ৽Λܾஅͨ͠ͷ͔
ҟಈલޙͷൺֱ 3
ҟಈલޙͷൺֱ • ҟಈલͱൺͯੜ࢈ੑ͕ҎԼ·ͰԼ ◦ ײ֮ͱ͕Ұகͨͨ͠ΊɺͲ͔͜͠Βʹ͕͋Δͣ • ίʔυϦʔσΟϯάʹରͯ͠ඞཁҎ্ͷർ࿑ײΛײͨ͡ ◦ ผͷϓϩμΫτͱൺֱͯ͠໌Β͔ʹർ࿑ײ͕ҧͬͨ •
ײ͚֮ͩͰपΓΛೲಘͤ͞Δͷແཧ ◦ ͳͥੜ࢈ੑ͕Լ͕ͬͨͷ͔Λ۩ମతʹચ͍ग़ͯ͠ΈΔ͜ͱʹͨ͠ 4
ͷચ͍ग़͠
ݱߦઃܭͷ • աͳڞ௨Խ ◦ ػೳՃʹڧ͍͕ɺมߋɺআʹऑ͔ͬͨ ◦ άϥϑςʔϒϧ͝ͱʹσʔλ௨৴Λߦ͏Α͏ʹͯ͠ڞ௨Խ͍ͯͨ͠ ▪ άϥϑςʔϒϧͷݟͨಉ͕ͩ͡ɺऔಘɺදࣔ͢Δσʔλ͕ҟͳΔέʔεʹରԠͮ͠Β͍ ▪
σʔλͷऔಘͱද͚ࣔͯߟ͑Δ͖ͩͬͨ • ॲཧʹҰ؏ੑ͕ແ͍ ◦ APIͷݺͼग़͕͠ෳՕॴͰ࣮ߦ͞Ε͓ͯΓɺσʔλͷྲྀΕΛ͏͜ͱ͕ࠔ ◦ util͕utilҎ্ͷ͜ͱΛ͍ͯ͠Δ ▪ utilͰॲཧ͕ίέͨΒྫ֎Λthrow͓ͯ͠Γɺͦͷ࣌ͰΞϓϦέʔγϣϯશମ͕མͪΔ • ςετίʔυΛॻ͖ͮΒ͍ ◦ ඳըΛߦ͏͜ͱʹઐ೦͍ͨͣ͠ͷॲཧͷதͰσʔλͷऔಘ͕࣮ߦ͞Ε͍ͯΔ ◦ ͷ୲͕Ͱ͖͍ͯͳ͍ 6
ઃܭ৽ʹର͢Δೝࣝ߹Θͤͱ߹ҙܗ
ݱϝϯόʔͱೝࣝ߹Θͤ • ςοΫϦʔυ͕ʮΕʯͱݴͬͯϝϯόʔʹΒͤΔͷ؆୯ ◦ ࣗͨͪͰʮΔʯͱݴͬͯΔͷͱɺʮΕʯͱݴΘΕͯΒ͞ΕΔͷՁ͕ҧ͏ • ݱߦͷઃܭʹର͢Δҙݟަ ◦ ϝϯόʔΛूΊͯͰͳ͘ɺ1ਓͣͭ࣌ؒΛऔͬͯΛ͢Δ ◦
ʮࣗ͜͏ࢥͬͯΔΜ͚ͩͲɺͿͬͪΌ͚YouͲ͏ࢥͬͯΔʁʯ • ҙݟΛ·ͱΊͨ݁Ռɺݱߦͷઃܭʹର͢Δҙݟ΄΅Ұகͨ͠ ◦ ࣗͷײ֮ɺɺͦͯ͠पΓͷײ֮શ͕ͯҰகͨ͠ ◦ ϦϑΝΫλೖΕ͍͚ͨͲɺ࡞Γ͠نͩͱֻ͕͔࣌ؒΓ͗͢Δ • ͔͜͜ΒϓϩμΫτ։ൃͷεϐʔυΛߋʹՃͤ͞ΔͨΊʹɺઃܭͷ৽ඞཁෆՄ ܽͱ݁ ◦ ϲ݄ͷؒɺ৽ػೳ։ൃۃྗετοϓ͠ɺઃܭ৽ʹूத͢Δ • ܦӦਞͱͷ߹ҙܗΛ࡞Γʹߦ͘͜ͱʹ 8
ܦӦਞͱͷ߹ҙܗ 9 ࠷ۙͲ͏ʁ ϑϩϯτΤϯυΛ࡞Γͨ͠΄͏͕͍͍ ͔͠Ε·ͤΜɻ ࡞Γͨ͠Βੜ࢈ੑΛ࠷Ͱ2ഒҎ্ ʹҾ্͖͛Δ͜ͱ͕ग़དྷ·͢ɻ Ϛδʁ͡Ό͋ͬͯʂ
߹ҙܗ • ҎલʹผγεςϜͷઃܭ৽Λߦͬͨ͜ͱ͕͋Δ ◦ ͦͷࡍʹੜ࢈ੑΛര্͛ग़དྷ͍ͯͨͨΊɺઃܭ৽ʹର͢Δޭମݧ͕͋Δ ▪ ίετֻ͔Δ͕ɺ͙͢ʹճऩͰ͖ͨͱ͍͏ܦݧ͕͋Δ ▪ ֻ͔ͬͨίετͱϦλʔϯΛͰग़͢͜ͱ͕ग़དྷ͍ͯͨ •
աڈͷޭମݧͱ࣮ࡍͷΛग़͢͜ͱͰɺೝࣝ߹Θͤͱ߹ҙܗ͕ਐΉ 10
ணखલͷ४උ
ணखલͷ४උ • ৽ઃܭํΛݻΊΔ ◦ ଟগͰྑ͍ͷͰɺڞ௨Խ࠷ݶʹཹΊΔ ▪ ͦͷޙɺڞ௨Խ͢Δ͔Ͳ͏͔ͷٞΛ௨ͬͨॲཧ͚ͩڞ௨Խ͢Δ ▪ unit testΛ༻ҙ͓͖ͯ͠ɺޙͷڞ௨ԽͰॲཧ͕յΕͳ͍͜ͱΛอূ͢Δ
◦ ίʔυͷΛ໌֬ʹ͠ɺͦΕҎ্ͷ͜ͱߦΘͳ͍Α͏ʹ͢Δ • ؆୯ͳը໘ΛҰ͚ͭͩ࡞Γ͢ ◦ ৽ઃܭͰͷຌྫͱͯ͠ϝϯόʔʹల։͢Δ ◦ ޱͰઆ໌͢ΔΑΓɺίʔυͰઆ໌ͨ͠΄͏͕ཧղ͍͢͠ • ࣮ࡍͷ࡞Γ͠ͷྲྀΕΛݻΊΔ ◦ ݱঢ়ͷػೳɺελΠϧΛҡ࣋ͨ͠··ɺ҆શʹҠߦ͢Δ͜ͱ͕େલఏ ◦ ϖʔδ୯ҐͰ࡞Γ͠ΛਐΊ͍ͯ͘ ◦ APIطʹͬͯΔͷΛͦͷ··͍ճ͢ 12
࡞Γ͠ͷྲྀΕ
ಉ͡ը໘Λશ͘ҧ͏ίʔυͰ࡞Γͯ͠ผURLͰެ։ جຊతͳ࡞Γ͠ͷྲྀΕ 14 ৽ը໘ΛQA ϧʔςΟϯάΓସ͑ چ࣮Λશআ
࡞Γ͠ͷྲྀΕ • ಉ͡ը໘ΛผURLͰ࣮ ◦ طଘը໘ʹखΛՃ͑ΔͷجຊNG ◦ Ұ࣌తʹಉ͡ը໘͕ҟͳΔURLͰެ։͞ΕΔ ◦ طଘը໘ͱҟͳΔίʔυͰ࣮͍ͯ͠ΔͷͰɺPullrequestΛΨϯΨϯmergeͰ͖Δ •
৽ઃܭͰͷ࣮͕ྃޙɺຊ൪ڥͰಈ࡞֬ೝΛߦ͏ ◦ ಈ࡞֬ೝ͕OKͰ͋Εچ࣮ͷURLͷϧʔςΟϯάΛ৽ઃܭͷը໘ʹ͚Δ ▪ Կ͔͠Βෆ۩߹͕ൃੜͨ͠߹ϧʔςΟϯάΛ͢͜ͱͰճආ • Ұఆظ༷ؒࢠΛݟͯɺͳͦ͞͏ͳΒچ࣮ͷίʔυΛશআ ◦ ࡞Γ͠ͰҰ൪ָ͍͠࡞ۀ 15
ৼΓฦΓ
࡞Γͨ݁͠Ռ લൺͰҰਓͨΓͷੜ࢈ੑ͕2.5ഒఔ·Ͱ্ঢ 17
࡞Γ͠ͷߏ͔Βணखɺྃ·Ͱʹֻ͔ͬͨ • ߹ܭͰ17ਓ݄ఔͷֻ͕͔ͬͨ ◦ ४උظؒͰ1ਓ݄ ◦ ΨοπϦ࡞Γ͠ظؒͰ4ਓ * 3ϲ݄Ͱ12ਓ݄ ◦
͋Δఔ࡞Γ͕͠ऴΘͬͨ͋ͱ1ਓ * 4ϲ݄Ͱ4ਓ݄ • ը໘40ݸఔ ◦ 1ਓͨΓҰिؒ͘Β͍Ͱ1ը໘ͷ࡞Γ͕͠ຊ൪ࠩ͠ସ͑·Ͱྃ͢Δεϐʔυײ • طʹ࡞Γ͠ʹֻ͔ͬͨίετΛճऩࡁ ◦ ໌͚͔Β࡞Γ͠Λ։࢝ͯ͠7݄ʹશͯྃ ◦ 4݄ลΓ͔Β࡞Γ͠ʹֻ͚ΔίετΛԼ͛ɺͷେΛػೳՃͷํʹ͢ ◦ 7݄ͷ࣌Ͱ࡞Γ͠ʹֻ͔ͬͨίετͷճऩʹޭ ▪ 3ਓ ✕ 4ϲ݄ ✕ 2.5ഒ - 3ਓ ✕ 4ϲ݄ = 18ਓ݄ 18
·ͱΊ
·ͱΊ • ࡞Γ͠ɺઃܭ৽ΛఏҊ͢Δલʹɺ·ͣײ֮ͱ࣮ࡍͷΛݟൺΔ ◦ ͔ͦ͜Βϝϯόʔͱͷೝࣝ߹Θͤ • ࣮ࡍͷͱޭମݧͰɺܦӦਞͱͷ߹ҙܗ ◦ ·ͣࣈ͋Γ͖ ◦
ޭମݧ͕͋Ε࣍ͷఏҊࢥͬͨҎ্ʹ্ख͘ਐΉ ◦ ࠷ॳͷޭମݧΛ࡞Δͷ͕ඇৗʹ͍͠ ▪ ࣈΛग़͠ɺখ͞ͳޭମݧΛੵΜͰΈΔ͜ͱ͕େࣄ • ϓϩμΫτͷϑΣΠζʹ߹ΘͤͨઃܭΛ ◦ ϩϯν͔ͨ͠ΓͷͷͱɺͷϑΣΠζʹೖͬͨͷʹٻΊΒΕΔઃܭҧ͏ ◦ ϑΣΠζ͕มΘͬͨͳΒઃܭηοτͰݟ͢ 20
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠