Code review guidelines
原文:http://www.codeproject.com/Articles/524235/Codeplusreviewplusguidelines
Checklist for Developers
Checklist for Developers
Description |
Confirmed? |
My code compiles | |
My code has been developer-tested and includes unit tests | |
My code includes javadoc where appropriate | |
My code is tidy (indentation, line length, no commented-out code, no spelling mistakes, etc) | |
I have considered proper use of exceptions | |
I have made appropriate use of logging | |
I have eliminated unused imports | |
I have eliminated Eclipse warnings | |
I have considered possible NPEs | |
The code follows the Coding Standards | |
Are there any leftover stubs or test routines in the code? | |
Are there any hardcoded, development only things still in the code? | |
Was performance considered? | |
Was security considered? | |
Does the code release resources? (HTTP connections, DB connection, files, etc) | |
Corner cases well documented or any workaround for a known limitation of the frameworks | |
Can any code be replaced by calls to external reusable components or library functions? | |
Thread safety and possible deadlocks |
Checklist for Reviewers
Description |
Confirmed? |
Comments are comprehensible and add something to the maintainability of the code | |
Comments are neither too numerous nor verbose | |
Types have been generalized where possible | |
Parameterized types have been used appropriately | |
Exceptions have been used appropriately | |
Repetitive code has been factored out | |
Frameworks have been used appropriately – methods have all been defined appropriately | |
Command classes have been designed to undertake one task only | |
JSPs do not contain business logic | |
Unit tests are present and correct | |
Common errors have been checked for | |
Potential threading issues have been eliminated where possible | |
Any security concerns have been addressed | |
Performance was considered | |
The functionality fits the current design/architecture | |
The code is unit testable | |
The code does not use unjustifiable static methods/blocks | |
The code complies to coding standards | |
Logging used appropriately (proper logging level and details) | |
NPEs and AIOBs |