Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
自分だけが頑張るのをやめて、フルスタックなチームを作る
Search
KazukiHayase
June 21, 2023
Technology
3.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
自分だけが頑張るのをやめて、フルスタックなチームを作る
KazukiHayase
June 21, 2023
More Decks by KazukiHayase
See All by KazukiHayase
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
230
entのPrivacy機能とgo/astを使って、意図しないDBアクセスを防ぐ
kazukihayase
1
460
go testのキャッシュの仕組みにDeep Diveする
kazukihayase
0
220
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
630
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
580
もし今からGraphQLを採用するなら
kazukihayase
13
6.1k
Goでテストをしやすくするためにやったこと
kazukihayase
1
960
GraphQLクライアントの技術選定 2023冬
kazukihayase
9
8k
Introduction and Insights of the Hasura-based Architecture
kazukihayase
0
1.2k
Other Decks in Technology
See All in Technology
Kiro Meetup #8 Kiro アップデート (2026/3/21〜2026/9/24)
katzueno
1
290
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
840
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
470
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
1
360
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
880
AIエージェント時代のPlatform as a Product —— テックリードがPdMとして回す発見・導入・計測 / Platform as a Product in the AI Agent Era
toshi0607
1
430
LT:「このままでいいのかな?」から一歩踏み出した私のデータキャリア選択〜社会人3年目に上京を決意したリアル〜Snowflake女子会 vol.8
snowwmn0824
0
110
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
120
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
300
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
4
760
Databricksメトリクスビューはじめてのもくもく会
taka_aki
0
110
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
550
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Practical Orchestrator
shlominoach
192
12k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
250
Accessibility Awareness
sabderemane
1
220
Discover your Explorer Soul
emna__ayadi
2
1.3k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
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 ·ͱΊ
·ͱΊ • ৫໘ͰͷΞϓϩʔν ◦ ߹ҙܗɺֶशͷଅਐɺ։ൃମ੍ͷվળ • ٕज़໘ͰͷΞϓϩʔν ◦ ։ൃϧʔϧͷඋɺσβΠϯγεςϜͱͷ࿈ܞ •
ϚΠϯυͱΞϓϩʔνͷมԽ͕ɺνʔϜͷੜ࢈ੑΛ্ͤͨ͞ ϫϯϚϯϓϨΠΑΓνʔϜͷউརʂ