Core Design: Avoid coupling at the Core
Software Design it's a huge sub-set of Software Architecture. Software design is really about the domain and the designer. Good design takes time to make and it's not a one-size-fits-all solution. In order to have a good design, you need someone who first of all cares about design and study design a lot. In order to improve as a Designer you need to: * Write code * Read code (a lot) * Think about responsibilities * Think about bringing things together * Think about braking things apart * Do and participate in Design Sessions * Time and Experience There are several schools out there like Services, OOP, FP, and many others. IMHO there are some CORE ideas that we can use besides your language, school of thought, and experience. Knowing what not to do is as much important as knowing what to do. For this blog post, I want to talk more about CORE Design.