What do we mean by a software architecture? To me the term architecture conveys a notion of the core elements of the system, the pieces that are difficult to change. A foundation on which the rest must be built.
—Martin Fowler1
Once you have an idea of what you’re going to build, then you can start thinking about how you’re going to build it. Of course, you’ve likely already been thinking about this from the very first requirement, but now you ...