Software architecture is more than blindly following design principles or using design patterns. They come with trade-offs that you should keep in mind before deciding on the right architecture for your project. Use them as tools to achieve simpler code that's easier to maintain as opposed to goals that you aim to achieve regardless of the context.