Developing software is a seemingly endless set of questions and choices. Questioning is a powerful but tiresome process. Should I do one thing or another? Evaluation is important; it’s how we come up with new ideas and innovate.
But questioning ourselves all the time is exhausting. I’m not advocating that developers go fully on automatic, but it can be helpful to have some general practices that can quickly be applied without thinking about whether you should do them or not and that bring you closer to achieving a principle. For example, the simple practice of eliminating duplication in code can lead to unifying and defining classes, each with a single responsibility, which gets you closer to achieving the Single ...