Practical
Code Reviews
Ilko Kacharov
Experience
Lead Dev @Proxiad / @Mailjet
12+ years in PHP
Zend Framework 2 Certified Architect
Engineer in communications
4+ years in Code reviews
Home
Shiny
Frontend
Messy
Backend
My Project is my Home
~8 hours a day
Clean and tidy
Secure and private
My Project is my Home
When you start a project you define the rules of the house.
Everyone who joins the project
should follow the rules!
My Project is my Home
Don't end up here
The housekeeper
Artwork by
Back in the days
2015+
Maintainability and Simplicity
Code management
2010
Code quality / style / standards, best practices
2005
Browser wars and internet revolution - Web 2.0
Why
do we need the process
- Reading code gets you in the mood for coding
- Keeps you up to date with the codebase
- Reduces back and forth with QA team
- Provides early feedback on the code
- Coding becomes social activity
- Starts discussions and generates ideas
What
- Code duplication
- Functionality duplication
- Introducing or reducing technical debt
- Bugs and inconsistencies
- Dependencies to libraries and repos
- Security and sensitive data protection
- Performance bottlenecks
- Maintainability
to look for in the code
Artwork by
When
You know the code
- Suggest architecture improvements
- Add code snippets (grabs attention, legitimacy, facts)
to comment the code
You don't know the code
- Ask for details or explanation (you might learn something)
- Too obvious things to ignore
Gut feelings & raised eyebrows
- Check your sources first (links & references to source code)
-
Uncontroversial approach
How
to be formally polite
Proposals
"We can use a tool instead of doing it manual."
"We better do filtering before we insert in the database."
"You can check if this code is available already."
Artwork by
How
to be formally polite
Questions
"We've changed this recently. Have you seen it?"
"Have you checked the code in the other module?"
"Is this code gonna be able to do the math if we pass 0?"
How
to be formally polite
Appeals
"Please verify that input, so we include all edge cases."
"Please use Оctocat memes when doing web presentations."
"Please add exclamation marks when code must be changed!"
Artwork by
How
to be formally polite
Positivity
"Good catch!"
"Clever approach!"
"Never knew code can do that!"
Artwork by
How
to be formally polite
Opinions are last
"I think this code already exists."
"I think we can do backflips instead."
The one who gives only opinion takes no responsibility.
To improve is to change
To perfect is to change often
Winston Churchill
«
»
Artwork by
Iterations and passes
- Daily code review routine
- Code review checklist for consistency
- Monitor and track security patterns
- Review individual commits on meaningful changes
- Early feedback on general issues
~ 40 lines
~ 200 lines
> 500 lines
First feedback at 30%
- Early feedback on the approach
- Focus on architecture decisions
- Skip minor details, code style
Second feedback at 90%
- Final touches
- Code style and trivial things
- Configurations and environment
Tools
-
Diff
-
History
-
Blame
-
Ignore whitespace
-
Ticket references #
-
Pre-commit hooks
-
Pull Requests
-
Labels (ask me later)
-
Code comments
-
Inline resolving of conflicts
-
Automatic code quality tools
-
Slack / Email notifications
to improve the process
Artwork by
Tools
to improve the process
Slack Notifications in #git-repo-name
Thank you!
@kachar136
https://slides.com/kachar/practical-code-reviews-bws/
Questions?
@kachar136
Thanks to GitHub.com for all the Octocats
Practical Code Reviews [BWS]
By Ilko Kacharov
Practical Code Reviews [BWS]
- 1,736