effective code review

Post on 04-Aug-2015

83 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related