Open raychenv opened 1 year ago
https://en.wikipedia.org/wiki/Software_architecture the set of structures needed to reason about a software and displine of creating such structures and systems. software elements, relations among them, and properties of both elements and relations metaphor to arch of building making fundamental structural choices that are costly to change once implemented
basis for analysis of software systems' behavior before the system has been built a basis for re-use of elements and decisions supports early design decisions that impact a system's dev, deployment, and maintenance life facilitates communication with stakeholders, contributing to a system that better fulfills their needs helps in risk management enables cost reduction
arch works with PM, discussing requirement with stakeholders, designs software arch, evaluates a design, communicates with designers and stakeholders, documents the arch design core activities:
description description language arch viewpoints arch frameworks styles and patterns
https://get.oreilly.com/rs/107-FMS-070/images/Software-Architecture-Patterns.pdf
layered arch
presentation layer, business layer, persistence layer, database layer open vs closed layers of isolation sinkhole anti-pattern https://en.wikipedia.org/wiki/Conway%27s_law
event-driven arch
Mediator topo validate broker determine which one can be done serially and in parallel event queues an event mediator event channels event processors
events: initial events and processing events
microkernel
microservices
space-based