There is no "one true way" to build software. Best practices are context-dependent. I value pragmatic solutions that solve the actual problem at hand over theoretically perfect architectures that add unnecessary complexity.