Patterns
What
Patterns are just a common solution, to a common problem using a ubiquitous language
ease to describe and discuss them
patterns can be the same, but be different in terms of their aims
Patterns occurs not just object oriented code, but in other areas see Types of patterns
patterns can language specific, ie see effective java by Bloc
In essence, they are used to make code more changeable.
Depending on the language used, or libraries, or tech, these will either implement these patterns (fill in the gaps) or make them redundant
Types of patterns
code
functional
oo
language specific
integration
module
architectural
database
tests
ops - CI, deployments, platform, builds,
workflow
concurrency
enterprise
front end
security
Debugging
team patterns
conventions
department patterns
Issues
people can be over eager, in implementing patterns, when they are not needed
Only use them if they improve some aspect (NFR) which is needed
patterns over usage can increase complexity for no reason
links
https://www.quora.com/A-senior-software-engineer-in-our-team-told-me-that-the-popularity-of-design-patterns-has-led-to-a-kind-of-pattern-abuse-and-over-designing-by-novice-programmers-what-does-he-mean
Links
https://java-design-patterns.com/patterns/
https://dzone.com/articles/design-patterns-in-the-age-of-microservices-and-frameworks
Updated for java 8
https://www.infoq.com/news/2022/10/modern-java-design-patterns/
Last updated