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
21
コードレビューの文化を手探りで作っていった話
#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
310
シェルスクリプトをサーバーレスで cron したい
yasuhiroki
1
760
rails new コマンド
yasuhiroki
1
700
自動化を習慣化する
yasuhiroki
2
14k
GitHub Actions Parallel Testing
yasuhiroki
1
1.2k
circleci.vim
yasuhiroki
0
1.5k
ベンチャー企業がCircleCIを選んだ理由と活用方法
yasuhiroki
1
760
Rubyの正規表現を調べてみた
yasuhiroki
0
780
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
Building an army of robots
kneath
302
43k
Why Our Code Smells
bkeepers
PRO
334
57k
For a Future-Friendly Web
brad_frost
175
9.4k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
4 Signs Your Business is Dying
shpigford
180
21k
A better future with KSS
kneath
238
17k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Adopting Sorbet at Scale
ufuk
73
9.1k
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ޙ·ͰʹϚʔδ͞Εͨ
Ռ • ৄࡉʹܭଌ͍ͯ͠ͳ͍͕ɺ ϨϏϡʔίϝϯτ͕࣌ؒܦͭʹͭΕͯ૿͍͑ͯͬͨ
ࠓޙͷ՝
ࠓޙͷ՝ • ίʔυϨϏϡʔͷҙࣝߴ·͍ͬͯΔ͕… • Ռͨͯ͠ίʔυྑ͘ͳ͍ͬͯΔͷ͔Ṗ • Կ͔ࢦඪΛઃ͚Δʁ • ͬͱϨϏϡʔͷෛՙΛԼ͛ΒΕΔͷͰ •
ϨϏϡʔ༻ͷνΣοΫγʔτΛ༻ҙ͢Δʁ • ͬͱπʔϧΛ͏ʁ • ॳ৺ Ε͕ͪ
͓͠·͍