Wednesday, October 15, 2008

Technical - Review

Code Review – Best Practices
Abhilash Gopi
Cordiant Technologies

Code Review


• Code review is best applied in a Top-Down
order
• Code to be incrementally documented.
• Code evolution – We will need to be on top of
this.



Code Evolution?


• As the code evolves, it provides us a basis for
learning and avoiding mistakes.



Why do we need Code reviews?

• Software engineering projects are classified in
the Type 2 category of Projects, hence are
very risky and difficult to maintain.
• We always need to find methods to improve
maintainability of the code, since the same
programmer may not be available the next
time.



Why do we need Code reviews?

• Maintenance
• The code should be easily modifiable.
• We should be able to add new features and resolve issues
easily
• Evolution
• In order to add a feature, we need to know where to add
and how to add.
• Learning/ assimilation
• Once code is reviewed and updated, it provides a basis for
others to follow similar terminology and coding approach.
• Hence code uniformity is maintained.



How it aids us?


• A new programmer who is asked to work
upon a new feature or an existing issue in the
current code
• Should have a fair understanding of the code
• How can it be done? Let’s see.



Eagle method


• Always stay on top
• Dive into the detailed code only if required.
• E.g. Do not try to read 100K lines of code from the
beginning to the end.
• Read in increasing level of detail
• Directory level
• Structure level
• Code level
• In short, maintain a bird’s eye view until it is
required to zoom down to the details.



Guidelines -Directory level


• Size and Complexity
• Get a fair idea of the No. of packages, Files, Classes,
Lines of Code
• Documentation
• Refer to the standard set of README, HELP files
• Build process
• Refer to the individual builds, Configurations,
Compilation involved, Linkage
• Unit tests
• Refer to the code and their corresponding Unit tests.



Guidelines – Structural level


• Refer to the Design patterns
• Refer to the Data Structures and their interfaces.
• Refer to the Framework
• Error Handling/ Logging/ Commandline parsing
• Math features
• GUI/ Graphics
• I/ O
• Wrappers/ Interfaces



Guidelines – Code level


• Refer to coding conventions
• Naming conventions
• Formatting rules, layout, indentation
• Commenting rules
• Control structures



Advantage of coding standards


• Coding standards are useful if used
consistently across the project
• Even if it is outdated, continue making use of
them within the same project to cater to the
uniformity and maintainability.



How to do code review?


• If you are hungry and want something, you
need to let alone the bones and skin and get to
the meat



How to do code review?


• Skip
• Preprocessor statements
• Initialization
• Look for
• Text (window titles)
• Outputs/ printouts
• Comments
• Inner loops



Why code review should be immediate?

• It will not allow us to generate SPAGHETTI
code
• Colleagues could get lost in trying to insert a
new feature or resolve an existing issue
• Time “LOST” formatting code is regained
only in the second cycle/ iteration of review.



Code Evolution – Advantage


• When adding new code it is time to apply the
best practices learned during the code review.
• At the end, we generate good code.



Your Skill requirement


• Reading and reviewing a code
• Is a “soft skill” to be learned by experience
• Goes hand-in-hand with writing new code



Code Review


• Ensure that you have some basic code review.
• More important is having the best practices
and deviations put across to your team, to
avoid repeated occurrences.
Thank you

No comments:

Post a Comment

Drop in your comments/ feedback

Calorie Calculator

Calculate how much you expend in 1 hour of your favorite exercise. Health Tips.
Powered By Blogger

Followers

Images - Decision tables

Images - Decision tables
Important image details for the Decision tables

Risk Management

Risk Management
Risk Management