---
description: >-
  Clean Code - A Handbook of Agile Software Craftsmanship by Robert C. Martin
  (Uncle Bob)
---

# Introduction

Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

Writing clean code is what you must do in order to call yourself a professional. There is no reasonable excuse for doing anything less than your best.

The code is clean if it can be understood easily by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility, and maintainability.

## About the Clean code book

You are reading this book for two reasons. First, you are a programmer. Second, you want to be a better programmer. Good. We need better programmers.

_**Clean Code**_ is divided into three parts:

* The first describes the principles, patterns, and practices of writing clean code.&#x20;
* The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient.&#x20;
* The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.

Readers will come away from this book understanding:

* How to tell the difference between good and bad code.
* How to write good code and how to transform bad code into good code.
* How to create good names, good functions, good objects, and good classes.
* How to format code for maximum readability.
* How to implement complete error handling without obscuring code logic.
* How to unit test and practice test-driven development.

## About the gitbook

This is my **summary** of the [**Clean Code**](https://learning.oreilly.com/library/view/clean-code-a/9780136083238/) book - A Handbook of Agile Software Craftsmanship by **Robert C. Martin** (Uncle Bob).

In the book, Robert C. Martin introduces the **disciplines, techniques, tools, and practices of** **true software craftsmanship**.

In this Gitbook, I **summarize the key principles and strategies** in the book "Clean Code" and give some examples to make the principles more clear.

Also, I summarize some guidelines from the "[Building Maintainable Software](https://learning.oreilly.com/library/view/building-maintainable-software/9781491955987/)" book by **Joost Visser** that helps to write cleaner and more maintainable code.

{% hint style="info" %}
The Clean Code book is mostly written from a Java perspective.
{% endhint %}

## About me

* Linked in: [https://www.linkedin.com/in/gpcoder/](https://www.linkedin.com/in/gpcoder/)
* GitHub: [https://github.com/gpcodervn](https://github.com/gpcodervn)
* Blog: [http://gpcoder.com/](http://gpcoder.com/)

## References

* [Clean Code: A Handbook of Agile Software Craftsmanship](https://learning.oreilly.com/library/view/clean-code-a/9780136083238/)
* [Building Maintainable Software](https://learning.oreilly.com/library/view/building-maintainable-software/9781491955987/)

