Effective Code Review

20
EFFECTIVE CODE REVIEW JANE PRUSAKOVA @2015 @JPRUSAKOVA

Transcript of Effective Code Review

Page 1: Effective Code Review

EFFECTIVECODE

REVIEWJANE PRUSAKOVA @2015

@JPRUSAKOVA

Page 2: Effective Code Review

JUDGE A CODER BY THE CODE?

•COOPERATION, NOT COMPETITION

•ATTENTION IS RESPECT

•EVERYONE IS A REVIEWER

Author

ReviewerCode

Author

Code

Page 3: Effective Code Review

SIZE MATTERS

• Consistent criteria• Maintain focus

• Be agile• Limit scope• Limit time

Page 4: Effective Code Review

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?

Page 5: Effective Code Review

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*

Page 6: Effective Code Review

ALL CODE MUST BE PERFECT?

•YES

•NO

•IT DEPENDS

Page 7: Effective Code Review

LOOK FOR

BugsUnintended behavior

Bad Code

Bugs coming soon

Erratic codeHard to

understand

Common Vision

-ilitiesDependenci

esPoor

scalability

Good CodeWorthy of a compliment

Page 8: Effective Code Review

BE PREPARED

AUTHOR

• VERIFY TEST COVERAGE

• RUN AUTOMATED CODE QUALITY TOOLS

• FIX PROBLEMS

REVIEWER

• RUN TESTS

• READ THE CODE

• READ THE TESTS

Page 9: Effective Code Review

READABILITY

• WHITE SPACE

• SHORT CODE BLOCKS

• MINIMIZE NESTEDNESS

• MINIMIZE COMMENTS

Page 10: Effective Code Review

CLEAR LOGIC

• ONE DECISION PER CODE BLOCK

• SHOW MAIN LINE OF REASONING

• DRY

• TEST EVERY SCENARIO EXACTLY ONCE

Page 11: Effective Code Review

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!

Page 12: Effective Code Review

CODE QUALITY

Page 13: Effective Code Review

ARCHITECTURE

GRASP

S.O.L.I.D.

GoF patterns

D.R.Y.

REST SOA

Page 14: Effective Code Review

ARCHITECTURE

•CODE REFLECTS UNDERSTANDING

Page 15: Effective Code Review

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

• …

Page 16: Effective Code Review

TESTS

• ALL SCENARIOS COVERED

• NO REPETITIVE TESTS

• PARAMETERIZED TESTS AS APPROPRIATE

• PREFER STUBS TO MOCKS

Page 17: Effective Code Review

OUTCOME

• LEARNING

• QUESTIONS

• RECOMMENDATIONS

Page 18: Effective Code Review

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

Page 19: Effective Code Review

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.

Page 20: Effective Code Review

EFFECTIVECODE

REVIEWJANE PRUSAKOVA @2015

@JPRUSAKOVA