Implementing Modern Architecture

To be a successful architect, one needs to know the pros and cons of different architectures and under what conditions they are applied in a project. In addition, a good knowledge of the development process and project support in production is also very valuable.

Varighet: 3 dager fra kl 08:45 - 16:00

Pris: 21500

Kurskategori: Applikasjons utvikling

In this course, participants will learn about the pitfalls of misapplying an architecture style and applying it to the wrong problem. We’ll also cover topics like Microservices, CQRS, Hexagonal Architecture, Event Sourcing, System stability, Development quality, and more.

Target audience: Architects, Team Leads, Senior Developers

Day 1. 

•   Architecture and Architects
             o   What is “architecture”?
             o   What is good architecture?
             o   Who is a good architect?
             o   Architectural drivers
•   Domain-Driven Design
             o   Why use DDD?
             o   How to discover a Bounded Context?
•   System Architecture
             o   Monolith
             o   Microservices
             o   Modular Monolith
             o   How to make a choice?
             o   A path from Monolith to Microservices
•   Documenting your Architecture
             o   Sharing main decisions
             o   Visualizing architecture
 

Day 2. 

  • Communication
    • Synchronous and Asynchronous communication
    • Commands vs Events
    • Big and Small Events
    • Message Naming
    • Event Choreography and Orchestration
    • Message Concurrency 
    • Message Processing Order
    • Dealing with Errors
    • Idempotent Consumers
    • Two-phase Commit for sending Messages?
  • Coding your Architecture
    • Project structure
    • Applying Hexagonal Architecture principles
    • Package structure
    • Code quality automation

Day 3. 

  • Tactical Domain-Driven Design
    • Designing Aggregates and Value Objects
    • Ensuring Invariants in Domain Model
  • Command Query Responsibility Segregation
  • Event Sourcing: advantages and challenges
  • REST API
    • General principles
    • Task-based REST API
    • Dealing with Errors: Problem Details
  • Stability of your System
    • Common failures and stability antipatterns
    • Stability patterns
  • Securing your System
  • Monitoring your System
    • Aspects of monitoring
    • Metrics to expose

Format: 20% workshop / 80% lecture

Prerequisites

  • Good experience in mainstream languages such as C#, Java, etc

PS: BRING YOU OWN COMPUTER

 

Fenomenalt kurs. Obligatorisk for alle systemarkitekter.

Veldig kompetente kursledere, mange gode «real life» eksempler på hvordan man drar nytte av arkitektursprinsippene som var presentert.

An extremely helpful and informative course, especially in conjunction with appropriately prepared material. About complex things with mere words. Less practice than expected, but the real examples covered all production use cases in my projects. All main architectural topics were covered and gave you a full picture of the architectural work.

The course had a good pace and covered almost only interesting themes

Veldig bra kurs, vil absolutt anbefale det for andre

Kursholderne var flinke til å relatere det teoretiske innholdet til praktiske eksempler og tilpasse dette til vårt forventningsnivå.

En veldig god og lærerik opplevelse, kan trygt anbefales videre. Ekstremt proffesjonelt levert!

Kursinstruktør

Vadzim Prudnikau is a senior Java Developer, Team Lead, and Architect with 17 years experience (4 years in Norwegian market) who believes that technical skills, self-education, being a good team player, and knowledge sharing are the keys to success.

Completed 10+ projects which work in production, led 5 development teams, mentored 20+ developers, interviewed over 100 developers for 10+ positions, created a Java department. An Expert in Java and has also experience with Kotlin, Scala, Groovy, JavaScript programming languages.

Marek Dominiak is a software developer and architect with 15 years of experience (10 years in Norwegian market) mainly in Java World. Has experience in mentoring developers and with leading teams. His main focus is on creating sustainable solutions, learning about software craftsmanship, domain-driven design, and code quality.

During his career, Marek has completed many smaller and bigger projects that work in production, interviewed developers, handled communication with customers, helped to design architecture for whole systems and delivered them, and introduced many technologies proven in production. Occasionally Marek is a speaker at conferences related to software development (JDD conference, Warszawskie Dni Informatyki).

Ønsker du å samle flere ansatte til et bedriftsinternt kurs?

Finner du ikke det helt optimale kurset eller kombinasjonen av kurs? Da ordner vi det - sammen. Vi kan tilrettelegge kurs slik at de inneholder akkurat det dere har behov for. Vi kan sette opp et helt nytt kurs, eller tilpasse eksisterende kurs og materiell. Flere medarbeidere kan selvfølgelig også samles til et eget felles kurs, for maksimal effektivitet. Ta kontakt med meg for et forslag til gjennomføring og et tilbud basert på deres behov.

Henrik Buzzi