Skip to content

Introduction

WARNING !!!

© Copyright itExperts s.r.o. Všetky práva vyhradené. Je zakázané tento materiál alebo akékoľvek jeho časti kopírovať, šíriť, upravovať a zverejňovať, spracúvať na ďalšie šírenie a redistribuovať bez výslovného súhlasu autora. Obsah tohto kurzu je duševným vlastníctvom spoločnosti itExperts s.r.o. a je chránený v zmysle Autorského zákona č. 618/2003 Z.z. v znení neskorších predpisov. Obsahom kurzu je textový i obrazový materiál vrátane zdrojového kódu ak je súčasťou kurzu.

© Copyright itExperts s.r.o. All rights reserved. It is forbidden to copy, distribute, modify and publish this material or any of its parts, process it for further distribution and redistribute without the express consent of the author. The content of this course is the intellectual property of itExperts s.r.o. and is protected in accordance with the Copyright Act no. 618/2003 Coll. as amended. The content of the course is text and image material, including source code if it is part of the course.

If we compare building a software system with the construction industry, we expect to have solid and complete architecture before we start coding. But from our everyday experience we learn, the real word of software system is little bit different. Just try to answer few questions. Are the requirements fixed and complete at the begining of a project, or they are changing overtime? Do we use waterfall method of sw development nowadays? Is the business stable, or it is agile? So we all know, we do not get comprehensive and complete inputs in advance. Today's world is challenging and we live in constantly changing environment. So how to create an architecture of system, which is prepared for constant change? Let's do software architecture which can change quickly in an evolutionary style.

According definition the Domain-driven design (DDD) is a major software design approach, focusing on modeling software to match a domain according to input from that domain's experts (Wikipedia). This course introduces the main concept and building block of the DDD approach. The full blown DDD is primarly used for modeling of complex domains, but you can utilize DDD concept for any domain you deal with.

Course structure

Besides this pages, the course contains the source code which is organized in git reposiroty accessible at https://gitlab.com/itexperts2/ddd. In cloned git repository you find:

  • labs - which contains project labs to support your hands-on experience
  • solutions - which contains labs solutions for your reference

Resources