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
LGTMについて
Search
amacou
June 28, 2016
Programming
110k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LGTMについて
社内の新卒研修でコードレビューについての私見を共有しました
amacou
June 28, 2016
More Decks by amacou
See All by amacou
MVPのようなものをチームに提案した話
amacou
3
2.5k
Other Decks in Programming
See All in Programming
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
0
380
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
230
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
320
App Intentsのビルドプロセスを支える技術
kntkymt
0
490
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
140
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
220
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
510
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
5.3k
Security issues being discussed on Web Platforms
petamoriken
0
1.4k
mrbgem 三角測量 開発
ogom
0
170
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
120
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
390
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
290
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Believing is Seeing
oripsolob
1
240
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Building Applications with DynamoDB
mza
96
7.2k
Music & Morning Musume
bryan
48
7.4k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
380
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Transcript
LGTMʹ͍ͭͯ GMO ϖύϘ @amacou
ࣗݾհ • @amacou • ݩSIer:2~3ಇ͍ͨޙɺؒ;Β;Βͯͨ͠ • 20144݄25ʹGMO ϖύϘೖࣾ • ԬͷminneνʔϜʹଐ
• 20156݄ʹ౦ژͷminneνʔϜʹҠಈ • ͖ͳ৯:মௗͱഅ
LGTM
LGTM • Looks good to meʂ(Αͦ͞͏ʂ) • ࠓճɺ͍͍ͭͬͯΔʮLGTMʯͲ͏ ͍͏ͱ͜Ζ͕ʮΑͦ͞͏ʯͱࢥͬͯॻ͍͍ͯ Δ͔Λ·ͱΊ·͢
ࠓ͢͜ͱ • ίʔυϨϏϡʔͷత • ͳʹΛϨϏϡʔ͢Δͷ͔ • TipsΛ͚ͩ͢͜͠
ͪΖΜݸਓͷݟղΛଟʹؚΜ Ͱ͍·͢
ίʔυϨϏϡʔͱ ίʔυϨϏϡʔʢӳ: Code reviewʣɺιϑ τΣΞ։ൃఔͰݟա͝͞ΕͨޡΓΛݕग़ɾ मਖ਼͢Δ͜ͱΛతͱͯ͠ιʔείʔυͷମܥ తͳݕࠪʢࠪಡʣΛߦ͏࡞ۀͷ͜ͱɻ (ग़య)https://ja.wikipedia.org/wiki/ίʔυϨϏϡʔ
ίʔυϨϏϡʔͱ ίʔυϨϏϡʔʢӳ: Code reviewʣɺιϑ τΣΞ։ൃఔͰݟա͝͞ΕͨޡΓΛݕग़ɾ मਖ਼͢Δ͜ͱΛతͱͯ͠ιʔείʔυͷମܥ తͳݕࠪʢࠪಡʣΛߦ͏࡞ۀͷ͜ͱɻ (ग़య)https://ja.wikipedia.org/wiki/ίʔυϨϏϡʔ
ݟա͝͞ΕͨޡΓ ϓϩάϥϚͷεΩϧʹΑΒͣɺॻ͖ԼΖ͞Ε͔ͨΓͷιʔείʔυજࡏతʹό άηΩϡϦςΟϗʔϧʢॻࣜจࣈྻɺڝ߹ঢ়ଶɺϝϞϦϦʔΫɺόοϑΝΦʔ όʔϥϯͳͲʣͳͲͷෆ۩߹͕ೖΓࠐΜͰ͍Δ͜ͱ͕ଟ͍ɻ ιϑτΣΞ࣭ΛߴΊΔͨΊʹ͜ͷΑ͏ͳෆ۩߹Λআڈ͍ͯ͘͠ඞཁ͕͋Δɻ ͜ͷෆ۩߹Λൃݟ͠मਖ਼͢ΔͨΊͷ1ͭͷํ๏͕ɺιʔείʔυͷࠪಡΛߦ͏͜ ͱɺ͢ͳΘͪίʔυϨϏϡʔͰ͋Δɻ ΦϯϥΠϯͷιϑτΣΞϦϙδτϦʢಗ໊ͷCVSͳͲʣΛ͏ͱɺෳͷݸਓ͕ ڞಉͰίʔυϨϏϡʔΛߦ͏͜ͱ͕Ͱ͖Δɻ ίʔυϨϏϡʔΛࣗಈԽ͢ΔιϑτΣΞΛ͏ͱɺιϑτΣΞ։ൃऀͷΘΓ
ʹయܕతͳηΩϡϦςΟϗʔϧΛݟ͚ͭΔ࡞ۀΛߦͬͯ͘ΕΔɻͦͷΑ͏ͳιϑτ ΣΞͷྫͱͯ͠ɺFlawfinder Rough Auditing Tool for Security(RATS) ͳͲ͕ ͋Δɻ (ग़య)https://ja.wikipedia.org/wiki/ίʔυϨϏϡʔ
ͭ·Γ ΈΜͳͰόάηΩϡϦςΟʔϗʔ ϧΛݟ͚ͭΔ࡞ۀ
ͰຊʹͦΕ͚ͩͳͷ͔ʁʁ
ίʔυϨϏϡʔͷత • Λڞ༗͢Δ • ଐਓԽΛഉআ͢Δ • ίʔυͷ࣭Λ্͛Δ
Λڞ༗͢Δ • ϨϏϡʔ͢Δ͜ͱͦͷίʔυʹରͯ͠ Λ࣋ͭ͜ͱ • ͦͷίʔυʹ͕ͳ͍ͱ͍͏͜ͱͷอূ ਓʹͳΔ • ࣗࣄʹ͢Δ •
ೲಘ͢Δ·Ͱ͠߹͏ඞཁ͕͋Δ
ίʔυϨϏϡʔͷత • Λڞ༗ • ଐਓԽΛഉআ͢Δ • ίʔυͷ࣭Λ্͛Δ
ଐਓԽΛͳ͘͢ • ʮࠓʓʓ͞Μ͕ٳΈ͔ͩΒରԠͰ͖ͳ͍ʯ ʹͳΒͳ͍Α͏ʹ͢Δ • ͩΕͰͯ͢ͷίʔυΛϝϯςͰ͖ΔΑ ͏ʹͳΔ
ίʔυϨϏϡʔͷత • Λڞ༗ • ଐਓԽΛഉআ͢Δ • ίʔυͷ࣭Λ্͛Δ
ίʔυͷ࣭Λ্͛Δ • ίʔυΛཧղͰ͖Δ͔ • ޡΓ(όά)ͳ͍͔ • ϛΫϩͳόά • ϚΫϩͳόά •
ίʔυอकͰ͖Δ͔ • ૉΒ͍͠ίʔυͳ͍͔
ίʔυΛཧղͰ͖Δ͔ • ίʔυΛཧղ͢ΔͨΊʹ͕ࣝඞཁ • ݴޠ • ϑϨʔϜϫʔΫ • ϥΠϒϥϦ •
ΞϧΰϦζϜ • αʔϏε(ϏδωεϩδοΫ) • ࣝͷڞ༗ • ͩΕ͕ཧղͰ͖ΔΑ͏ʹͳΒͳ͍ͱଐਓԽ ͕͢͢Ή
ίʔυΛཧղͰ͖Δ͔ • Ͳ͏ͬͯཧղ͢Δ͔ • ͦͷίʔυͲ͏ͯ͠ඞཁͳͷ͔?Λҙࣝ͠ ͯಡΉ • Θ͔Βͳͯ͘٧·ͬͨΒฉ͘
ίʔυΛཧղͰ͖Δ͔ • Θ͔Βͳͯ͘٧·ͬͨΒฉ͘ • ͜ΕཱͳίʔυϨϏϡʔ • ฉ͔Εͨํɺઆ໌͢Δ͜ͱͰཧղ͕ਂ· Δ • ͓ޓ͍ͷػձͱͳΔ
͍͢͝ΤϯδχΞ͞Μ͕ҙຯΘ͔ Μͳ͍ίʔυॻ͍ͨΒόάͷՄೳ ੑ͕ߴ͍(ؾ͕͢Δ)
·͕ͪͬͯɺ ʰʮ͋ͷਓʯͷ͜ͱ͔ͩΒɺ͜ͷ ίʔυʹࢲͷߟ͕͑ٴͳ͍ਸ ߴͳཧ༝͕͋Δʹҧ͍ͳ͍ʱ ͳͲͲࢥͬͯޱΛ͙ͭ·ͳ͍͜ͱɻ ·ͣฉ͜͏ɻ
ίʔυͷ࣭Λ্͛Δ • ίʔυΛཧղͰ͖Δ͔ • ޡΓ(όά)ͳ͍͔ • ϛΫϩͳόά • ϚΫϩͳόά •
ίʔυอकͰ͖Δ͔ • ૉΒ͍͠ίʔυͳ͍͔
ϛΫϩͳόά • ϧʔϓ • ifͷ݅ • typo͕ͳ͍͔ • ʹͳ͍͔
ϛΫϩͳόά • ඞཁͳ͕ࣝগͳ͘ɺؒҧ͍͕͖ͬΓͱࢦ ఠͰ͖ΔͷͰίετ • linter(੩తίʔυղੳπʔϧ)Ͱػցతʹݟͭ ͚Δ͜ͱ͕Ͱ͖Δ͜ͱଟ͍ • ex) rubocop
ػցʹͰ͖Δ͜ͱͳΔ͘ػ ցʹͬͯΒ͍·͠ΐ͏
ίʔυͷ࣭Λ্͛Δ • ίʔυΛཧղͰ͖Δ͔ • ޡΓ(όά)ͳ͍͔ • ϛΫϩͳόά • ϚΫϩͳόά •
ίʔυอकͰ͖Δ͔ • ૉΒ͍͠ίʔυͳ͍͔
ϚΫϩͳόά • αʔϏεͱͯؒ͠ҧ͍ͬͯͳ͍͔ • ࠓ·Ͱͷ༷ͱໃ६ͳ͍͔ • ฏߦͯ͠࡞͍ͬͯΔଞͷػೳͱͷໃ६ͳ͍ ͔ • ಛఆͷ݅ͷ࣌ʹഁ͠ͳ͍͔
ϚΫϩͳόά • ݟ͚ͭΔͷൺֱత͍͠ • αʔϏεͷ͕ࣝඞཁʹͳΔ • ͔͔࣌ؒΔ͠ߴίετ
αʔϏεʹଐ͞Ε͙ͯ͢ݟͭ ͚Δͷ͍͠
Ͳ͏͢Εݟ͚ͭΒΕΔ͔?
ࣝΛ૿͔͢͠ͳ͍
ଐ͞Ε͙ͯ͢ʹ͜ͷϨϕϧͷ ϨϏϡʔٻΊΒΕͳ͍ͷͰɺয Βͣʹண࣮ʹ͍͜͏
ίʔυͷ࣭Λ্͛Δ • ίʔυΛཧղͰ͖Δ͔ • ޡΓ(όά)ͳ͍͔ • ϛΫϩͳόά • ϚΫϩͳόά •
ίʔυอकͰ͖Δ͔ • ૉΒ͍͠ίʔυͳ͍͔
ίʔυอकͰ͖Δ͔ • ίʔυγϯϓϧ͔ • Մಡੑߴ͍͔ • ςετΓ͍ͯΔ͔
ίʔυγϯϓϧ͔ • ૄ݁߹ͳΫϥεʹͳ͍ͬͯΔ͔ • DRYʹͳ͍ͬͯΔ͔ • ܧঝਂ͗͢ͳ͍͔ • Ϋϥεେ͖͗͢ͳ͍͔ •
ૣ͗͢Δ࠷దԽͳ͍͔
ίʔυอकͰ͖Δ͔ • ίʔυγϯϓϧ͔ • Մಡੑߴ͍͔ • ςετΓ͍ͯΔ͔
Մಡੑߴ͍͔ • ୭ͰಡΊॲཧͷ༰͕Θ͔Δίʔυ͕ඞ ཁ • ࣍୭͕ฤू͢Δ͔Θ͔Βͳ͍ • ͦͦ໌ͷࣗଞਓ
໊͚ • Ϋϥε໊/ϝιου໊/ม໊ͳͲΛదͳ໊ લʹ͢Δ͜ͱ • ՄಡੑΛߴΊΔͨΊʹదͳ໊લ͕ඞཁ • ΊͬͪΌ͍͠ • Αٞ͘ʹͳΔ
ద • దͳ໊લ͕͍͍ͯΔͱॲཧͷৄࡉΛ͏ճ ͕ݮΔ • a1, a2ͱ͍͏ϝιου໊ͱ, delete, nameͱ͍͏ ϝιου໊
• ϝιουʹӕ͕ͳ͍͔Ͳ͏͔ΛΑ͘ߟ͑ͳ͍ͱό άͷԹচʹͳΔ • deleteͰupdateΛ͍ͯͨ͠ͱ͔ɺdeleteͰࣦഊ ͯ͠trueΛฦ͍ͯͨ͠ͱ͔
ίʔυอकͰ͖Δ͔ • ίʔυγϯϓϧ͔ • Մಡੑߴ͍͔ • ςετΓ͍ͯΔ͔
ςετΓ͍ͯΔ͔ • ྫ͑ • rubyͷόʔδϣϯΞοϓ • railsͷόʔδϣϯΞοϓ • େ͖ΊͷػೳͷϦϑΝΫλϦϯά •
࣮֬ʹྑ͘ͳΔͣͳͷʹɺςετ͕ͳ͍ͱාͯ͘Ͱ͖ ͳ͘ͳͬͯ͠·͏ • ͍ͭͷؒʹ͔࠷৽ʹ͍͚ͭͳΔ • ηΩϡϦςΟʔϦεΫ • Ͳ͏ͤͳΒॻ͖ͨ͠΄͏͕͍ͷͰ
ίʔυͷ࣭Λ্͛Δ • ίʔυΛཧղͰ͖Δ͔ • ޡΓ(όά)ͳ͍͔ • ϛΫϩͳόά • ϚΫϩͳόά •
ίʔυอकͰ͖Δ͔ • ૉΒ͍͠ίʔυͳ͍͔
ૉΒ͍͠ίʔυͳ͍͔ • ૉΒ͍͠ίʔυΛݟ͚ͭͨΒੵۃతʹڞ༗ ͠Α͏ • ྑ͍ίʔυΈΜͳͰ๙ΊΑ͏ • ͔࣍ΒΈΜͳͰͦΜͳίʔυΛ͔͚ΔΑ ͏ʹͳΖ͏
ʑͷϨϏϡʔͰؾΛ͚ͭΔ͜ͱ
ϨϏϡʔස • Ͱ͖Δ͚ͩૣ͘ϨϏϡʔ͠Α͏ • ΘΕͳ͍ίʔυ͙͢Δ • ίʔυॻ͍ͨޙ͔ΒΕ͍ͯ͘ • ϨϏϡʔ →
मਖ਼ → ࠶ϨϏϡʔͷαΠΫϧ খ͍͞΄͏͕Φʔόʔϔου͕গͳ͍
ٞʹ٬؍ੑ͕Γͳ͍࣌ • ϝιου໊ͳͲͰAͱBͲ͕ͬͪΘ͔Γ͍͢ ͔அͰ͖ͳ͍͕࣌͋Δ • ୈࡾऀ͕Ͳ͏͍͏அΛ͍ͯ͠Δ͔ΛௐΔ ͱೲಘͰ͖Δ͜ͱ͕ଟ͍ • ex)ݴޠͰͲ͏͍͏نଇͰ໊લΛ͚͍ͭͯ Δ͔?/ϑϨʔϜϫʔΫ?/ϥΠϒϥϦ?
ϨϏϡʔΛॻ͘ͱ͖ • ཧ༝Λॻ͘ • ྫΛग़͢ ͱฦ͍͢͠
ʮ͜ͷॲཧԿ͕͍ͨ͠ͷ?ʯ ↑Ͳ͏͑·͔͢?
ʮ͜ͷॲཧʓʓͱ͍͏͜ͱΛΓ͍ͨΑ͏ʹ ݟ͑ΔͷͰ͕͢ɺͦΕͳΒ☓☓☓ͱ͍͏ॻ͖ํ ʹม͑ͨ΄͏͕γϯϓϧʹͳΓͦ͏Ͱ͢ʯ ↑Ͳ͏͑·͔͢?
࠷ޙʹ
େࣄͳ͜ͱ • αʔϏεΛյ͞ͳ͍͜ͱΛνʔϜͰ୲อ͢Δ • ະདྷʹΘͨͬͯ։ൃΛଓ͚ΒΕΔΑ͏ʹ͢Δ • ͕ࣗͨͪ͢Δ
ͬͱΘ͔Γ͍͢ࢿྉͳ͍ͷ? • ࠓճͷࢿྉΛॻ͖ऴ͑ͯʮ͏ʙΜΘ͔Γʹ͘ ͍ͳ͊ͬͯʯͬͯࢥͬͯάάͬͨΒɺಉ྅͕2 લʹॻ͍ͨࢿྉ͕͋ͬͨɻ • ͥΜͥΜιονͷ΄͏͕Θ͔Γ͍͢Α • https://speakerdeck.com/hisaichi5518/ kodorebiyufalsehua
ϨϏϡʔؔͰ͖ͳεϥΠυ • ͦ͘ίʔυͷ http://www.slideshare.net/ rootmoon/7-37892729 • ϨϏϡʔ͓͡͞Μͷ https:// speakerdeck.com/seri/ turakunaikodorebiyufalseyun-yong
ίʔυϨϏϡʔͯ͠Β͏ଆͷ • http://techlife.cookpad.com/entry/ 2015/03/30/174713