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
Genki Sano
April 11, 2022
Programming
0
1k
カオナビのチーム開発の裏側
Genki Sano
April 11, 2022
Tweet
Share
More Decks by Genki Sano
See All by Genki Sano
スクラムチームをスケールする〜LeSS導入3ヶ月の振り返りと課題〜/scaling-the-scrum-team
sanogemaru
2
630
SQLアンチパターンを読んでリファクタしてみた / sql-anti-pattern-refactored-2022
sanogemaru
0
490
Other Decks in Programming
See All in Programming
PEPCは何を変えようとしていたのか
ken7253
2
240
Rails アプリ地図考 Flush Cut
makicamel
1
130
Introduction to kotlinx.rpc
arawn
0
770
Honoとフロントエンドの 型安全性について
yodaka
7
1.5k
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
0
150
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
310
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
8
2.4k
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
1k
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
From the Wild into the Clouds - Laravel Meetup Talk
neverything
0
150
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
270
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
160
Featured
See All Featured
Code Review Best Practice
trishagee
67
18k
How to Ace a Technical Interview
jacobian
276
23k
Optimizing for Happiness
mojombo
376
70k
A Philosophy of Restraint
colly
203
16k
Building Your Own Lightsaber
phodgson
104
6.2k
The Invisible Side of Design
smashingmag
299
50k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Building Applications with DynamoDB
mza
93
6.2k
Adopting Sorbet at Scale
ufuk
74
9.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Transcript
ࠤ ݩؾ ΧΦφϏͷνʔϜ։ൃͷཪଆ !1)1FS,BJHJ
ࣗݾհ !TBOPHFNBSV 2 גࣜձࣾΧΦφϏ αʔόʔαΠυΤϯδχΞ ΤϯδχΞϦϯάϚωʔδϟʔ ࠤ ݩؾ (FOLJ 4BOP
3 νʔϜ։ൃͯ͠·͔͢ʁ
4 ͍ͬͯΔͱࠔΔ͜ͱ͕ͨ͘͞Μ͋Δ ࠔͬͯΔͷʹԿݴͬͯ͘Εͳ͍ ϝϯόʔ͕ݮͬͯ͠·ͬͨ ϝϯόʔಉ࢜ͷഅ͕߹Θͳ͍ εέδϡʔϧ௨ΓʹऴΘΒͳ͍ ͓ޓ͍ʹ͍ͬͯΔ͜ͱ͕ݟ͑ͳ͍ ίϛϡχέʔγϣϯ্͕ख͘ͱΕͳ͍ ҙݟ͕߹Θͳ͍ ઃܭํ͕όϥόϥͰෛ࠴͕ग़དྷͯ͠·ͬͨ
5 ຊͷ
ຊͷ 6 ࣗͰॴଐͨ͠νʔϜͰͷମݧஊ l ͲΜͳ͜ͱͰࠔͬͨͷ͔ l ͦΕΛͲ͏ͬͯΓӽ͔͑ͨ l ͬͯΑ͔ͬͨ͜ͱ l
͚ͬͨͲ্ख͘ߦ͔ͳ͔ͬͨ͜ͱ
ຊͷ 7 ϓϩδΣΫτհ ࠔΓ͝ͱͱͦͷղܾํ๏ ·ͱΊ
8 ࣾһͷݸੑɾ࠽ೳΛൃ۷͠ઓུਓࣄΛՃͤ͞Δ λϨϯτϚωδϝϯτγεςϜʰΧΦφϏʱ © kaonavi Inc.
9 ϓϩδΣΫτհ
ϓϩδΣΫτհ 10 γʔτཤྺػೳͷ։ൃ l ։ൃظؒ ɿ̍ l ։ൃख๏ ɿΞδϟΠϧʢεΫϥϜʣ l
نײ ɿ̓ʙ໊̔
ϓϩδΣΫτհ 11 جຊใ l ࢯ໊ l ࣾһ൪߸ l ॴଐ l
ೖࣾ l ʜ l ༣ศ൪߸ l ಓݝ l ࢢ۠ொଜ l ொ໊ɾ൪ l ΞύʔτɾϚϯγϣϯ໊ l ʜ ݱॅॴ ࢁా ଠ γʔτ γʔτ
12 ϓϩδΣΫτհ ΤϯδχΞ 2"ΤϯδχΞ σβΠφʔ 10 εΫϥϜϚελʔ
13 ϓϩδΣΫτհ εϓϦϯτ ϓϥϯχϯά εϓϦϯτ ϨτϩεϖΫςΟϒ εϓϦϯτϨϏϡʔ σΠϦʔεΫϥϜ ຖ िؒ
ϦϦʔε
14 ࠔΓ͝ͱͱͦͷղܾํ๏
ࠔΓ͝ͱͱͦͷղܾํ๏ 15 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ ͋Γ·ͤΜͱ͍͏
16 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍
17 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ l ։ൃਐḿ͕ѱ͔ͬͨ l ΤϯδχΞؒͰɺղܾ͢ΔͨΊʹ৭ʑࢼ͍ͯͨ͠ l 10͔ΒΤϯδχΞͰͷऔΈ͕ݟ͑ͣɺগ͠ෆ৴ײ͕ग़ͯ͠·ͬͨ l
ϑϧϦϞʔτͰͷࣄͩͬͨͷͰɺ༨ܭʹݟ͑ʹ͘͘ͳ͍ͬͯͨ
18 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ ͬͯΈͨ͜ͱ l 10ͱϦʔυΤϯδχΞͰPOΛߦ͏
19 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ POͷৄࡉ l ස ɿि̍ճ l ࣌ؒ ɿ̏̌
l ͢༰ɿࠔΓ͝ͱϞϠϞϠ͍ͯ͠Δ͜ͱͷڞ༗
20 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ Ͳ͏ͳ͔ͬͨ l ࠣࡉͳҾֻ͔ͬΓΛղফग़དྷͨ l ಉ͡ํΛ͍ͯࣄ͕ग़དྷ͍ͯΔ͜ͱΛఆظతʹ֬ೝͰ͖ͨ l ͦΕʹΑΓɺ͓ޓ͍ͷ৴པ্͕ͨ͠
21 ࠔΓ͝ͱͱͦͷղܾํ๏ 10ͱΤϯδχΞͰ্ख͘࿈ܞ͕औΕͳ͍ l ಛʹͳ͠ l ͠Β͘εΫϥϜϚελʔʹ ؒʹೖͬͯΒͬͨ l ΞδΣϯμΛ࡞Βͳ͔ͬͨ
ͬͯྑ͔ͬͨ͜ͱ ͬͯඍົͩͬͨ͜ͱ
22 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍
23 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ l ઃܭͷ૬ஊΛ͢Δ͕࣌ؒଟ͘ൃੜ͍ͯͨ͠ l ઃܭͷ࣌ؒෆ֬ఆཁૉ͕ଟ͘ɺϓϥϯχϯά࣌ʹਖ਼֬ͳ࣌ؒΛݟੵΔ ͷ͔ͬͨ͠ ˞͜͜Ͱͷʮઃܭʯͱ l
ৄࡉઃܭϓϩάϥϜઃܭΈ͍ͨͳͷ l ࣮ࡍʹରͷΫϥεʹରͯ͠Ͳ͜·ͰΛ࣋ͨͤΔ͔ʁͳͲ
24 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ ͬͯΈͨ͜ͱ l ϓϥϯχϯάͷલʹઃܭΛઃ͚ͯɺઃܭʹूத͢Δ࣌ؒΛ࡞ͬͨ l ઃܭΛϞϒϓϩͰͬͯΈͨ
25 ࠔΓ͝ͱͱͦͷղܾํ๏ CFGPSF ϓϥϯχϯά ઃܭ ࣮ ઃܭ ϓϥϯχϯά ࣮ BGUFS
26 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ Ͳ͏ͳ͔ͬͨ l ෆ֬ఆཁૉ͕ݮΓɺϓϥϯχϯάͷਫ਼্͕͕ͬͨ l εϓϦϯτͰୡ͖͢͜ͱ͕໌֬ʹͳΓɺϞνϕʔγϣϯ্͕͕ͬͨ l ҰॹʹઃܭΛ͢Δ͜ͱͰɺ࣮ํͷบ͕ἧ͏Α͏ʹͳͬͨ
27 ࠔΓ͝ͱͱͦͷղܾํ๏ ϓϥϯχϯάͲ͓Γʹ։ൃ͕ਐ·ͳ͍ l ϓϥϯχϯάͰઃܭ͢Δ l εϓϦϯτͷ࠷ऴʹઃܭ Λઃ͚Δ l ઃܭͰ۩ମతͳ࣮ํ๏
ίʔσΟϯά༰ܾΊͳ͍ l ઃܭͰίϝϯτ͚ͩΛॻ͘ ͬͯྑ͔ͬͨ͜ͱ ͬͯඍົͩͬͨ͜ͱ
28 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏
29 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ l σΠϦʔεΫϥϜͷ ༰͕ࣅ௨ͬͯ͘Δ l ୶ʑͱࡢͱࠓͷ͕͋Γɺࠔ͍ͬͯΔ͜ͱͳ͍ ͰऴΘΔ l
͔͠͠ɺͳΜͱͳ্͘ख͘ߦ͍ͬͯΔ l ͕͋ͬͯগ͠ݴ͍ͮΒ͍ ঢ়گʢʁʣ
30 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ ͬͯΈͨ͜ͱ l ͪΐͬͱͨ͠͝ͱΛ 5SFMMPͰΧʔυ ʹͯ͠Βͬͨ l σΠϦʔεΫϥϜͷΞδΣϯμʹɺ5SFMMPͷ֬ೝͷ࣌ؒΛՃ
ͨ͠
31 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ 5SFMMPͷϦετ l ഉআ͍ͨ͠োɾࠔΓ͝ͱ l ͍͋·͍ͳ͜ͱ l ֬ೝɾରԠத
l ྃ
32 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ 5SFMMPͷϦετ l ഉআ͍ͨ͠োɾࠔΓ͝ͱ l ϓϩδΣΫτͷਐḿΛ્͢ΔΑ͏ͳཁҼΛॻ͍ͯஔ͘ॴ l ͍͋·͍ͳ͜ͱ
l Ͳ͏ͳ͍ͬͯΔͷ͔͍ͯ͠Δ͜ͱΛॻ͍ͯஔ͘ॴ
ࠔΓ͝ͱͱͦͷղܾํ๏ 33
34 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ Ͳ͏ͳ͔ͬͨ l ͪΐͬͱͨ͜͠ͱͰॻ͍ͯ͘Εͨ l ʹײ͍͕ͯͨ͡ɺேʹͳΔͱΕ͍ͯΔঢ়گ͕ݮͬͨ l ݦࡏԽ͍ͯ͠ͳ͍ΛૣΊʹͰ͖ΔΑ͏ʹͳͬͨ
35 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ l ϑΝΠϒϑΟϯΨʔ l ࢥ͍͍ͭͨλΠϛϯάʹ͙͢ هࡌͰ͖ΔॴΛͭ͘Δ l σΠϦʔεΫϥϜͰඞͣ৮ΕΔ
ͬͯྑ͔ͬͨ͜ͱ ͬͯඍົͩͬͨ͜ͱ
36 ࠔΓ͝ͱͱͦͷղܾํ๏ ͋Γ·ͤΜͱ͍͏ ϑΝΠϒϑΟϯΨʔ l ยखͷຊͷࢦͰࠓͷؾ࣋ͪঢ়گΛද͢؆୯ͳΞϯέʔτ l σΠϦʔεΫϥϜͰʮεϓϦϯτΰʔϧʹରͯ͠ͷਐḿʯʹ͍ͭͯฉ͍ͨ l ͕ಇ͍ͯɺগ͠ଟ͍ࣈΛग़ͯ͠͠·͏͜ͱ͕ଟ͔ͬͨ
l ͺͬͱৼΒΕΔͱযͬͪΌ͏ਓ͕͍ΔνʔϜʹ͔ͳ͍
·ͱΊ 37
·ͱΊ 38 ؾʹͳΔ͋Γ·ͨ͠Ͱ͠ΐ͏͔ʁ l ͜ͷ··ಋೖ্ͯ͠ख͘ߦ͔ͳ͍͜ͱ͕ଟ͍ͣ l ಋೖ͔ͯ͠ΒʮΧΠθϯʯ͢Δ͜ͱ͕ॏཁ l ͱΓ͋͑ͣͬͯΈΔྫͱͯ͠׆༻ͯ͠ཉ͍͠ l
ϋοϐʔͳνʔϜ։ൃϥΠϑΛʂ
© kaonavi Inc. 8&"3&)*3*/( IUUQTDPSQLBPOBWJKQSFDSVJUMJTU