Hexagonal Architecture might be proposed to solve the problems back in the days. But that is completely unnecessary and I would even say overkill for most of the applications.
All the driver side, driven side, port, adapter, etc is just more buzzwords describing decoupling the implementation using programming-to-interfaces technique. Nothing more, nothing less.
I took one of the Hexagonal Architecture implementation of a Spring Boot app
https://t.co/6pFzgCtbVO
Created the same application using simple layered architecture (layered-app module) and yet achieve the goals:
* Separation of the concerns ✅
* Testability ✅
* Less code, more readable & to the point 🎯
* No unnecessary interfaces with only one implementation 🚫
* No InMemory implementations just for satisfying imaginary testing/local_dev requirements. Use Testcontainers to test with what actual DB you use in production. 🚫
* Made the Service layer as transactional boundary as it should be. ☑️
Stop cargo-cult programming.
OpenJDK PR with significant improvements to sorting implementation:
"* introduced Radix in parallel sorting which shows several times performance boost and has linear complexity instead of n*ln(n)
* improved mixed insertion sort
* improved merging sort for almost sorted data..."
No one wants to program in a dynamically typed language. No one says, "I want this string variable to hold a string an integer now". Hold your defense of Python and JS — read on. I'll explain why dynamically typed languages exist, what they're good for, and why they're still here
People doesn’t think too much about the cost of creating instances of java.time.format.DateTimeFormatter, and the worst thing is that is a thread safe class. 🤦🏻♂️
@Sc_Meerkat@simas_ch In an enterprise environment, it’s quite normal to have a parent pom where a set of dependencies, properties or plugins and configured. It’s the same scenario, you need to know it to don’t create a mess.
If you are working in a Spring Boot application, please, when you add a new dependency, think if it’s necessary to set dependency’s version or it’s already managed by Spring Boot.
@Sc_Meerkat@simas_ch It’s not about frameworks, it’s about knowing that you have a dependencies managed by dependency management. You need to know which ones are managed and which not.