Clean Code: Difference between revisions
No edit summary |
No edit summary |
||
| Line 37: | Line 37: | ||
Using meaningful names makes code self-documenting, improving both readability and maintainability. | Using meaningful names makes code self-documenting, improving both readability and maintainability. | ||
== Clean Code Philosophy == | |||
Writing clean code is a discipline that aligns with various aspects of personal and professional habits. The philosophy behind clean code includes: | |||
* '''Clarity''': The code should be easy to read and understand. Use descriptive names for variables, functions, and classes. | |||
* '''Logic''': Code should be logical and consistent, following the intended design and avoiding unnecessary complexity. | |||
* '''Consistency''': Apply coding standards and practices consistently throughout the project. | |||
* '''Empathy''': The ability to empathize with others and adopt their perspective to make the code more understandable for everyone. | |||
* '''Commitment''': The willingness to produce high-quality code, going the extra mile rather than rushing to release the next feature. This mindset also supports thorough testing. | |||
* '''Openness to Criticism''': Developers may have different opinions on various coding practices (e.g., "opening curly braces on the same line"). However, it's essential to understand that teamwork matters more than individual preferences. The majority's perspective on the code's readability and maintainability takes precedence, fostering a collaborative and cohesive work environment. | |||
[[File:Cc do donot2.jpg|frameless|center]] | |||
Revision as of 10:44, 20 January 2025
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.
Clean Code Philosophy
Writing clean code is a discipline that aligns with various aspects of personal and professional habits. The philosophy behind clean code includes:
- Clarity: The code should be easy to read and understand. Use descriptive names for variables, functions, and classes.
- Logic: Code should be logical and consistent, following the intended design and avoiding unnecessary complexity.
- Consistency: Apply coding standards and practices consistently throughout the project.
- Empathy: The ability to empathize with others and adopt their perspective to make the code more understandable for everyone.
- Commitment: The willingness to produce high-quality code, going the extra mile rather than rushing to release the next feature. This mindset also supports thorough testing.
- Openness to Criticism: Developers may have different opinions on various coding practices (e.g., "opening curly braces on the same line"). However, it's essential to understand that teamwork matters more than individual preferences. The majority's perspective on the code's readability and maintainability takes precedence, fostering a collaborative and cohesive work environment.