DEV Community

Cover image for This is what clean code is [tell-tale signs of clean code]
Clean Code Studio
Clean Code Studio

Posted on • Edited on • Originally published at cleancode.studio

This is what clean code is [tell-tale signs of clean code]


Twitter Follow

Innovation starts with simplification, we can't create if we're always fixing.

What clean code is cover photo of desk with computer, coffee, and plant

Why Simply Designed Clean Code?


Why battle against technical debt?
Why invest into refactoring?
Why fight for Clean Code?


To simplify lives, save money, and improve the world through innovative invention.

Clean Code is DRY, minimalistic, tested, & simple


Features of Clean Code


Clean Code doesn't repeat itself

Clean code doesn't repeat itself list
Clean code doesn't repeat itself, it's DRY (Do not Repeat Yourself). When we duplicated code, we have required the developer whom must make a change to one piece of code to be required to make a change to all duplicated pieces of that same code.

Cognitive load, technical debt, visual debt, & bugs increase.

Progress and passion decrease.


Clean Code is minimalistic

Clean Code is minimalistic list

More code is more stuff that each of those things making up all of that stuff depends on. More than that developers are now required to keep all of that extra stuff in their head and if it's not already in their head they must go through all of the extra fluff to understand what's going on.

Less code is less buggy.
Less code is less onboarding.
Less code is less maintenance.

Code in of itself is liability. You are liable to maintain, update, refactor, understand, teach, and utilize code.

Simply put, less code is less liability.


Clean Code passes all tests

Clean Code tests list

90% of all of your tests passed ~ ouch. This is not clean code. You know you messed up if your not passing all of your tests. You also know you messed up when your test coverage is 0%.

Clean Code is tested thoroughly and passes those tests with flying colors



Clean Code Check List


Clean code minimizes technical debt

Technical Debt Causes List and visual graphic

Common causes of technical debt:

  • Ongoing development long series of project enhancements over time renders old solutions sub-optimal.
  • Insufficient up-front definition, where requirements are still being defined during development, development starts before any design takes place. This is done to save time but often has to be reworked later.
  • Business pressures, where the business considers getting something released sooner before the necessary changes are complete, builds up technical debt comprising those uncompleted changes.
  • Lack of process or understanding, where businesses are blind to the concept of technical debt, and make decisions without considering the implications.
  • Tightly-coupled components, where functions are not modular, the software is not flexible enough to adapt to changes in business needs.
  • Lack of a test suite, which encourages quick and risky band-aid bug fixes.
  • Lack of documentation, where code is created without supporting documentation. The work to create documentation represents debt.
  • Lack of collaboration, where knowledge isn't shared around the organization and business efficiency suffers, or junior developers are not properly mentored.
  • Parallel development on multiple branches accrues technical debt because of the work required to merge the changes into a single source base. The more changes done in isolation, the more debt.
  • Delayed refactoring; As the requirements for a project evolve, it may become clear that parts of the code have become inefficient or difficult to edit and must be refactored in order to support future requirements. The longer refactoring is delayed, and the more code is added, the bigger the debt.
  • Lack of alignment to standards, where industry standard features, frameworks, technologies are ignored. Eventually integration with standards will come, and doing so sooner will cost less (similar to 'delayed refactoring').
  • Lack of knowledge, when the developer doesn't know how to write elegant code.
  • Lack of ownership, when outsourced software efforts result in in-house engineering being required to refactor or rewrite outsourced code.
  • Poor technological leadership, where poorly thought out commands are handed down the chain of command.
  • Last minute specification changes, these have potential to percolate throughout a project but no time or budget to see them through with documentation and checks.

Clean Code simplifies

Clean Code Simplifies List

Clean code is easier to understand, simpler to utilize, cheaper to maintain, and effective towards the goals in which it is created towards.


Clean Code Check List

Clean Code
Clean Code Clean Life ~ Simplify!
Clean Code Studio

Top comments (2)

Collapse
 
johnt_f807e8f581 profile image
JohnT

Solid article, I love the idea of code being a liability to a company. So many times organization’s I’ve worked with don’t prioritize clean code and it hurts the company but they never do anything to change it.

Collapse
 
cleancodestudio profile image
Clean Code Studio