Sunday, March 19, 2023

Tight coupling vs Lose Coupling by Abstraction Level

Over the last decades, lose coupling is know as good development practice. Yes decades is right, we have 2023 now. 

But often it helps to know what is not lose coupling and then to replace it.

Abstraction Level Tight coupling Lose coupling
Application Monolith, Modules Micro Services, Lambdas
Packages, Classes
Inheritance Dependency Injection
Code Good classes, Spaghetti Code Separation of Concerns, TDD

Friday, March 17, 2023

Indicators for bad software design

There are many well known bad code indicator which are tested by different metric tools like PMD, FindBugs/SpotBugs, Sonar or ..


 

But there some bad software design indicators that are not covered by tools, at the moment. Remember these indicator works well for every day software development.

  1. Test are not executable at my developer computer
  2. Long test methods or test classes
  3. Tests with conditions (if, ...)
  4. Test with checks against a logger
  5. Inheritance in test or in main code
  6. Comments 
  7. Byte code or class manipulation
  8. ... will be extended

Not every indicator will point to bad code but in over 90% the indicator is right. I will explain the indicator in later posts. 

If you know a good indicator for bad software design. Please comment!