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
22
コードレビューの文化を手探りで作っていった話
#code_kaizen
コード改善 #2 で発表したスライドです。
Yasuhiroki
November 10, 2016
Tweet
Share
More Decks by Yasuhiroki
See All by Yasuhiroki
自分に勉強させるには
yasuhiroki
1
420
Android Studio `Command+Shift+A`
yasuhiroki
0
340
シェルスクリプトをサーバーレスで cron したい
yasuhiroki
1
810
rails new コマンド
yasuhiroki
1
750
自動化を習慣化する
yasuhiroki
2
15k
GitHub Actions Parallel Testing
yasuhiroki
1
1.2k
circleci.vim
yasuhiroki
0
1.6k
ベンチャー企業がCircleCIを選んだ理由と活用方法
yasuhiroki
1
790
Rubyの正規表現を調べてみた
yasuhiroki
0
840
Featured
See All Featured
Embracing the Ebb and Flow
colly
85
4.6k
Designing for Performance
lara
607
69k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Optimising Largest Contentful Paint
csswizardry
36
3.2k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Side Projects
sachag
452
42k
Building Adaptive Systems
keathley
41
2.5k
Speed Design
sergeychernyshev
29
880
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
How to Think Like a Performance Engineer
csswizardry
23
1.5k
The Pragmatic Product Professional
lauravandoore
33
6.5k
Agile that works and the tools we love
rasmusluckow
328
21k
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ޙ·ͰʹϚʔδ͞Εͨ
Ռ • ৄࡉʹܭଌ͍ͯ͠ͳ͍͕ɺ ϨϏϡʔίϝϯτ͕࣌ؒܦͭʹͭΕͯ૿͍͑ͯͬͨ
ࠓޙͷ՝
ࠓޙͷ՝ • ίʔυϨϏϡʔͷҙࣝߴ·͍ͬͯΔ͕… • Ռͨͯ͠ίʔυྑ͘ͳ͍ͬͯΔͷ͔Ṗ • Կ͔ࢦඪΛઃ͚Δʁ • ͬͱϨϏϡʔͷෛՙΛԼ͛ΒΕΔͷͰ •
ϨϏϡʔ༻ͷνΣοΫγʔτΛ༻ҙ͢Δʁ • ͬͱπʔϧΛ͏ʁ • ॳ৺ Ε͕ͪ
͓͠·͍