Domain Driven Design Complete Software Architecture

Learn Domain Driven Design (DDD) by example with detailed coding sessions, video explanations and realistic assignments.

Last updated 2022-01-10 | 3.6

- Learn about domain-driven design
- Learn about the domain-driven design building blocks
- patterns and best practices to architect solutions and implement the code itself
- Learn how to design and code out a system using domain-driven design through detailed video tutorials

What you'll learn

Learn about domain-driven design
Learn about the domain-driven design building blocks
patterns and best practices to architect solutions and implement the code itself
Learn how to design and code out a system using domain-driven design through detailed video tutorials
Design your own domain-driven component
and then code it out

* Requirements

* Basic coding knowledge will help follow the code examples

Description

In this course, you will learn in detail the technical skills and techniques required to design and develop a system using domain-driven design (DDD) including:

  • DDD building blocks

  • Design modeling skills

  • Design assignment - with model answers that are explained via video tutorial and feedback on your assignment from others if you'd like.

  • Design patterns

  • Component architecture

  • Coding assignment - with model answers that are explained in detail via video tutorial and downloadable code in C#, Java and Python so that you can follow explanations!


The course is structured around both video tutorials explaining different techniques and architecture patterns, and (optional) assignments to help make sure you're understanding what we're learning.

I'm also available to answer any queries you may have regarding any course material which you didn't understand or would like further detail on. 

_______

Just in case you're still not convinced if you should take this course, here are a couple of positive reviews from the hundreds I have received on my bestselling, top-rated Udemy courses: 

"The course is comprehensive and well explained through clear and concise examples, and shows that the instructor is highly experienced in their field. Overall this course is excellent and highly appropriate for software developers looking to improve their architectural and programming skills, both beginners as well as more advanced programmers. I will be looking forward to more courses by the author in the future." - J. Fusselberg

"High quality videos, lectures are clear and to the point. This course is highly recommended for any developer who wants to move on to a senior position or software architect role. However, it will also be a good start for beginners to introduce them to proper coding practices early on." -  Roberto de Souza

I look forward to seeing you in my course and hearing how the course has helped you progress in your career!

Who this course is for:

  • Software developers who are working on complex systems.
  • Software developers who are designing new systems, or refactoring existing systems.
  • Software architects who want to improve their skills in designing domain-driven components and solutions.
  • Anyone who wants to learn about domain-driven design and gain in-depth technical knowledge on how to design, structure and code systems following this approach.

Course content

5 sections • 16 lectures

Introduction to DDD Preview 02:04

When to use DDD - Advantages and Disadvantages Preview 02:02

The Building Blocks Preview 07:28

Design Patterns Preview 04:16

Component Architecture Preview 02:47

Step 1: Design Modelling Preview 01:12

Design Modelling Assignment

In this assignment, we will be presented a real-world scenario that requires us to design and model a solution. Of course, since this course is all about domain-driven design, that's what we'll be using! Feel free to use any of the techniques we learned about in previous lectures!

Design Modelling - Model Answer Explanation Preview 10:37

Step 2: Coding Preview 01:37

Coding a system using DDD

In this assignment, we will be coding the solution that we designed in the previous assignment. Of course, since this course is all about domain-driven design, that's what we'll be using! Feel free to use any of the techniques we learned about in previous lectures!

Coding - Model Answer Explanation - Part 1 Preview 15:02

I've attached the model solution as a resource to this assignment, please download it and take a look - we'll be going through it in detail in this lecture and also the next ones!

Note: Attached are solutions in C#, Python, and Java, you can download an IDE such as the free Visual Studio Code to view these better than in a text editor.

Although the explanations will be directly on the C# project, the structure of the Python and Java projects is very similar so you'll be able to follow along if you prefer using these languages.

Coding - Model Answer Explanation - Part 2 Preview 11:49

Coding - Model Answer Explanation - Part 3 Preview 20:03

Bounded Contexts and Anti-Corruption Layers Preview 05:00