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
Practical Code Review with Gerrit
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
Architectural Extensions
denyspoltorak
0
280
Oxlint JS plugins
kazupon
1
870
Oxlintはいいぞ
yug1224
5
1.3k
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
130
「ブロックテーマでは再現できない」は本当か?
inc2734
0
940
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.2k
ThorVG Viewer In VS Code
nors
0
770
ぼくの開発環境2026
yuzneri
0
190
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.3k
2026年 エンジニアリング自己学習法
yumechi
0
130
Featured
See All Featured
Between Models and Reality
mayunak
1
180
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
73
30 Presentation Tips
portentint
PRO
1
210
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
65
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
54
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
HDC tutorial
michielstock
1
370
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
53
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