How to ensure code quality


Small class/function
Don't use boolean/flag params
Don’t repeat yourself
- don't copy/paste, refactor it
Do only one thing


counter example: !isNotRemeberMe -> isRemeberMe
Don't use magic numbers/strings

- use constant, enum

Follow code standard.
Follow common code patterns
Familiar with common code bug patterns, and beware of them when write code.
Designing the code, adhere to common design principles.
Improve code readability
Comment non-trivial method and class.
Comment not just how the code work, but also why it works that way.
Document every fix and change and the decision behind it.
Rerunable Unit test is essential to find code breakage early.
Automated test and use continuous integration tool such as Cruise Control to automate test whenever new code is committed.
Use static source code analysis tool - such as findBug, PMD and check style to find code bugs.
Self code review
Team code review
Let the originator explain the design, the cause of the change, explain the code, and how it is unit tested, and whether it is thorough tested.
Except the correctness of code logic and function, also check code comment, and readability.
Logging
Every application may have bug, for any production application, having complete logging is important to find root cause of bug and fix it.
Using proven code
Use Regression testing to find code breakage.
Dedicated testers

Labels

adsense (5) Algorithm (69) Algorithm Series (35) Android (7) ANT (6) bat (8) Big Data (7) Blogger (14) Bugs (6) Cache (5) Chrome (19) Code Example (29) Code Quality (7) Coding Skills (5) Database (7) Debug (16) Design (5) Dev Tips (63) Eclipse (32) Git (5) Google (33) Guava (7) How to (9) Http Client (8) IDE (7) Interview (88) J2EE (13) J2SE (49) Java (186) JavaScript (27) JSON (7) Learning code (9) Lesson Learned (6) Linux (26) Lucene-Solr (112) Mac (10) Maven (8) Network (9) Nutch2 (18) Performance (9) PowerShell (11) Problem Solving (11) Programmer Skills (6) regex (5) Scala (6) Security (9) Soft Skills (38) Spring (22) System Design (11) Testing (7) Text Mining (14) Tips (17) Tools (24) Troubleshooting (29) UIMA (9) Web Development (19) Windows (21) xml (5)