SlideShare a Scribd company logo
Welcome
Practical pointers
for better code review
Introduction
● About me: Python dev at Four Digits
– Web stuff
– Python, Django, Wagtail CMS, React
● Slides will be linked from Twitter @keeshink
Code review goals
● Find bugs
● Check if it solves the problem
● Check maintainability
● Share knowledge / onboard people
More goals
● Discuss alternative approaches
● Make less experienced developers learn
● Link to documentation and other sources
● Avoid unwanted new dependencies on external packages
● Check team members’ understanding
● Recognize when (end user) documentation needs update
● Record reasons for code changes
● Recognize when external parties need to be informed
Goal: Check if it solves the problem
● Ask until problem is entirely clear
● Ask until proposed solution is clear
Example: Problem+solution
unclear
● Customer: “When I try
logging in with my
username in CAPITALS, I
get this message in red:
● Developer: OK
Goal: Share knowledge, onboard people
● Ask a “control question”
● Ask questions instead of suggesting changes
● Also comment on what is good in the MR
● As submitter: Put in a TBD, ask for suggestions
● Have agreements / rules for MRs
Goal: Maintainability (1)
● Pretend it’s yours from now on
● Ask until code is clear to you
● Split large MR into small ones
● Review one commit at a time
Goal: Maintainability (2)
● Actively look for similar code elsewhere in the
project
● Consider the name of each class / method /
variable / file
● Follow the code across referenced methods
● Check dependencies’ repo: #devs, last release,
open issues
Example: Code unclear
Goal: Find bugs (1)
● There is no recipe
● Discuss the “interface”
Goal: Find bugs (2: read tests)
● If A B, also test !A !B
→ →
● Run test without fix (should fail)
● Test with edge case inputs
Know the kind of review to do
● Know your project
● Know the timeline
● Know yourself
Thank you
● Thank you for being here
● Thanks to my colleagues for their MRs...
● ...and for reviewing mine!

More Related Content

PDF
The automation of the process of caring for the quality of the code in PHP an...
PDF
jSession#6 - Adam Bieńkowski - JGiven - BDD testing in plain Java
PPTX
Is your code ready for testing?
PDF
Technical screening .Net Developer
PDF
Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir
PDF
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
ODP
Good coding-style, a talk made in 2008 to encourage changes in MySQL coding s...
PPTX
C# 4.0 and .NET 4.0
The automation of the process of caring for the quality of the code in PHP an...
jSession#6 - Adam Bieńkowski - JGiven - BDD testing in plain Java
Is your code ready for testing?
Technical screening .Net Developer
Elixir Brasil 2019 - Quality: A Panacéia para seu código Elixir
Test driven development_and_puppet-cfgmgmtcamp_eu-20140402
Good coding-style, a talk made in 2008 to encourage changes in MySQL coding s...
C# 4.0 and .NET 4.0

What's hot (20)

PDF
Test Driven Development en Go con Ginkgo y Gomega
PDF
Tdd in practice
PPTX
The Psychology of C# Analysis
PDF
Basics of writing clean code
PDF
Android Frameworks: Highlighting the Need for a Solid Development Framework 
PDF
Code Reviews in Python - PyZh
PDF
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
PDF
Last Month in PHP - June through Mid-July 2017
PPTX
SubTests are the Best
PDF
The working architecture of node js applications open tech week javascript ...
PDF
Java User Groups in Austria (2013)
PPTX
Acceptance testing with codeception
PDF
Sphinx options to make training documentation easier to understand
PDF
Features of go
PPTX
Test-Driven Development
PPTX
Exceptions: Why, When, How and Where!
PDF
What is-pmd
PDF
Deliberate Practice, New Learning Styles (2015)
PPTX
How to Review your Translation with 2 Free and Open Source QA Tools
PDF
GDCR15 in Las Palmas, Gran Canaria
Test Driven Development en Go con Ginkgo y Gomega
Tdd in practice
The Psychology of C# Analysis
Basics of writing clean code
Android Frameworks: Highlighting the Need for a Solid Development Framework 
Code Reviews in Python - PyZh
Bitcoin Development 2019 Starter Guide - No Skill | ProvenCrypto
Last Month in PHP - June through Mid-July 2017
SubTests are the Best
The working architecture of node js applications open tech week javascript ...
Java User Groups in Austria (2013)
Acceptance testing with codeception
Sphinx options to make training documentation easier to understand
Features of go
Test-Driven Development
Exceptions: Why, When, How and Where!
What is-pmd
Deliberate Practice, New Learning Styles (2015)
How to Review your Translation with 2 Free and Open Source QA Tools
GDCR15 in Las Palmas, Gran Canaria
Ad

Similar to Practical pointers for better code review (20)

