...
This checklist details most of the things we will discuss during the code review.
Sections:
- General
- JSP
- Web (Controllers)
- Service
- Data Access
- Domain
- Unit Tests
- Java - General
- App Config/Layout
1. General
- Have we accounted for concurrent updates?
2. JSP
- Using JQuery for javascript
- Using JqueryUI plugins for widgets
- Third-party Jquery Plugins?
- No old-style javascript embedded in HTML tags (e.g. onClick)
- Have accessibility guidelines been followed?
- Is HTML valid?
3. Web/Controllers
- @MVC annotations (@Controller, @RequestMapping etc)
- @Autowired annotation for injected dependencies
- No instance variables instantiated via “new” - injected only
- No business logic - only UI-related logic
4. Service
- @Service annotation, @Autowired annotation for injected dependencies
- No instance variables instantiated via “new” - injected only
5. Data Access
- DAOs do not extend Spring’s HibernateDAOSupport
- DAOs extend MIT’s AbstractHibernateDAO
- DAOs do not use Spring’s HibernateTemplate - if AbstractHibernateDAO does not provide necessary function, use Hibernate’s Session API
6. Domain
- Don’t set attributes inside a getter
7. Java - General
- Use constants declared as static variables rather than hard-coding values in the Java code.
- Place instance variables at the top of the class; getters and setters at the bottom of the class.
- Use log level of “debug” unless there’s a specific reason to use info or error.
- Methods and classes documented accurately with javadoc.
- Method has unit test.
8. Unit Tests
- What is the code coverage?