89 Tips to help you be a better coder and write clean code in 2022

89 Tips to help you be a better coder and write clean code in 2022

Writing clean code is a must for any developer. Here are 89 tips to help you be a better coder and write clean code in 2022 from 'Clean code' by Robert C. Martin.

General rules

  1. Follow standard conventions.
  2. Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  3. Boy scout rule. Leave the campground cleaner than you found it.
  4. Always find the root cause. Always look for the root cause of a problem.

Design rules

  1. Keep configurable data at high levels.
  2. Prefer polymorphism to if/else or switch/case.
  3. Separate multi-threading code.
  4. Prevent over-configurability.
  5. Use dependency injection.
  6. Follow the Law of Demeter. A class should know only its direct dependencies.

Understandability tips

  1. Be consistent. If you do something a certain way, do all similar things in the same way.
  2. Use explanatory variables.
  3. Encapsulate boundary conditions. Boundary conditions are hard to keep track of. Put the processing for them in one place.
  4. Prefer dedicated value objects to a primitive type.
  5. Avoid logical dependency. Don't write methods that work correctly depending on something else in the same class.
  6. Avoid negative conditionals.

Names rules

  1. Choose descriptive and unambiguous names.
  2. Make meaningful distinctions.
  3. Use pronounceable names.
  4. Use searchable names.
  5. Replace magic numbers with named constants.
  6. Avoid encodings. Don't append prefixes or type information.

Functions rules

  1. Small.
  2. Do one thing.
  3. Use descriptive names.
  4. Prefer fewer arguments.
  5. Have no side effects.
  6. Don't use flag arguments. Split the method into several independent methods that can be called from the client without the flag.

Comments rules

  1. Always try to explain yourself in code.
  2. Don't be redundant.
  3. Don't add obvious noise.
  4. Don't use closing brace comments.
  5. Don't comment out the code. Just remove.
  6. Use as an explanation of intent.
  7. Use as clarification of code.
  8. Use as a warning of consequences.

Source code structure

  1. Separate concepts vertically.
  2. Related code should appear vertically dense.
  3. Declare variables close to their usage.
  4. Dependent functions should be closed.
  5. Similar functions should be close.
  6. Place functions in the downward direction.
  7. Keep lines short.
  8. Don't use horizontal alignment.
  9. Use white space to associate related things and disassociate weakly related ones.
  10. Don't break indentation.

Objects and data structures

  1. Hide internal structure.
  2. Prefer data structures.
  3. Avoid hybrids structures (half object and half data).
  4. Should be small.
  5. Do one thing.
  6. A small number of instance variables.
  7. Base classes should know nothing about their derivatives.
  8. Better to have many functions than to pass some code into a function to select a behavior.
  9. Prefer non-static methods to static methods.


  1. One assert per test.
  2. Readable.
  3. Fast.
  4. Independent.
  5. Repeatable.


  1. Make the change easy, then make the easy change.
  2. Don't be afraid to throw code away.
  3. One level of abstraction per function.
  4. Switch statements.
  5. Use descriptive names.
  6. Remove dead code.
  7. Don't use flags.
  8. Eliminate side effects.
  9. Extract functions.

Error handling

  1. Use exceptions.
  2. Use unchecked exceptions.
  3. Don't return error codes.
  4. Don't pass error codes.
  5. Don't ignore errors.
  6. Don't ignore exceptions.
  7. Don't catch generic exception.


  1. Don't share state between threads.
  2. Encapsulate state into objects.
  3. Don't pass mutable data to a thread.
  4. Avoid excessive locking.
  5. Prefer immutable data structures.
  6. Prefer executors, tasks, and streams to threads.
  7. Prefer concurrency utilities to wait and notify.

Code smells

  1. Rigidity. The software is difficult to change. A small change causes a cascade of subsequent changes.
  2. Fragility. The software breaks in many places due to a single change.
  3. Immobility. You cannot reuse parts of the code in other projects because of the involved risks and high effort.
  4. Needless Complexity.
  5. Needless Repetition.
  6. Opacity. The code is hard to understand.


Popular posts from this blog

Top 36 effective ways to collaborate with other technology companies or developers to create innovative and high-value products or services

[PYTHON] Top 29 best practices for writing efficient and effective code in 2023

LinkedIn Apply Bot 🤖