$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Practical Code Review with Gerrit
Search
gmacdougall
February 27, 2014
Programming
0
86
Practical Code Review with Gerrit
Presented at ConFoo 2014
gmacdougall
February 27, 2014
Tweet
Share
More Decks by gmacdougall
See All by gmacdougall
Introduction to Spree (A Ruby on Rails E-Commerce App)
gmacdougall
0
210
Other Decks in Programming
See All in Programming
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
0
320
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
120
20 years of Symfony, what's next?
fabpot
2
360
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
140
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
3
810
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
350
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
430
S3 VectorsとStrands Agentsを利用したAgentic RAGシステムの構築
tosuri13
6
320
sbt 2
xuwei_k
0
300
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
120
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
250
Cap'n Webについて
yusukebe
0
130
Featured
See All Featured
Facilitating Awesome Meetings
lara
57
6.7k
How STYLIGHT went responsive
nonsquared
100
6k
Building Applications with DynamoDB
mza
96
6.8k
Unsuck your backbone
ammeep
671
58k
Making Projects Easy
brettharned
120
6.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Navigating Team Friction
lara
191
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Site-Speed That Sticks
csswizardry
13
1k
Typedesign – Prime Four
hannesfritz
42
2.9k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Transcript
Practical Code Review with Gerrit by Gregor MacDougall Twitter: @GrMacDougall
Website: http://www.freerunningtech.com/
About Me Gregor MacDougall Sr. Software Developer @ FreeRunning Technologies
For Our Clients High Quality is IMPORTANT
Why I Love Code Review! • Code Review Stops Bugs
• Keeps Your Code Readable • Fosters Learning • Keeps Your Team Honest
Process of Code Review? • Does your team do code
review? • How do you do it? / How will you do it? • How often?
Gerrit • Developed by folks at Google • Provides an
automated web interface for code review • Used by popular projects ◦ Android, Chromium, Cyanogen, Eclipse, LibreOffice, MediaWiki, and many more
None
Based on Git • Gerrit is a remote git server
• Your code lives in Gerrit • Permissions Management System
Pushing a Change (Basic Way)
Fork & Pull Request
Fork & Pull vs. Gerrit • Gerrit based on commit
• Fork & Pull based on a branch • Gerrit updates by amending existing change • Fork & Pull updates by adding new commit • Gerrit is a tool designed explicitly for code review
Pushing a Change (Gerrit Way)
Magic Branch
Gerrit User Interface
Gerrit Review Window
Review Mode +2 Looks good to me, approved +1 Looks
good to me, but someone else must approve 0 No score -1 I would prefer that you didn't submit this -2 Do not submit
What To Look For in Code Review • obviously broken
code • performance and environment issues • console.log, print’s, debugging statements • more effective code • team conventions • style issues • adding additional responsibilities • localization and internationalization • missing/poor tests
What is wrong with this SQL? SELECT COUNT(*) FROM comments
WHERE email = ?;
What To Look For in Code Review • obviously broken
code • potential environmental issues • console.log, print’s, debugging statements • more effective code • team conventions • style issues • adding additional responsibilities • localization and internationalization • missing/poor tests
What To Look For in Code Review • obviously broken
code • potential environmental issues • console.log, print’s, debugging statements • more effective code • team conventions • style issues • adding additional responsibilities • localization and internationalization • missing/poor tests
Complexity
None
Amending a Commit
None
None
None
Interactive Rebase $ touch 2; git add 2; git commit
-m "Commit #2" $ touch 3; git add 3; git commit -m "Commit #3" $ touch 1; git add 1; git commit -m "Commit #1" $ touch 4; git add 4; git commit -m "Commit #4"
Interactive Rebase git rebase -i HEAD~4
Re-ording & Modifying Commits
Completing my Rebase
Adding Continuous Integration Jenkins • Install Dependencies • Bootstrap Database
• Run Complete Test Suite • Publish Build Results
Automatically Verifying Builds Code Review • Approved by humans •
Meets the teams standards Verified • Build successful • Meets automated code quality checks
Gerrit Trigger w/ Jenkins
Verify +1/-1 Automated Trigger Builds
Why this system works? Everything Gets Reviewed Everyone Reviews You
learn from feedback you get from others You learn from code you see others write
How to be most effective • Commit Often • Push
Often • Review Often
Words of Warning • This is a tool for developers
• Configuration is a little challenging • Will bring team dysfunction to the surface
For More Information Gerrit https://code.google.com/p/gerrit/ http://jenkins-ci.org/ FreeRunning Technologies http://www.freerunningtech.com/
About Me Twitter: @GrMacDougall Github: https://github.com/gmacdougall E-mail:
[email protected]
Slides: http://www.freerunningtech.com/confoo