Know what you do, then be pragmatic
I absolutely recommend you to go and read the linked article. This posts by the Artsy devs are so great for me since I’ve been following closely the development of their Apps since they are open source. And by closely I mean really closely, believe me.
But I wanted to talk about the last words of that article:
There are many design patterns, and they all come with trade-offs. Over time, our opinions on what is "good code" changes, this is great. It's important that as developers we understand that being able to change our minds is one of the most vital skills we have in our toolchain. This means being open to opinions outside of your usual sphere of influence and to maybe bring some good ideas from them. It's great to be passionate about an aspect of how we craft applications, but from my perspective, the best programmers choose pragmatism over idealism.
I share that opinion with Orta. Pragmatism should be the priority in the majority of occasions for the type of software that we write. But don’t confuse that with coding a quick and dirty solution for the sake of being pragmatic.
Knowing what you do and what could be the best approach to solve a problem is always needed. Once you know how to solve a problem with multiple solutions is when you can analyze the trade-offs and then decide to be pragmatic.
So don’t use pragmatism as an excuse to not do things in the Right Way™.
A big thanks to Orta and Artsy for sharing so much.