What I care the most when coding is code design and coding style, perhaps for code design it's more appropriate to say API design but I prefer "code design" because
API sounds like it's limited to making API's and in fact that's what you'll find out if you google for API design.
Code design on another side is more about general meaning where API design is a subcategory of code design.
Sadly the term seems like non-existent, if you google for "code design" you won't find anything meaningful, however I've heard from some coders using the term.
Code in some xyz project may be well designed or badly designed, a well designed code is one which is:
1. Well structured
- ex. split into translation units, functions and classes serving a specific purpose
2. Not duplicated or bloated
- ex. you don't find same or similar program logic in 2 or more places
3. Minimum dependent
- ex. as few external dependencies as possible and only if it will be useful for a good portion of a project.
4. No reinvention of the wheel
- ex. No chunks of code that implement something that is already well established and natively available
5. Easy to understand what the code does
- ex. Can code be rewritten so that's it's easier to understand what it does? in a lot of cases it can without affecting performance or program logic.
Code style on another side is more about things such as:
1. naming conventions
- ex. do you name some string variable as "str" or "WindowTitle" is a big difference
2. commenting your code
- Do you document your code with code comments?
3. Writing in line with well established style guidelines
- ex. do you care about compiler or linter warnings? or do you suppress them?
Code style is dependent a lot on language being used but some principles are universal.
With all this being said, it's easy to conclude why I hate the most
I hate working with code which feels like it can be refactored every now and then, or one that is difficult to grasp.
I'm pedantic kind of coder and I pay a lot of attention on these things, sadly there is a downside to my style, which is that it takes
additional time which could otherwise be spent on writing code, but that's something I've used to live with.