Mjukvaruarkitektur

Under kursen går vi igenom beprövade lösningar för hållbara system: testdriven utveckling, domändriven design, services, event-sourcing och en mängd andra mönster.

Målet är att ge dig en djup förståelse, så att du sedan kan komma tillbaka till ditt eget projekt och applicera dessa lösningar.

Arkitektur är ofta vad som skiljer ett lyckat projekt från kaos. Moderna system lägger höga krav på arkitekten och utvecklarna.

 

De ska vara:

  • persistenta, och inte tappa information

  • tillgängliga och klara belastningstoppar

  • lätta att integrera med andra system

  • distribuerade (ibland)

  • säkra

  • testbara

  • lätta att bygga ut och förvalta

Alla känner till problemen, men de traditionella lösningarna som lärs ut brukar leda till stora system med stora problem. Den här kursen lär dig alternativa mönster, saknade pusselbitar, och att det finns fler sätt att lösa problemen. 


Vi får ofta höra att denna kurs erbjuder saker som andra kurser inte har. Det beror på att vi har utformat den utifrån många års erfarenhet i storskaliga projekt i industrin.

Vad du kommer lära dig

The Role of The Architect

  • Why design matters

  • Complexity

  • The architect's place in the team.

  • Why architecture is hard

  • Visualizing architecture
     

Build and deployment

  • Continuous Integration and Deployment

  • Feature flags

  • Securing our build and dependencies


Domain Driven Design (DDD)

  • Bounded contexts

  • Ubiquitous language

  • Entity and value objects

  • Invariants

  • Aggregates

  • Context mapping


Event Storming

  • Introduction to running Event Storming sessions to explore, discover and model a domain.


Database architecture

  • CAP theorem

  • ORM mapping

  • NoSQL databases


Event sourcing

  • Using events as the source of truth

  • Possibilities with Event Sourcing

  • Implementing Event Sourcing


Reads vs Writes

  • Separating reads from writes

  • Normalized vs denormalized data

  • Implementing the read and write side

CQRS

  • Command-Query Separation (CQS)

  • Command Query Responsibility Segregation (CQRS)

  • CQRS , vs Event Sourcing vs DDD
     

Behavior Driven Development

  • Introduction to BDD

  • Writing tests closer to the domain

  • Writing BDD tests with command and events


Event Modeling

  • Introduction on how to model our design using the event modeling technique.


Architectural concepts

  • Transactions

  • Outbox pattern

  • Exact once delivery

  • Idempotency

  • Guaranteed ordering

  • Consistency

  • Data truth


Resilient systems

  • Retries

  • Circuit breakers

  • Resilience patterns

  • Chaos Engineering


Monolith and Micro Services

  • Why do we fail with the monolith?

  • How can we improve it?

  • Composition

  • Micro frontends

  • Micro-services

  • Slicing our architecture

  • Event Aggregator pattern

Målgrupp

Utvecklare och arkitekter som ska designa system eller ikläda sig arkitektrollen i sitt projekt.

Förkunskaper

Ett par års utveckling. Gärna i något objektorienterat språk (som Java, C#, C++). Kursen är dock språk- och plattformsoberoende.

tore-kvadrat-BW-V2.jpg

Lärare är Tore Nestenius

17 200 kr 

ONLINE

Kurslängd: 2 dagar, alternativt 4 halvdagar             

Nivå: Grund

Språk: Svenska, Engelska                   

Kurskod: T100

Nästa kurstillfälle

29 nov - 2 dec

måndag 8.30 - 12.00
tisdag 8.30 - 12.00
onsdag 8.30 - 12.00
torsdag 8.30 - 12.00

Kursen körs ONLINE
 

REFERENSER

My expectation was to get new tools to use and that was fulfilled! Tore is very knowledgeable and was easy to listen to. I liked him. My favourite parts was about the role of the architect, build and deployment and CQRS & Event sourcing.

KURSDELTAGARE

Even if you know what software architecture is, it is worth to participate in this course. It gives you a clearer picture about software architecture and even if you have experience in this area you will be more experienced, and you can just be better with repetition.

KURSDELTAGARE

Thorough coverage of different but symbiotic concepts and methods. Also, plenty of references to additional course material. Participating online was a smooth experience, Zoom worked well.

KURSDELTAGARE

Thorough coverage of different but symbiotic concepts and methods. Also, plenty of references to additional course material. Participating online was a smooth experience, Zoom worked well.

KURSDELTAGARE