Software Architecture

How do you avoid making your project a big ball of mud? How do you balance a wide range of design concerns and constraints? How do you map customer requirements to working software? This course provides you with the means and methods to face these challenges.

Audience:

Developers and architects who design systems or assume the role of the architect in a project.

Prerequisites:

A couple of years of development. Preferably in an object oriented language (Java, C#, C++). The course, however, is language and platform independent.

About the instructor: Tore Nestenius

 Tore has worked as a consultant since 1997 and is a very knowledgeable system developer and has in the past worked for large companies like Ericsson and Flextronics. Early in his career, Tore Nestenius started Programmers Heaven - a portal with over 750 000 monthly users. He’s behind several other successful projects like CodePedia - a Wiki for developers, the Open Source project TNValidate, and the C# School e-book with over 100 000 downloads.

Course outline:

  • The Role of The Architect

    • Why design matters
    • Complexity
    • The architect's place in the team.
    • Why architecture is hard.

    Getting feedback

    • TDD
    • Continuous Integration & deployment
    • Refactoring
    • Software metrics

    Domain Driven Design (DDD)

    • Bounded contexts
    • Ubiquitous language
    • Entity and value objects
    • Invariants
    • Aggregates
    • Event Storming

    Data Access Architecture

    • CAP theorem
    • ORM mapping
    • NoSQL databases
    • Polyglot persistence
  • CQRS & Event sourcing

    • Semantic operations
    • Event sourcing
    • Read vs Write
    • The CQRS pattern
    • Commands and events
    • Write and read sides
    • Integration
    • Testing

    Architecture patterns

    • Sagas and process managers
    • Circuit breakers
    • Resilience patterns

    Services

    • Micro-services
    • REST APIs
    • Hypermedia
    • Creating scalable and reliable APIs
    • Webhooks
    • OpenAPI and Swagger
    • GraphQL

    Security

    • The security challenges
    • Hacking your self
    • Social engineering
    • Securing your architecture

Andre relevante kurs

23. januar
2 dager
Classroom
6. mars
3 dager
Classroom
12. februar
3 dager
Classroom