In software engineering there are always trade offs between approaches. There are no silver bullets. Context matters. OOP vs Functional, Monolith vs micro services, DRY vs duplication, Unit tests vs integration tests, and on and on. Don’t blindly adhere to what is claimed to be the best way or the right way to build software