Clean Code: A Handbook of Agile Software Craftsmanship is a book that every developer should read.
I try to summarize a few ideas from the book:
The first step to writing good code is that names have meaning. The variables, methods and classes should have a good name to know why they exist and what they do. Tim Ottinger’s Rules for Variable and Class Naming.
The functions have to be small, should do one thing and should do well, maintaining a single level of abstraction. Also, we must try to reduce the number of arguments.
Don’t comment bad code, rewrite it.
The formatting of the code has one purpose: readability. The newspapper methapor: when reading code, the first functions that we find have to be the main and if we want we can go into details below.
Objects And Data Structures
Objects hide their data and expose functions to operate with them, in the other hand we expose data structures directly.
Try to separate the logic of our application from the exception handler and don’t pass or return null values from functions.
The tests are a very important part building an applications. Ideally, do TDD and create test code as good as the code of the rest of the application.
Classes must be small with a high cohesion.
To create a good emergent design we should run all tests, eliminate duplication, express the intention in the code and minimize the number of classes and methods. These are Kent Beck’s Four Rules of Simple Design:
I did a talk at the Agile Madrid User Group about this book.