Beyond Legacy Code's CLEAN
I've read David Bernstein's Beyond Legacy Code and clearly enjoyed it. :)
One of the concepts he expands on in the book is "Clean Code". He takes this and makes it into an acronym, "CLEAN code". Well... just the "CLEAN" is the acronym.
It's five concepts for producing high quality code.
- Cohesive
- Loosely Couples
- Encapsulate
- Assertive
- Nonredundant
Code quality is maintainability; which requires high testability. The values of CLEAN code are tightly coupled. Raise one; the others get brought up. The opposite is also true. If the code starts to fail in an area the other area's get pulled down. This causes a death spiral for maintainability. The opposite is also true; as you strive to bring each of these into your code base it gets easier to bring it in better, and bring other pieces in better. It won't shoot up as quickly as it will fall down. This stuff isn't easy or all code would be maintainable.
The past five posts have all been around the acronym of CLEAN code and how µObjects have these principles as part of writing code this way.
- µObjects: Being Cohesive
- µObjects: Being Loosely Coupled
- µObjects: Being Encapsulated
- µObjects: Being Assertive
- µObjects: Being Nonredundant
This shows that the principles David laid out that help produce CLEAN, and maintainable, code are all present, supported, and often inescapable with µObjects. Like all best practices that lead to amazing code - µObjects takes discipline, practice, and support from other engineers to produce a code base that reaps the benefits.
As mentioned in my review; I highly recommend getting a copy and reading it for further insights into these principles.