0% found this document useful (0 votes)
13 views5 pages

Batch1 06 Clean Code

The document outlines the principles of Clean Code, emphasizing the importance of writing code that is easy to understand, maintain, and change. Key principles include meaningful naming, single responsibility for functions, avoiding duplication, and proper error handling. It advocates for continuous improvement and respect for teammates in software development.

Uploaded by

Aman Ullah
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views5 pages

Batch1 06 Clean Code

The document outlines the principles of Clean Code, emphasizing the importance of writing code that is easy to understand, maintain, and change. Key principles include meaningful naming, single responsibility for functions, avoiding duplication, and proper error handling. It advocates for continuous improvement and respect for teammates in software development.

Uploaded by

Aman Ullah
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

batch1_06_clean_code Author: Amanullah

Documentation by Amanullah

Clean Code: Principles of


Professional Craftsmanship

Introduction to Clean Code


"Code is read much more often than it is written." Clean Code is not just a stylistic choice; it is
a fundamental practice of professional software engineering. It's about writing code that is
easy to understand, easy to change, and easy for other developers to maintain. This
document summarizes the core principles of the Clean Code philosophy.

1. Meaningful Names
The first rule of clean code is choosing good names for variables, functions, and classes. A
name should reveal intent. Avoid cryptic abbreviations like d for days; use daysSinceCreation .
If a name requires a comment to explain it, then the name is not doing its job.

2. Functions: Do One Thing


Functions should be small—hardly ever more than 20 lines. Most importantly, a function
should have one responsibility (Single Responsibility). If a function is doing more than one
thing, it should be split into smaller, more focused functions.

Technical Documentation Page 1 of 5


batch1_06_clean_code Author: Amanullah

3. Don't Repeat Yourself (DRY)


Duplication is the root of all evil in software. When you have the same logic in multiple places,
you have to fix bugs and make changes in multiple places. DRY code is easier to maintain and
less prone to errors. We'll explore patterns for abstracting common logic.

4. Comments: A Necessary Evil?


"Comments don't make up for bad code." In Clean Code, a comment is often seen as a failure
to express the intent clearly in the code itself. We'll discuss when comments are truly useful
(e.g., explaining why something was done) and when they should be deleted (e.g.,
commented-out code or "stating the obvious").

5. Formatting for Readability


Clean code should look like well-written prose. Consistent indentation, vertical spacing
between groups of related code, and logical ordering of functions all contribute to a codebase
that "flows." We'll look at why using an automated formatter (like Prettier) is a professional
standard.

6. Error Handling: Use Exceptions, Not Return


Codes
Mixing error handling with business logic makes code noisy. We'll discuss why using
try/catch and custom exceptions is cleaner than returning null or error codes, and how to
handle errors at the right level of abstraction.

Technical Documentation Page 2 of 5


batch1_06_clean_code Author: Amanullah

7. Objects vs. Data Structures


There is a fundamental difference between an Object (which hides data and exposes
behavior) and a Data Structure (which exposes data and has no behavior). Understanding
when to use each is key to building modular, decoupled systems.

8. The Law of Demeter


The Law of Demeter states that a module should not know about the innards of the objects it
manipulates. "Talk to friends, not strangers." We'll look at how "Train Wrecks" (like
[Link]().getC().doSomething() ) break encapsulation and make code brittle.

9. Unit Tests: The Clean Test Principle


Clean tests are just as important as clean production code. Tests should be readable, fast,
independent, and repeatable. We'll discuss the "F.I.R.S.T." principles of unit testing and why
"one assert per test" is a goal worth striving for.

10. Simple Design: The Four Rules


Developed by Kent Beck, the four rules of simple design are:

1. Passes the tests.


2. Reveals intent.
3. No duplication.
4. Minimal elements (classes/methods). We'll explore how these rules help you avoid "over-
engineering."

Technical Documentation Page 3 of 5


batch1_06_clean_code Author: Amanullah

11. Smells and Heuristics


"Code Smells" are subtle indicators that something might be wrong with your design. We'll
look at common smells like "Long Argument List," "Large Class," and "Feature Envy" (when a
class seems more interested in another class's data than its own).

12. Refactoring: The Art of Improvement


Code is never perfect the first time. Refactoring is the process of improving the structure of
existing code without changing its behavior. We'll discuss the "Red-Green-Refactor" cycle and
why you should never be afraid to clean up code as you go.

13. Avoiding Mental Mapping


Code should be explicit. A reader shouldn't have to keep a "map" in their head of what a , b ,
and c mean. We'll discuss why being verbose and explicit is usually better than being clever
and concise.

14. Boundaries: Cleanly Integrating Third-Party


Code
When we use external libraries, we should wrap them to protect our core business logic from
their changes. We'll look at how "Adapter" and "Wrapper" patterns create a clean boundary
between our code and the outside world.

Technical Documentation Page 4 of 5


batch1_06_clean_code Author: Amanullah

15. The "Boy Scout Rule" in Action


"Always leave the code better than you found it." If every developer makes a tiny improvement
every time they touch a file, the codebase will naturally improve over time rather than rotting.

16. Conclusion
Clean Code is a mindset of continuous improvement and respect for your teammates. It's
about being a "Craftsman" rather than just a "Coder." By following these principles, you
ensure that your work remains a source of pride and a valuable asset for years to come.

Technical Documentation Page 5 of 5

You might also like