Good design: These few characteristics are sign of good design and code:
1. Extensibility without extreme modification.
2. Good code is easy in reading and maintaining, and well documented.
3. Expose clear interfaces to ignore bad coding and raise reusability.
4. They are easy to test.
5. They are easy to debug.
6. There should not be any duplication (no redundancy).
7. They can get re-used.