PDF
Code reviews
PDF
Code-Review-Principles-Process-and-Tools (1)
PPTX
Capability Building for Cyber Defense: Software Walk through and Screening
PDF
Code Review Skills for Pythonistas - Nina Zakharenko - EuroPython
PDF
Voxxed days 2015-hakansaglam-codereview
PPTX
Please review and merge
PPTX
Code Reviews
PPT
Code Review
PDF
Code Reviews @ Quatico
PPTX
Effective Code Review
PDF
Code review best practice
PDF
Code Review
PDF
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
PPT
Introduction to Software Review
PDF
Code Review
PDF
Code Reviews Inside Out
PPTX
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
PDF
Code reviews
PPT
Code Review
PDF
How to review a pull request
Code reviews
Code-Review-Principles-Process-and-Tools (1)
Capability Building for Cyber Defense: Software Walk through and Screening
Code Review Skills for Pythonistas - Nina Zakharenko - EuroPython
Voxxed days 2015-hakansaglam-codereview
Please review and merge
Code Reviews
Code Review
Code Reviews @ Quatico
Effective Code Review
Code review best practice
Code Review
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pdf
Introduction to Software Review
Code Review
Code Reviews Inside Out
code_review_checklist_6_actions_to_improve_the_quality_of_your_reviews.pptx
Code reviews
Code Review
How to review a pull request
Ad

More from khink (8)

PDF
Easy User Interaction testing with Webtest.pdf
PDF
The Tale of Oscar and the API
PDF
Mosaic - flexibele layouts voor Plone
ODP
Presentatie gebruikersdag
PDF
Plone multi language
PDF
Der Freitag, A Use Case
PDF
Hardening Plone, a military-strength CMS
ODP
Deliverance for Plone, a use case
Easy User Interaction testing with Webtest.pdf
The Tale of Oscar and the API
Mosaic - flexibele layouts voor Plone
Presentatie gebruikersdag
Plone multi language
Der Freitag, A Use Case
Hardening Plone, a military-strength CMS
Deliverance for Plone, a use case

Recently uploaded (20)

PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
PDF
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Website Design Services for Small Businesses.pdf
PDF
Complete Guide to Website Development in Malaysia for SMEs
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PPTX
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Oracle Fusion HCM Cloud Demo for Beginners
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
CHAPTER 2 - PM Management and IT Context
Advanced SystemCare Ultimate Crack + Portable (2025)
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Tally Prime Crack Download New Version 5.1 [2025] (License Key Free
CapCut Video Editor 6.8.1 Crack for PC Latest Download (Fully Activated) 2025
Why Generative AI is the Future of Content, Code & Creativity?
Navsoft: AI-Powered Business Solutions & Custom Software Development
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Design an Analysis of Algorithms I-SECS-1021-03
Website Design Services for Small Businesses.pdf
Complete Guide to Website Development in Malaysia for SMEs
Weekly report ppt - harsh dattuprasad patel.pptx
AMADEUS TRAVEL AGENT SOFTWARE | AMADEUS TICKETING SYSTEM
Operating system designcfffgfgggggggvggggggggg
Oracle Fusion HCM Cloud Demo for Beginners
Monitoring Stack: Grafana, Loki & Promtail
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025

Practical pointers for better code review

  • 2. Introduction ● About me: Python dev at Four Digits – Web stuff – Python, Django, Wagtail CMS, React ● Slides will be linked from Twitter @keeshink
  • 3. Code review goals ● Find bugs ● Check if it solves the problem ● Check maintainability ● Share knowledge / onboard people
  • 4. More goals ● Discuss alternative approaches ● Make less experienced developers learn ● Link to documentation and other sources ● Avoid unwanted new dependencies on external packages ● Check team members’ understanding ● Recognize when (end user) documentation needs update ● Record reasons for code changes ● Recognize when external parties need to be informed
  • 5. Goal: Check if it solves the problem ● Ask until problem is entirely clear ● Ask until proposed solution is clear
  • 6. Example: Problem+solution unclear ● Customer: “When I try logging in with my username in CAPITALS, I get this message in red: ● Developer: OK
  • 7. Goal: Share knowledge, onboard people ● Ask a “control question” ● Ask questions instead of suggesting changes ● Also comment on what is good in the MR ● As submitter: Put in a TBD, ask for suggestions ● Have agreements / rules for MRs
  • 8. Goal: Maintainability (1) ● Pretend it’s yours from now on ● Ask until code is clear to you ● Split large MR into small ones ● Review one commit at a time
  • 9. Goal: Maintainability (2) ● Actively look for similar code elsewhere in the project ● Consider the name of each class / method / variable / file ● Follow the code across referenced methods ● Check dependencies’ repo: #devs, last release, open issues
  • 11. Goal: Find bugs (1) ● There is no recipe ● Discuss the “interface”
  • 12. Goal: Find bugs (2: read tests) ● If A B, also test !A !B → → ● Run test without fix (should fail) ● Test with edge case inputs
  • 13. Know the kind of review to do ● Know your project ● Know the timeline ● Know yourself
  • 14. Thank you ● Thank you for being here ● Thanks to my colleagues for their MRs... ● ...and for reviewing mine!