There are two main tests of whether a codebase is written well.
1. Developer productivity. How easy is it to write new features? How much time does it take?
2. Code cleanliness. How simple are new feature definitions? How easily did new features fit into the existing framework vs. requiring a convoluted definition to accommodate an unanticipated edge case feature implementation?