Anti-patterns

Anti-patterns cause software to be:

Sadly and unfortunately, anti-patterns are prevalent in the software industry. The cost to the software industry is vast.

There are great hordes of programmers using anti-patterns, dealing with high complexity, untestability, and poor performance, and don't see any way to eliminate the complexity. To these programmers it appears like "essential complexity", but in fact it arises because of the underlying anti-patterns they are unknowingly using.

It's amazing how often very clever people work on intricate and clever solutions to non-problems. There are whole industries built on top of anti-patterns.

This is hardly surprising given so many supposed "experts" actively promoting anti-patterns.

Some anti-patterns are well known to experienced software developers. For example the problems with mixing business logic and GUI code (the Smart UI anti-pattern), or the Entity-Attribute-Value (EAV) anti-pattern in relational schemas. However some are less well known.

The following are some examples of anti-patterns. It should however be kept in mind that it's hardly ever possible or reasonable to make general rules independently of the context. With that in mind the following should be regarded as potential issues.

How can messaging avoid anti-patterns?

See messaging done right.

Using a CEDA database with a cluster of compute nodes

See approaches for higher performance distributed workloads in CEDA