Engineer for the future of Cloud
June 10-13, 2019
San Jose, CA

In search of domain-driven design

4:50pm5:35pm Wednesday, June 12, 2019
Average rating: ****.
(4.00, 1 rating)

Who is this presentation for?

  • Lead software engineers and software architects

Level

Intermediate

Prerequisite knowledge

  • Basic domain-driven design (DDD) ideas
  • Strategic and tactical design

What you'll learn

  • Inspire and train a team to use DDD
  • Learn DDD best practices for architects who want to review source code
  • Cope with difficulties that teams can face when using DDD
  • Learn the most common anti-patterns that teams try to use and how to make sure they're removed early in development

Description

As one of the key drivers of this process, an architect must be able to answer to any questions coming from developers, business analysts, and even Scrum Masters. Architects must be ready and well prepared for any type of questions. Anuar Nurmakanov shares his team’s journey of using DDD from the beginning of a project and the many problems they faced.

Anuar answers common questions and concerns, from an architecture perspective, about using DDD, including: What kind of benefits does it give me? Why is it better than everything I used before? Even teams committed to using DDD face a lot of unusual concepts in source code: What is DDD tactical design and how do you apply it? What is aggregate, entity, and the value object in the end; what are some real examples? Where should your business logic leave? Why can’t you use service layer, and why should you follow the rich domain model idea? What about dependency injection and DDD? Finally, he explains some anti-patterns to be afraid of, such as DDD anti-patterns and how to deal with them, DDD best practices, and how DDD and Agile work together.

Speaker

Anuar NurmakanovAnuar Nurmakanov (EPAM) is a software craftsman practitioner with more than nine years of experience in mobile, web, enterprise development, architecture, Scrum, and XP approaches and who likes public speaking and knowledge sharing.