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
KazukiHayase
June 21, 2023
Technology
2
3.1k
自分だけが頑張るのをやめて、フルスタックなチームを作る
KazukiHayase
June 21, 2023
Tweet
Share
More Decks by KazukiHayase
See All by KazukiHayase
もし今からGraphQLを採用するなら
kazukihayase
12
5.1k
Goでテストをしやすくするためにやったこと
kazukihayase
1
800
GraphQLクライアントの技術選定 2023冬
kazukihayase
9
6.8k
Introduction and Insights of the Hasura-based Architecture
kazukihayase
0
920
Goでテンプレートからファイルを自動生成するCLIを作る
kazukihayase
0
1.3k
生産性が上がり続けるチームを作るための第一歩
kazukihayase
4
3.7k
GraphQLにおけるクライアントキャッシュ戦略
kazukihayase
0
3k
MUIをベースにしたデザインシステムの構築
kazukihayase
0
560
Hasuraを活用するためのTips集
kazukihayase
0
34k
Other Decks in Technology
See All in Technology
勝手に!深堀り!Cloud Run worker pools / Deep dive Cloud Run worker pools
iselegant
4
620
【Λ(らむだ)】最近のアプデ情報 / RPALT20250422
lambda
0
320
Web Intelligence and Visual Media Analytics
weblyzard
PRO
1
5.9k
AndroidアプリエンジニアもMCPを触ろう
kgmyshin
2
570
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
110
30代からでも遅くない! 内製開発の世界に飛び込み、最前線で戦うLLMアプリ開発エンジニアになろう
minorun365
PRO
16
5k
PagerDuty×ポストモーテムで築く障害対応文化/Building a culture of incident response with PagerDuty and postmortems
aeonpeople
3
530
Twelve-Factor-Appから学ぶECS設計プラクティス/ECS practice for Twelve-Factor-App
ozawa
3
160
ここはMCPの夜明けまえ
nwiizo
32
13k
Goの組織でバックエンドTypeScriptを採用してどうだったか / How was adopting backend TypeScript in a Golang company
kaminashi
12
9k
バクラクの認証基盤の成長と現在地 / bakuraku-authn-platform
convto
4
880
Winning at PHP in Production in 2025
beberlei
1
270
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
780
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Product Roadmaps are Hard
iamctodd
PRO
52
11k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
5
550
Mobile First: as difficult as doing things right
swwweet
223
9.6k
GraphQLの誤解/rethinking-graphql
sonatard
71
10k
Automating Front-end Workflow
addyosmani
1370
200k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
Designing for Performance
lara
608
69k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Transcript
͚͕ࣗͩؤுΔͷΛΊͯɺϑϧελοΫͳνʔϜΛ࡞Δ ԶͨͪͷຊʹΓ͔ͨͬͨDevDay 2023.06.21
ૣًʢ@KazukiHayaseʣ • 2021BuySell Technologies৽ଔೖࣾ • ग़ཧSaaSνʔϜ ϓϩδΣΫτϦʔμʔ • Go /
TypeScript / ։ൃੜ࢈ੑվળ • ۙͷొஃྺ ◦ ʲZOZO x ϕʔεϚΩφ x όΠηϧʳGoษڧձ #1 ◦ ʲ։ൃੜ࢈ੑ Meetup #1ʳ։ൃੜ࢈ੑՄࢹԽʹΑΔ มԽ~ࣄྫLT͔ΒֶͿϕετϓϥΫςΟε~ ◦ ϦΫϧʔτ × BASE × όΠηϧ ʲୈ1ճϑϩϯτΤϯυษڧձʳReact & GraphQL
None
None
͚͕ࣗͩؤுΔͷΛΊͯ ϑϩϯτΤϯυ։ൃΛΈԽ͢Δ͜ͱͰ ϑϧελοΫͳνʔϜΛ࡞ͬͨ ࠓ͢͜ͱ
ΞδΣϯμ എܠ 01 2ͭͷଆ໘͔ΒͷΞϓϩʔν 02 ΞϓϩʔνͷޮՌ 03 ·ͱΊ 04
01 എܠ
࣌ͷ։ൃମ੍ ΤϯδχΞϦϯάϚωʔδϟʔ ʢ1໊ʣ ϑϩϯτΤϯυΤϯδχΞ ʢ1໊ɺࣗʣ όοΫΤϯυΤϯδχΞ ʢ3໊ʣ EMͱ͕ࣗPdM݉
• ϑϩϯτΤϯυΤϯδχΞࣗҰਓͰPdM݉ • ୯ಠͰਐΊΒΕΔͷͰ։ൃεϐʔυૣ͍ • ϑϩϯτΤϯυ։ൃͷશݖΛҕͶΒΕ͍Δ ࣌ͷ։ൃମ੍
• ϑϩϯτΤϯυͷ։ൃॱௐ • ࣗͷΞτϓοτ͕ϓϩμΫτਐḿʹ݁͢Δ • ৽ଔ1ͳͷͰΔؾʹຬͪᷓΕ͍ͯΔ ։ൃॳظ ͕ࣗؤுΕ։ൃ্͕खͩ͘Ζ͏ͱ͍͏ࠜڌͷͳ͍ࣗ৴
։ൃॳظ ࣗ৴ νʔϜ։ൃͷཧղ νʔϜ։ൃͷཧղ͕ઙ͍͕ނͷࣗ৴
• ։ൃҎ֎ͷۀ͕૿Ճ͠ɺ࡞ۀ͕࣌ؒ֬อͰ͖ͳ͍ • ଞͷϝϯόʔʹϑϩϯτΤϯυͷλεΫΛ͓ئ͍Ͱ͖ͳ͍ ։ൃͷԆ ͕ࣗ࡞ۀͰ͖ͳ͍ͱϑϩϯτΤϯυͷ։ൃ͕ਐ·ͳ͍
ϑϩϯτΤϯυ։ൃͷԆ͚͕ͩݪҼͰͳ͍͕ ϦϦʔεΛԆظ͢Δ͜ͱʹ ϦϦʔεԆظ
• ݸਓͷΞτϓοτྔʹݶք͕͋Δ • ҰਓͰؤுͬͯεέʔϧ͠ͳ͍ • ༏ઌ͢Δ͖νʔϜͱͯ͠ͷΞτϓοτ ϚΠϯυͷมԽ
νʔϜΛมԽͤ͞ΔํϚΠϯυΛγϑτ
02 2ͭͷଆ໘͔ΒͷΞϓϩʔν
2ͭͷଆ໘͔ΒͷΞϓϩʔν ৫໘ 01 ٕज़໘ 02
৫໘͔ΒͷΞϓϩʔν ߹ҙܗ 01 ֶशͷଅਐ 02 ։ൃମ੍ͷվળ 03
৫໘͔ΒͷΞϓϩʔν ߹ҙܗ 01 ֶशͷଅਐ 02 ։ൃମ੍ͷվળ 03
[৫໘] ߹ҙܗ • όΠηϧͷϑϧελοΫʹ։ൃ͢ΔจԽ • ଐਓԽͱ͍͏νʔϜ๊͕͑Δ՝ શһ͕ϑϩϯτΤϯυͷ։ൃͰ͖ΔΑ͏ʹͳΔͱ͍͏߹ҙܗ
[৫໘] ߹ҙܗ ͡Ίʹ߹ҙΛऔΔ͜ͱͰɺͦͷޙͷҙࢥܾఆ͕εϜʔζʹͳΔ e.g. • ۀ࣌ؒͰͷษڧձͷ։࠵ • Ұ࣌తͳੜ࢈ੑԼͷڐ༰
߹ҙܗνʔϜΛมԽͤ͞ΔͨΊͷϑΝʔετεςοϓ
• ݱঢ়ͷ՝ͱཧͷঢ়ଶΛڞ༗͢Δ • ݱঢ়ͱཧͷΪϟοϓΛຒΊΔͨΊͷHowΛٞ͢Δ • ϕʔε͕Ͱ͖ΔͷͰ͕ٞͿΕʹ͍͘ [৫໘] ߹ҙܗͷίπ
৫໘͔ΒͷΞϓϩʔν ߹ҙܗ 01 ֶशͷଅਐ 02 ։ൃମ੍ͷվળ 03
[৫໘] ֶशͷଅਐ ษڧձ Ϟϒϓϩ ϑϩϯτΤϯυ ڞ༗ձ
[৫໘] [ֶशͷଅਐ] ษڧձ • TypeScriptReactͷجૅ͔ΒΩϟονΞοϓ • ۀͰ͍ͬͯΔٕज़ελοΫͰTodoΞϓϦΛ࡞ • ຖ1࣌ؒɺۀ࣌ؒʹ࣮ࢪ
[৫໘] [ֶशͷଅਐ] Ϟϒϓϩ • ࣮ࢪ͢Δ࣌ΛܾΊͯɺग़ࣾͯ͠ର໘Ͱ࣮ࢪ • ͋Β͔͡ΊϞϒϓϩ༻ͷλεΫΛ༻ҙ Ϟϒϓϩ༻ͷλεΫͷϦϯΫ
[৫໘] [ֶशͷଅਐ] Ϟϒϓϩ ç φϏήʔλʔ υϥΠόʔ ը໘ڞ༗
1. υϥΠόʔͱφϏήʔλʔʹ͔ΕΔ a. υϥΠόʔ1໊ɺͦͷଞφϏήʔλʔ b. ࣗφϏήʔλʔͷΈΛ୲ 2. υϥΠόʔ͕ը໘Λڞ༗ 3. υϥΠόʔ͕φϏήʔλʔͷࢦࣔʹै࣮ͬͯ
a. ࣭͕͋Εͦͷճ͠ͳ͕ΒਐΊΔ 4. 30ܦաͨ͠ΒυϥΠόʔΛަ [৫໘] [ֶशͷଅਐ] Ϟϒϓϩ
[৫໘] [ֶशͷଅਐ] ϑϩϯτΤϯυڞ༗ձ ࣮ͨ͠PRֶΜͩ͜ͱΛڞ༗͢ΔձΛि̍Ͱ։࠵
[৫໘] [ֶशͷଅਐ] ϑϩϯτΤϯυڞ༗ձ ςϯϓϨʔτʹै֤͕ͬͯࣗࣄલʹهࡌͯ͠ɺڞ༗ձͰॱ൪ʹൃද
[৫໘] [ֶशͷଅਐ] ϑϩϯτΤϯυڞ༗ձ ൃද༰ͷྫ
৫໘͔ΒͷΞϓϩʔν ߹ҙܗ 01 ֶशͷଅਐ 02 ։ൃମ੍ͷվળ 03
[৫໘] ։ൃମ੍ͷվળ Before • ϓϥϯχϯάͰ͕ࣗλεΫΛ༻ҙ+ղ • PRͷϨϏϡʔࣗͷApprove͕ඞਢ After • ϓϥϯχϯάͰશһͰλεΫΛ༻ҙ+ղ
• PRͷϨϏϡʔશһͷApprove͕ඞਢ
[৫໘] ։ൃମ੍ͷվળ • λεΫͷղ૾্͕͕ΓɺखΓ͕ݮগ • શͯͷPRʹΛ௨͢ͷͰɺΒͳ͍࣮͕ͳ͘ͳΔ Ұݟ͕͔͔࣌ؒΓͦ͏͕ͩɺ࠷ऴతͳϦʔυλΠϜ͘ͳͬͨ
Before [৫໘] ։ൃମ੍ͷվળ After ίϛοτ~Ϛʔδ·Ͱ͕1/4ҎԼʹॖ
ٕज़໘͔ΒͷΞϓϩʔν ։ൃϧʔϧͷඋ 01 σβΠϯγεςϜͱͷ࿈ܞ 02
ಛʹΈΛ࡞Δ͜ͱΛॏཁࢹ
ٕज़໘͔ΒͷΞϓϩʔν ։ൃϧʔϧͷඋ 01 σβΠϯγεςϜͱͷ࿈ܞ 02
ࣗͷதͰ͍݁ͯͨ͠ͷΛɺυΩϡϝϯτͱͯ͠උ [ٕज़໘] ։ൃϧʔϧͷඋ
[ٕज़໘] ։ൃϧʔϧͷඋ υΩϡϝϯτΛඋ্ͨ͠Ͱ • ESLintΛίϛοτ࣌ʹνΣοΫͯ͠ɺ։ൃϧʔϧΛڧ੍ • HygenΛར༻ͯ͠ɺϧʔϧʹԊͬͨϑΝΠϧΛੜ
[ٕज़໘] [։ൃϧʔϧͷඋ] ESLintͷྫ import/no-restricted-pathsΛར༻ͯ͠ɺ σΟϨΫτϦߏͷϧʔϧʹԊΘͳ͍importΛېࢭ
[ٕज़໘] [։ൃϧʔϧͷඋ] Hygenͷྫ σΟϨΫτϦߏʹैͬͯίϯϙʔωϯτΛੜ
ٕज़໘͔ΒͷΞϓϩʔν ։ൃϧʔϧͷඋ 01 σβΠϯγεςϜͱͷ࿈ܞ 02
[ٕज़໘] σβΠϯγεςϜͱͷ࿈ܞ • σβΠϯؔ࿈͕͔͔࣌ؒΔ͠ɺ࣮ͷ͕ࠩग़͍͢ • ແடংʹ࣮͢ΔͱσβΠϯ͕൙ཞ͢Δ
[ٕज़໘] σβΠϯγεςϜͱͷ࿈ܞ ൚༻తʹ͏ίϯϙʔωϯτFigmaͱ࣮Λಉظͤ͞Δ ͦͷίϯϙʔωϯτͷ༻ΛESLintͰڧ੍ͯ͠σβΠϯΛ౷Ұ͢Δ Typographyͷྫ
03 ΞϓϩʔνͷޮՌ
PR࡞ͷભҠ ΄ͱΜͲࣗͷΞτϓοτ͔͠ͳ͍ શһ͕Ξτϓοτ͍ͯ͠Δ ࣗҰਓͩͬͨ࣌ΑΓΞτϓοτͷ૯ྔ͕૿͍͑ͯΔ
ΞϓϩʔνͷϕΫτϧΛνʔϜʹ͚ͨ͜ͱͰ νʔϜͷ։ൃੜ࢈ੑͷ্ʹܨ͕ͬͨ
04 ·ͱΊ
·ͱΊ • ৫໘ͰͷΞϓϩʔν ◦ ߹ҙܗɺֶशͷଅਐɺ։ൃମ੍ͷվળ • ٕज़໘ͰͷΞϓϩʔν ◦ ։ൃϧʔϧͷඋɺσβΠϯγεςϜͱͷ࿈ܞ •
ϚΠϯυͱΞϓϩʔνͷมԽ͕ɺνʔϜͷੜ࢈ੑΛ্ͤͨ͞ ϫϯϚϯϓϨΠΑΓνʔϜͷউརʂ