Description
This class starts from the following definition of software: well-designed software is any software that understands and matches the business domain and that is easy to modify, adapt and even rewrite. Subsequently, the purpose of this class is presenting the state-of-the-art of software architecture and discussing a few reference implementations primarily but not exclusively on top of the .NET Framework. u’ll first get an annotated overview of parameters that make software successful today and then tools available for domain-driven analysis (DDD). Next, the class presents the DDD canonical layered architecture and supporting design practices such as Domain Model, CQRS, event-driven architecture or just CRUD. This class doesn’t evangelistically promote any approach or technology but dissects the recent dynamics of software design to bring up what makes each pattern suitable to given business scenarios. Finally, a new methodology is discussed—called UX-first—that pushes a top-down design of software systems and sits somewhere in between classic waterfall and modern agile. In doing so, you’ll face the challenges of today’s and tomorrow’s software: data persistence, responsiveness and scalability. The litmus test of this class is fairly simple and ambitious at the same time. The class worked if, after taking it, you feel like all buzzwords you hear other scream about are all coming into place.