Is this good code?
-
Does your implementation follow established design principles?
-
Run the code analyzer on your project. You will find that in
CppCodeAnalyzer Repository.
-
Refactor oversize and overcomplex methods.
-
Ask yourself if all the methods are small, simple, easy to understand, and easy to test.
-
Do any of the methods require knowledge of their design to use correctly? If so, try
to make them private, accessed by public methods that do not disclose design details.
-
Are you happy with the structure?
- You have some reusable packages.
- The solution structure is as simple as you think it can be.
- Each package has a single responsibility.
-
Have you factored out utilities?
-
Have you made small utilities header only?
-
Have you built most of the packages as static libraries?
Now repeat this block until you are satisfied or you run out of patience.
Your goal is to write excellent code, not perfect code. Perfect code never
gets released, because you approach perfection asymptotically.