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
Yasuhiroki
November 10, 2016
0
17
コードレビューの文化を手探りで作っていった話
#code_kaizen
コード改善 #2 で発表したスライドです。
Yasuhiroki
November 10, 2016
Tweet
Share
More Decks by Yasuhiroki
See All by Yasuhiroki
自分に勉強させるには
yasuhiroki
1
380
Android Studio `Command+Shift+A`
yasuhiroki
0
300
シェルスクリプトをサーバーレスで cron したい
yasuhiroki
1
740
rails new コマンド
yasuhiroki
1
670
自動化を習慣化する
yasuhiroki
2
14k
GitHub Actions Parallel Testing
yasuhiroki
1
1.1k
circleci.vim
yasuhiroki
0
1.5k
ベンチャー企業がCircleCIを選んだ理由と活用方法
yasuhiroki
1
740
Rubyの正規表現を調べてみた
yasuhiroki
0
750
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
517
39k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.8k
Making Projects Easy
brettharned
113
5.8k
Scaling GitHub
holman
458
140k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
23
1.7k
Documentation Writing (for coders)
carmenintech
65
4.3k
Debugging Ruby Performance
tmm1
72
12k
Become a Pro
speakerdeck
PRO
22
4.9k
Build your cross-platform service in a week with App Engine
jlugia
228
18k
Happy Clients
brianwarren
96
6.6k
Six Lessons from altMBA
skipperchong
26
3.4k
Transcript
ίʔυϨϏϡʔͷจԽΛ ख୳Γ࡞͍ͬͯͬͨ Yasuhiro Kiyota @yasuhiroki
ࣗݾհ
ࣗݾհ • Yasuhiro Kiyota • @ysauhiroki • Twitter: @duck_yasuhiroki •
GitHub: https://github.com/yasuhiroki • ։ൃऀʢݸਓʣͷͨΊͷJenkins - Git Pluginฤ • http://qiita.com/yasuhiroki/items/61a2be613fc7dcfc8682 • ͦͷγΣϧεΫϦϓτ͏ͪΐͬͱγϯϓϧʹॻ͚ͦ͏ TipsूʢGolf/γΣϧܳͰͳ͍ʣ • http://qiita.com/yasuhiroki/items/fad876db9e5505fceb03
https://certificates.cloudbees.com/10203903
झຯ $ echo "#code_kaizen" | grep -o . | sed
1d | tr '_' '|' | gsed -e '1i+-+' -e 's/./|&|/' -e '$a+-+'
ຊ
ίʔυϨϏϡʔͷจԽΛ ख୳Γ࡞͍ͬͯͬͨ
Agenda • ࢲͱ৽ଔͷ2ਓνʔϜͷ࣌ • ࢲͱ22ਓͷ3ਓνʔϜͷ࣌
ࢲͱ৽ଔͷ2ਓνʔϜͷ࣌
࣌ͷঢ়گ • ৽نαʔϏε։ൃ • ϓϩτλΠϓ։ൃ • ΫϥΠΞϯτ • AndroidΞϓϦ •
αʔόʔαΠυ • AWS RDS + AWS Lambda + AWS API Gateway ͷ αʔόʔϨεߏʹॳઓ
࣌ͷঢ়گ • νʔϜߏ • ϓϩδΣΫτϦʔμʔ • ࢲ • ৽ଔ •
ઌഐʢAndroidͷ͝ҙݟ൛ʣ • ։ൃαʔόʔαΠυ͕த࣠ • αʔόʔϨεॳઓ • αʔόʔαΠυ։ൃɺνʔϜͱͯ͠ॳઓ
࣌ͷঢ়گ • ༗ࣝऀෆࡏ
࣌ͷঢ়گ • ༗ࣝऀෆࡏ • νʔϜͰ։ൃͨ͠ܦݧগͳ͍
࣌ͷঢ়گ • ༗ࣝऀෆࡏ • νʔϜͰ։ൃͨ͠ܦݧগͳ͍ ɹ˞ ։ൃɾӡ༻πʔϧ։ൃνʔϜͩͬͨ ɹ˞ 1ਓͣͭผʑͷπʔϧΛ࡞ͬͯΔײ͡
࣌ͷঢ়گ • ༗ࣝऀෆࡏ • νʔϜͰ։ൃͨ͠ܦݧগͳ͍ ← νʔϜ։ൃͷಌΕ ɹ˞ ։ൃɾӡ༻πʔϧ։ൃνʔϜͩͬͨ ɹ˞
1ਓͣͭผʑͷπʔϧΛ࡞ͬͯΔײ͡
ࢲͷࢥ͍
࣌ͷࢲͷࢥ͍ • ։ൃऀͱͯ͠ • ૣ͘ྑ͍ՌΛग़͢ʹͲ͏͢Εྑ͍ͷ͔ • ྑ͍ίʔυΛॻ͘ʹͲ͏͢Εྑ͍ͷ͔ • ઌഐͱͯ͠ •
҆৺ͯ͠։ൃͯ͠Β͏ʹͲ͏͢Εྑ͍ͷ͔ • ࢲͷѱ͍ίʔυΛѱ͍ͱݴͬͯΒ͏ʹͲ͏͢Ε ྑ͍ͷ͔
ߟ͑ͯΈͨ
͜Ε͕Ͱ͖Εྑ͍ͷͰʁ • ຖேϓνձΛ։͘ • ຖͪΌΜͱλεΫͷཧͱεϓϦϯτͷඪ֬ೝ Λ͢Δ • ࢥͬͨ͜ͱԿͰݴ͍߹͍͍ͨͷͰɺؾܰ͞Λҙ ࣝͯ͠ϓνձͱݺশ •
ޓ͍ʹԕྀͳ͘ίʔυϨϏϡʔΛ͢Δ • ίʔυϨϏϡʔͷϧʔϧʢ৺ߏ͑ʣΛ࡞Δ • ·ͣܗ͔Β
࣮ફ
ίʔυϨϏϡʔͷϧʔϧ • ϨϏϡʔϫʔͷ৺ߏ͑ • ϓϧϦΫ͕ग़͞Εͨ࣍ͷʹϨϏϡʔ͢Δ • ίʔυ্Ͱઌഐޙഐؔͳ͍ • ϨϏϡʔΠͷ৺ߏ͑ •
SlackͰϓϧϦΫग़ͨ͜͠ͱΛඞͣ࿈བྷ͢Δ • ͋͘·Ͱ͓ئ͍͢Δ͜ͱ
ίʔυϨϏϡʔґཔ࣌ͷςϯϓϨʔτ • .github/PULL_REQUEST_TEMPLATE.md Λ༻ҙ • ֓ཁ • ͦͷϓϧϦΫʹΑͬͯԿ͕ୡ͞Ε͔ͨ • ࣮༰ʢνΣοΫϘοΫεʣ
• ࣮ͨ͠༰ͷՕॻ͖ • ݒ೦ • ≒ ݴ͍༁Λؾ࣋ͪΛॻ͘ • ʮ͜͜ԶݏͳΜ…ʯ • ʮ༷͕ܾ·ͬͨΒϦϑΝΫλ͢Δ͔Β…ʯ • Ϛʔδͯ͠Α͠ • ݟ·ͨ͠ΑνΣοΫϘοΫε
ίʔυϨϏϡʔґཔ࣌ͷςϯϓϨʔτͷޮՌ • ϨϏϡʔϫʔࢹ • ݒ೦ʹ͍ͭͯࢦఠ͕Ͱ͖Δ • ʮPMʹ֬ೝऔ͔ͬͨΒ͜ΕͰྑ͍Α or ͯ͠ʯ •
ϨϏϡʔΠࢹ • ґཔલʹݟ͕͠Ͱ͖Δ • ʮ࣮༰ͷՕॻ͖͕ଟ͗͢Δ͔ΒผͷϓϧϦΫ ʹ͚Α͏ʯ
ίʔυϨϏϡʔґཔ࣌ͷϥϕϧ • WIP / PleaseReviewϥϕϧΛ༻ҙ
ίʔυϨϏϡʔґཔ࣌ͷϥϕϧͷޮՌ • ϨϏϡʔΛґཔ͠Α͏ͱࢥ͍ͬͯͨΒɺ ͢ͰʹϨϏϡʔ͕ऴΘ͍ͬͯͨ • ʮPleaseReviewϥϕϧ͕షͬͯ͋ͬͨͷͰɺ ɹϨϏϡʔͯ͠ίϝϯτॻ͍ͯஔ͖·ͨ͠ʯ
औΓΈͷ݁Ռ • 43 / 51 (68%) ͷϓϧϦΫΤετ͕ ࡞͔Β1~3Ҏʹ Merge or
Close ɹ※ Please Review ϥϕϧ͕షΒΕ͔ͯΒͰͳ͍ ɹɹͦͷ߹ɺͬͱ૿͑Δఆ (ूܭͰ͖ͯͳ͍) • ͭ·ΓϓϧϦΫޙͷ ϨϏϡʔ -> ࢦఠՕॴͷमਖ਼ -> ࠶ϨϏϡʔ -> Ϛʔδ ͕ɺ 1~3ޙʹɺ͍͍͍ͩͨྃͯ͠Δ
͏·͘ػೳͯͦ͠͏ʢʁʣ
ࢲͱ22ਓͷ3ਓνʔϜͷ࣌
࣌ͷঢ়گ • ϓϩδΣΫτͷن͕ͪΐͬͱ֦େ • AndroidΞϓϦ • ຊϦϦʔεʹ͚͍ͯࠐΈ • ͋ͱผΞϓϦΛɺ͏̍ͭՃͰʂ •
αʔόʔαΠυͷ࣮ޙճ͠ͷϓϩτλΠϓΛ • αʔόʔαΠυ • ຊϦϦʔεʹ͚͍ͯࠐΈ
࣌ͷঢ়گ • νʔϜߏ • ϓϩδΣΫτϚωʔδϟʔ • αϒϦʔμʔ • ࢲ •
2 (લճͷ৽ଔ) • 2 (New) • ઌഐʢ͝ҙݟ൪ʣ • ผΞϓϦ୲
࣌ͷঢ়گ • Ұॹʹ͖ͬͯͨ৽ଔ͕2ʹʂ • ৽ͨʹ 2ՃΘͬͯ 3ਓମ੍ʹʂ • νʔϜશମͰਓһ͕૿͑ͨʂ •
AndroidΞϓϦ։ൃ͕த࣠ʹ
ࢲͷࢥ͍
࣌ͷࢲͷࢥ͍ • ҎલͷऔΓΈΛܧଓͯ͠ଓ͚͍ͨ
࣌ͷࢲͷࢥ͍ • ҎલͷऔΓΈΛܧଓͯ͠ଓ͚͍ͨ
࣌ͷࢲͷࢥ͍ • ҎલͷऔΓΈΛܧଓͯ͠ଓ͚͍ͨ
࣌ͷࢲͷࢥ͍ • ҎલͷऔΓΈΛܧଓͯ͠ଓ͚͍ͨ
࣌ͷࢲͷࢥ͍ • ҎલͷऔΓΈΛܧଓͯ͠ଓ͚͍ͨ • ͦΕ͚ͩ
Կ͕ى͖͔ͨ
ൃੜͨ͠ 1 • ίϛϡχέʔγϣϯྔͷ૿େ • ̍ਓ૿͑ͨɺ+1 Ͱͳ͘ *2 ͩͬͨ •
ίʔυϨϏϡʔґཔͷ૿Ճ • ࢲʮ͝ΊΜɺϨϏϡʔ໌Ҏ߱ʹͳΓ·͢ʯ͕ଟൃ • ࢲʮ͝ҙݟ൪͕OKͬͯݴͬͨΒOKͰ͢ʯ • ͝ҙݟ൪ʮ༷͕͔Βͳ͍ͷͰࡉ͔͘ݟΕͯͳ͍ ͚Ͳɺίί͕nullͷ࣌ͷৼΔ͍͕͜ΕͰྑ͍ͳΒ OKͰ͢ʯ
ൃੜͨ͠ 2 • 2(NEW) ͱͷจԽతɾٕज़తഎܠͷࠩ • ࢲ͕ͨͪഓ͖ͬͯͨϧʔϧɾٕज़Λઆ໌ͤͣਐΊ͍ͯͨ • ࢲʮ͔Μͳ͍͜ͱ͋ͬͨΒฉ͍ͯʔʯ •
ʮϨϏϡʔԿΛݟΕ…ʯ • -> ίʔυϨϏϡʔͷจԽ͕ͳ͔ͬͨ • ʮGitͷ͍ํͬͯ͜ΕͰྑ͍ͷͰ͠ΐ͏͔…ʯ • -> ͦΕ·ͰSCM͕ෆཁͳ։ൃ͕ओͩͬͨ • ʮࢼ͠ʹ࣮͚ͨͩ͠ͳͷͰ push ͯ͠ͳ͍Ͱ͢ʯ • -> ਖ਼͘͠ಈ͘ͷ͚ͩΛ remote ʹ͋͛ΔจԽͩͬͨ
ͷ૯ׅ • ৽͘͠དྷͨਓΛड͚ೖΕΔମ੍͕શͬͯ͘ͳ͍ • ࣭͞Εͳ͍ͱೝࣝҧ͍ʹؾ͚ͮͳ͍ • ࢲ͕ϘτϧωοΫʹͳ͍ͬͯΔ • ͦΕ·Ͱͱಉ͡։ൃϖʔεΛҡ࣋ͯ͠৽͍͠։ൃʹ टΛಥͬࠐΜͰ͍Δ
• ܻ͋;Εঢ়ଶ… • ͷؙ͛ͱ͍͏࠷ͷߦҝ…
͜ͷ··Ͱμϝͩͱؾ͘
ߟ͑ͯΈͨ
ॳ৺ʹؼΔ
ͬͨ͜ͱ
ͱʹ͔͘͢ • ·ͣޱ಄Ͱɺͱʹ͔͘ձ͢Δ • ʮࢲͷϓϧϦΫͷɺ͜ͷลͲ͏ࢥ͏ʁʯ • ʮͺͬͱݟͨײ͡ɺ݅ذ͕͔ΓͮΒ͍Ͱ͢ʯ • ʮ͓͚ɺϝιουԽ͢ΔΘʯ •
ࣗͷ࡞ۀΛࢭΊͯͰɺձΛ࠷༏ઌʹ • Slack׆༻ • ͱʹ͔͔͚͘͠Δ • ͓ޓ͍ʹ׳ΕΔ
׳ΕͯΒ͏ • ձͷ༰ΛGitHubʹॻ͍ͯΒ͏ • ʮೋख͚ؒͩͲɺ ɹࠓͨ͠༰ΛGitHubʹॻ͍ͯΒ͍͍ͬͯʁ ɹͦͨ͠Β͠·ͨͬͯ͠ίϝϯτฦ͢ΜͰʯ • औֻ͔ͬΓ͕Ͱ͖Εɺ͋ͱεϜʔζʹਐΜͩɻ
ࢲࣗͷλεΫͷཧ • ͷৎʹԊͬͨλεΫྔʹͳΔΑ͏ௐ͢Δ • CIͱ͔σϓϩΠࣗಈԽͱ͔ޙճ͠ʹ ˞ ͦΕͦΕͰͳؾ͢Δ͕… • গͣͭ͠2ʹࢲͷλεΫΛҕৡ͢Δ •
͝ҙݟ൪ͱɺͪΌΜͱωΰΔ • ࢲʮ࣮ػͰͷಈ࡞֬ೝͨ͠ͷͰ ɹɹίʔυϨϏϡʔΛ͓ئ͍͠·͢ʯ
૯ͯ͡ݴ͑Δ͜ͱ • ͢ͷ͕Ұ൪ • ͬͯΈͤɺ͍͖͔ͬͯͤɺͤͯ͞Έͤ • ͳ͋ͳ͋ɺʹ ͳΒͳ͍Α͏ؾΛ͚ͭΔ
Ռ • 2(NEW) ͕த৺ͷ৽ΞϓϦͷPRɺ 49/61(80%) ͕ 1ޙ·ͰʹϚʔδ͞Εͨ • 1݅ɺ Ϛʔδ·Ͱ30͔͔ͬͨϓϧϦΫ͕͋Δ
• Ұ൪ॳΊͷϓϧϦΫ • Gitͷ͍ํɺ։ൃํͷڞ༗͕Ͱ͖͍ͯͳ͔ͬͨͨ Ί • ͜ͷ1݅Ҏ߱ɺૣ͍ϓϧϦΫͷαΠΫϧ͕࣮ݱͰ͖ͨ
Ռ • 2(લճ৽ଔ) ͕த৺ͷΞϓϦͷPRɺ 80/107(74%) ͕ 1ޙ·ͰʹϚʔδ͞Εͨ
Ռ • ৄࡉʹܭଌ͍ͯ͠ͳ͍͕ɺ ϨϏϡʔίϝϯτ͕࣌ؒܦͭʹͭΕͯ૿͍͑ͯͬͨ
ࠓޙͷ՝
ࠓޙͷ՝ • ίʔυϨϏϡʔͷҙࣝߴ·͍ͬͯΔ͕… • Ռͨͯ͠ίʔυྑ͘ͳ͍ͬͯΔͷ͔Ṗ • Կ͔ࢦඪΛઃ͚Δʁ • ͬͱϨϏϡʔͷෛՙΛԼ͛ΒΕΔͷͰ •
ϨϏϡʔ༻ͷνΣοΫγʔτΛ༻ҙ͢Δʁ • ͬͱπʔϧΛ͏ʁ • ॳ৺ Ε͕ͪ
͓͠·͍