Clean Code
KISS
Keep It Sweet & Simple - Simplicity is paramount. Methods should be concise, with one expression per line, and names MUST be meaningful. ⚠ DO NOT USE X, DO NOT USE VALUE, DO NOT USE LIST, etc. so not too simple ⚠ Classes should be focused and manageable in size to facilitate ease of change. The balance between readability and conciseness is essential.
DRY
Don't Repeat Yourself - Redundancy is a significant obstacle to clean code and system performance. Identifying and eliminating repetitive patterns is crucial for efficient and maintainable code.
YAGNI
You Ain't Gonna Need It - Solutions should be pragmatic and focused on current requirements. Extraneous features should be avoided unless they are necessary. It is important to remain open to potential future changes and to share any concerns with the team.
DTSTTCPW
Do The Simplest Thing That Could Possibly Work - This principle suggests starting with the most straightforward solution that solves the problem. It is particularly useful for complex problems, helping to clarify understanding and prevent over-engineering.
STUPID
Simple, Testable, Ubiquitous, Proper, Incremental, Decoupled - This acronym serves as a reminder of what to avoid in code. Striving for the opposite of these qualities ensures code is maintainable and efficient.

Levels of Clean Code
From the broader design of a system to the individual lines of code, each level benefits from adherence to clean code principles.
- Project Structure Level A well-structured project enables developers to quickly locate files, classes, and methods, improving overall productivity and reducing errors.
- File Name Level File names should clearly indicate their contents. Descriptive file names make it easier to understand the purpose of the file without needing to open it.
- Class Level At the class level, clean code emphasizes single responsibility and clear separation of concerns. Classes should do one thing and do it well. This helps in keeping the codebase maintainable, flexible, and easy to extend.
- Method Level Methods should be small, focused, and descriptive. They should do one thing and do it well, aligning with the Single Responsibility Principle. Long, complex methods should be refactored into smaller, more manageable ones.
- Type Level At the type level, the focus is on creating well-defined, consistent, and easy-to-understand data types.
Using meaningful names makes code self-documenting, improving both readability and maintainability.