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
Code Reviews
Search
Janos Gyerik
October 14, 2015
Programming
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Code Reviews
Just Do It!
Janos Gyerik
October 14, 2015
More Decks by Janos Gyerik
See All by Janos Gyerik
Capture The Flag at SonarSource 2019
janosgyerik
1
47
Keyboard shortcuts
janosgyerik
0
150
Analyze your changeset in a branch before git push using SonarLint + Git hooks; Round #2
janosgyerik
0
660
Analyze your changeset in a branch before git push using SonarLint + Git hooks
janosgyerik
0
380
Unwatch GitHub repos
janosgyerik
0
330
Playing with Yahoo! Pipes
janosgyerik
0
290
Cool features of GitHub
janosgyerik
0
1.4k
Time-saving tricks on the command line
janosgyerik
1
4.4k
Other Decks in Programming
See All in Programming
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
16k
The Rails Doctrine Decade
koic
2
550
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
960
Workers Cache を知る
syumai
0
350
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
460
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
150
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.7k
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
200
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
400
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
550
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
A better future with KSS
kneath
240
18k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
Mind Mapping
helmedeiros
1
400
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
HDC tutorial
michielstock
2
950
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Transcript
code.reviews Janos Gyerik correct clean efficient tested efficient efficient clean
clean tested tested correct correct correct tested correc orrect correc tested efficient clean
2 what is it?
3 commit commit commit review commit commit review commit accept
commit commit commit NOT code reviewed code reviewed
4 why do it?
5 UCXGVKOG catch early catch early catch early bugs bad
patterns ugliness
6
7 peer review peer pressure
8 anything that gets reviewed gets better
9 quality time savings cost savings FACT
10 correct readable efficient tested buggy messy crappy untested NOT
code reviewed code reviewed
11 information sharing NO MORE bottleneck developers
12
13 why/when NOT do it?
14 big bang development too hard to control should be
the exception, not the norm! code reviews are not practical when…
15 without supporting tools tools help doing code reviews efficiently
don’t waste your time, get them and use them! code reviews are not practical…
16 what’s required? disciplined commits
17 incremental changes small and stable logical steps at all
levels
18 one feature one purpose one branch feature
19 short-lived max 3 days feature
20 (example good branch)
21 (example bad branch)
22 one commit one logical change
23 one good commit == stable build; related changes; no
garbage; small; good comment
24
25 (example good commit)
26 example bad commit with many changes)
27 (example bad commit with garbage)
28 how to do it?
29 git fetch origin master git checkout -b feature-x origin/ma
# work work work git commit git commit git push origin feature-x # create merge request
30 Create Merge Request create; don’t assign! self-review: any WTFs?
ready? assign!
31 peer review peer pressure
32 what to review?
33 readable is it clear? easy to read? easy to
understand? FACT Code is read far more often than written!
34 correct is the logic sane? does it work? bug
suspects? -> ask!
35 efficient any performance concerns? -> ask!
36 tested unit tests included? unit test opportunities?
37 good practices Code Complete Effective Java Sonar/Findbugs/… codereview.stackexchange.com
38 how bad can it be?
39 how in-depth? •not too much •not too little •just
right •DO IT FAST
40 attitude?
41 a code review is… NOT about the developer it
is about the code
42 don’t just say something is “wrong” suggest a better
way
43 the focus is.. NOT on problems it is on
solutions
44 perfect code? don’t seek perfect seek good enough better
is good enough don’t be a pain in the ass be flexible be constructive
45
46 mistakes… it’s OK to make mistakes it’s NOT OK
to not learn from them
47