Effective Code Review
-
Upload
jane-prusakova -
Category
Software
-
view
83 -
download
1
Transcript of Effective Code Review
EFFECTIVECODE
REVIEWJANE PRUSAKOVA @2015
@JPRUSAKOVA
JUDGE A CODER BY THE CODE?
•COOPERATION, NOT COMPETITION
•ATTENTION IS RESPECT
•EVERYONE IS A REVIEWER
Author
ReviewerCode
Author
Code
SIZE MATTERS
• Consistent criteria• Maintain focus
• Be agile• Limit scope• Limit time
BUCKET LIST
• VISUAL LAYOUT OF THE CODE
• NAMING
• ARCHITECTURE
• TEST COVERAGE
• Is it readable?• Is it good
maintainable code? • Does it do what it
appears to do?
SKIP
• EXPLANATIONS WHAT THE CODE DOES
• CHECKS THAT ARE DONE BY AUTOMATED TOOLS
• REASONS WHY THIS CODE IS ALLOWED TO BE BAD
• ARGUMENTS ABOUT PREFERENCES*
ALL CODE MUST BE PERFECT?
•YES
•NO
•IT DEPENDS
LOOK FOR
BugsUnintended behavior
Bad Code
Bugs coming soon
Erratic codeHard to
understand
Common Vision
-ilitiesDependenci
esPoor
scalability
Good CodeWorthy of a compliment
BE PREPARED
AUTHOR
• VERIFY TEST COVERAGE
• RUN AUTOMATED CODE QUALITY TOOLS
• FIX PROBLEMS
REVIEWER
• RUN TESTS
• READ THE CODE
• READ THE TESTS
READABILITY
• WHITE SPACE
• SHORT CODE BLOCKS
• MINIMIZE NESTEDNESS
• MINIMIZE COMMENTS
CLEAR LOGIC
• ONE DECISION PER CODE BLOCK
• SHOW MAIN LINE OF REASONING
• DRY
• TEST EVERY SCENARIO EXACTLY ONCE
NAMING
• MAKE SENSE
• FOLLOW THE ACCEPTED TERMINOLOGY
• FOLLOW THE ACCEPTED ABBREVIATIONS
• AS SHORT AS POSSIBLE, BUT NOT ANY SHORTER
• READABLE BY THE ENTIRE TEAM
oviAnioviparousAnimal
Chicken!
CODE QUALITY
ARCHITECTURE
GRASP
S.O.L.I.D.
GoF patterns
D.R.Y.
REST SOA
ARCHITECTURE
•CODE REFLECTS UNDERSTANDING
ARCHITECTURETECHNICAL DETAILS
• OBJECTS MAINTAIN VALID STATE
• CONSISTENT NAMING AND ORDER OF PARAMETERS
• WRAP CONSISTENT GROUPS OF PARAMETERS INTO DATA OBJECTS
• MINIMIZE RELIANCE ON ORDER
• AVOID RETURNING NULL
• …
TESTS
• ALL SCENARIOS COVERED
• NO REPETITIVE TESTS
• PARAMETERIZED TESTS AS APPROPRIATE
• PREFER STUBS TO MOCKS
OUTCOME
• LEARNING
• QUESTIONS
• RECOMMENDATIONS
FOLLOW UP
• REVIEW THE RECOMMENDATIONS
• MAKE CHANGES
• APPLY LEARNING
• PREPARE FOR THE NEXT CODE REVIEW
Write code
Prepare for code review
Code review
Follow up
CODE REVIEW IS LIKE PANTS. IF YOU WORK ALONE, PANTS ARE OPTIONAL. BUT IF YOU ARE PART OF A TEAM, MAKE SURE YOU HAVE PANTS ON.
EFFECTIVECODE
REVIEWJANE PRUSAKOVA @2015
@JPRUSAKOVA