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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
「ブロックテーマでは再現できない」は本当か?
inc2734
0
960
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
3.9k
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
230
組織で育むオブザーバビリティ
ryota_hnk
0
170
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
220
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
550
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
今から始めるClaude Code超入門
448jp
8
8.6k
dchart: charts from deck markup
ajstarks
3
990
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
51k
Statistics for Hackers
jakevdp
799
230k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
49k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
75
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
180
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
220
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
110
Amusing Abliteration
ianozsvald
0
99
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
140
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
180
Music & Morning Musume
bryan
47
7.1k
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