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
Zen Code Reviews
Search
Xavier F. Gouchet
PRO
September 04, 2017
Video
Programming
20
0
Share
Zen Code Reviews
Xavier F. Gouchet
PRO
September 04, 2017
Video
More Decks by Xavier F. Gouchet
See All by Xavier F. Gouchet
Writing a Kotlin Compiler Plugin
xgouchet
PRO
0
66
Being an ethical software engineer
xgouchet
PRO
0
330
Libérez votre créativité
xgouchet
PRO
0
150
Unleash your Programming Creativity
xgouchet
PRO
0
220
Demystifying the Test Pyramid
xgouchet
PRO
1
690
Successfully Publishing a Tested, Upgradeable and Documented Open Source Library
xgouchet
PRO
0
130
Property Based Testing in Practice
xgouchet
PRO
0
110
Develop your CI tools
xgouchet
PRO
2
480
How to write a safe and reliable Open Source Library
xgouchet
PRO
1
330
Other Decks in Programming
See All in Programming
🦞OpenClaw works with AWS
licux
1
160
Coding as Prompting Since 2025
ragingwind
0
840
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
6
3.4k
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
14k
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.3k
運転動画を検索可能にする〜Cosmos-Embed1とDatabricks Vector Searchで〜/cosmos-embed1-databricks-vector-search
studio_graph
0
350
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
3
790
ルールルルルルRubyの中身の予備知識 ── RubyKaigiの前に予習しなイカ?
ydah
1
190
GoogleCloudとterraform完全に理解した
terisuke
1
120
HTML-Aware ERB: The Path to Reactive Rendering @ RubyKaigi 2026, Hakodate, Japan
marcoroth
0
160
セグメントとターゲットを意識するプロポーザルの書き方 〜採択の鍵は、誰に刺すかを見極めるマーケティング戦略にある〜
m3m0r7
PRO
0
560
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
2.6k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
150
Heart Work Chapter 1 - Part 1
lfama
PRO
6
35k
Are puppies a ranking factor?
jonoalderson
1
3.3k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
69
39k
Making Projects Easy
brettharned
120
6.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
99
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
530
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Transcript
ZEN CODE REVIEWS THE WAY TOWARDS PAINLESS CODE REVIEWS Droidcon
Berlin 2017 1
ABOUT… XAVIER F. GOUCHET ANDROID ARCHITECT AT ‘MR TOOLS’ /
CI ADMIN / UT ADVOCATE ON ALL SOCIAL NETWORKS @XGOUCHET 2.1
WHO USES CODE REVIEW HERE ? ♫ Put your hands
in the air ♪ — Placebo 3
CODE REVIEWS @ DEEZER 18 Android developers 3 main repositories
Varied experiences and skills 4
WHY ? THE PURPOSES OF CODE REVIEWS 5
FIND DEFECTS EARLY Logic fallacies Typos, spelling Edge cases Potential
technical debt 6
HARMONIZE THE CODE BASE Code style Naming conventions Architecture Libraries
7
GENERATE DISCUSSION AROUND… Choices Algorithm Data Structure Architecture Libraries Features
Best practices 8
TEAM BUILDING Cohesion Trust Lower “Linkedin factor” Asynchronous Pair Programming
9
SHARE KNOWLEDGE Onboard junior / new developers Everyone has something
to teach Everyone has something to learn 10
DOWNSIDES OF CODE REVIEW More time spent per ticket /
less time spent delivering feature Senior developer frustration 11
WHAT ? THE DIFFERENT TYPES OF CODE REVIEWS 12
“AUTOMATIC” CODE REVIEW Static Analysis Android Lints Findbugs, Checkstyle, PMD
Detekt, ktlint Tests (Unit, Integrated, Functionnal) 13
PRE-COMMIT Pro Quality ensured before merge All code must be
reviewed Cons Productivity impact Back & forth Hell ™ 14
POST-COMMIT Pro Continuous development Limit git conflicts Cons Bug can
ship to production Resolution can become non trivial afterwards 15
OPTIONAL CODE REVIEWS by commit author by commit length by
files modified random checks … ? 16
PAIR REVIEW WITH ANOTHER DEVELOPER Provide a single feedack Compare
different viewpoints Tone down negative feedbacks 17
CODE REVIEW MEETING WITH THE AUTHOR 3 to 7 attendees
Only for non trivial reviews Mentor the author Get in depth view Discuss alternatives Immediate feedback 18
HOW ? THE DOS AND DONTS OF CODE REVIEW 19
WRITING REVIEWABLE CODE Keep the commits short git add --patch
/ git add -p Comment the code Use a proper commit message CR Brief for non trivial commits Link to the ticket 20
BEFORE SUBMITTING, REVIEW YOUR OWN CODE Find easy to spot
issues Typos Commented code Duplicates / possible refactoring Copy / Paste errors Take a step back on your code 21
COMMENTING ON ISSUES “If you can't understand that, then yes,
you're crazy. Or just terminally stupid.” — Linus 22
BE PRECISE : WHAT IS THE PROBLEM ? “THIS CODE
IS BAD !” ✗ “THIS LINE COULD CAUSE A MEMORY LEAK…” ✔ 23
ARGUMENT : WHY IS IT A PROBLEM ? “OBVIOUSLY!” ✗
“… BECAUSE THE ACTIVITY REFERENCE IS RETAINED…” ✔ 24
BE HELPFUL : HOW TO FIX THE PROBLEM ? “DEAL
WITH IT!” ✗ “… YOU COULD INSTEAD USE A WEAKREFERENCE.” ✔ 25
DEFINE CRITICITY : HOW IMPORTANT IS THE ISSUE ? “…”
✗ “IT’S NOT CRITICAL, BUT MUST BE FIXED IN A LATER COMMIT BEFORE THE RELEASE CANDIDATE NEXT WEEK.” ✔ 26
EXAMPLES “The name of this variable is ambiguous. You could
rename it as …” “I don’t think this method should be in this class because it’s outside of the class’s responsibility.” “This rule has many edge cases, you should add more unit tests.” 27
VOTING DOWN Avoid blocking commits unnecessarily Always make the reasons
clear Make a full review If an issue has already been raised, don't comment just to say “+1” 28
RECEIVING CRITIQUE Take a step back Stay humble Motivate your
choices Accept the critique (even if it means more work for you) 29
OVERALL BEHAVIOR Stay open minded Make it about the code,
not the people Don't start the flame war Share your knowledge Give as much as you receive 30
GOING FURTHER ? CODEREVIEW.STACKEXCHANGE.COM 31
THANKS FOR YOUR ATTENTION ANY QUESTION ? 32