Sela

Pragmatic Software Architecture

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.
Intended audience
Developers and lead developers willing to grow professionally by learning design principles and architecture patterns to apply in everyday work. The class also addresses well common needs of project managers and IT managers who coordinate the various phases of the software development process and gives them solid skills to better understand what’s going on these days in software and communicate with super-skilled developers and architects. Finally, the class may also result fruitful to solution architects needing a crisp refresher or looking for a new perspective that rejuvenate their design spirit.

Topics

Why prioritizing software maintainability is crucial
Readability, testability, and extensibility
Mechanics of software projects
Domain-driven design analysis of the business (processing requirements)
Ubiquitous language
Bounded contexts
Mapping contexts
Aggregates and value objects
Domain services and persistence
Domain events
Virtually infinite scalability and extensibility
CRUD just done better (TX Script pattern)
Event-driven command stack
Options and tools for the read stack
(Business) Benefits of a lower level data source: general maintainability, extensibility, BI extensions
Options for the event store
Data snapshots and history
Options for performance tuning
Tooling
Role of UX experts
Approved and verified screens before coding seriously
New frontier of project management
Challenges of modern persistence: costs, consistency, tools, expertise
Pros/Cons of NoSQL
Caching
Layers and tiers
How big sites handle scalability challenges
Body-rental software

רוצה לדבר עם יועץ?

האם אתה בטוח שאתה רוצה לסגור את הטופס ולאבד את כל השינויים?