What is a "DOMAIN EXPERT" and why are they important?
A member of a software project whose field is the domain of the application, rather than software development. Not just a user of the software, the DOMAIN EXPERT has deep knowledge of the subject.
Why is using Ubiquitous Language important?
Bridges the gap between developers and domain experts
List 3 UBIQUITOUS LANGUAGE terms in your domain
Team, do you agree?
Who is the authority on DDD?
Eric Evans
Describe a model that your team has created and how it's helpful
Team, was that a valid example?
What is a BOUNDED CONTEXT?
Representation of the solution space, how the software and the development of that software has been organized
List the 3 main concepts of DDD
Ubiquitous Language, Bounded Context, Core Domain
Educator Licensing, Student Attendance, and Chart of Accounts could all be examples of what in USIMS Domains?
Bounded Contexts
How should developers apply UBIQUITOUS LANGUAGE in their work?
Keep the code base in sync using this terminology and name all the classes and tables in the database after the terms in the ubiquitous language
What is the Anti Corruption Layer and give an example how you can use it in your domain.
Anti Corruption Layer is used to maintain the integrity of business data and models when integrating with external systems or legacy applications. It isolates the core system from external influences by translating data and requests between the two.
Define CORE DOMAIN
The distinctive part of the model, central to the user's goals, that differentiates the application and makes it valuable
What is a Value Object in DDD
An object that is used to measure, quantify, or describe something in your domain. It has no concept of identity and it is immutable
DDD is appropriate when: (select correct answer(s))
a) Large amount of Data
b) Performance
c) Business Complexity
d) Technical Complexity
c) Business Complexity
What are some differences between ENTITIES and VALUE OBJECTS?
Value objects don't have ID, can be treated interchangeably, and are immutable
Entities have ID and are mutable
Value objects are owned by at least 1 Entity
List 3 patterns that contribute to Supple Design
Intention-Revealing Interfaces
Side-Effect-Free Functions
Assertions
Closure of Operations
Standalone Classes
Model-Driven Design
Ubiquitous Language
Conceptual Contours
What is a CONTEXT MAP?
a map that renders the bounded contexts in a system and the relationships between them and their models
What is an Entity in DDD?
Something that needs to be able to be tracked, located, retrieved, and stored. It has an identity key. Its properties may change.
Describe EVENT STORMING
A brainstorming session with domain experts and development team to identify EVENTS (written in past tense) to get an understanding of the domain, identify bounded contexts, and uncover problem areas
What is the difference between Domain Events and System Events and give an example
Domain events are pertinent to the domain while System events are related to the infrastructure
Click SAVE in Student Registration is System Event while the new Student being registered is a Domain Event (as and example but any example is fine)
What are
groups of concepts that represent a common construction in business
modeling. It may be relevant to only one domain or it may span many domains
Analysis Patterns
What are Aggregates and Aggregate Roots?
Aggregates consist of one or more entities and value objects that change together as a unit
Aggregate Root is the parent object of all members of the aggregate
How is DDD different from other development approaches? Give 3 examples
Team, do you agree with this answer?
OR Explain how we SHOULD be applying DDD to our domain.
Team, do you agree with the answer
What's the difference between Domain Services and Application Services?
The difference here is that an Application Service resides outside of the domain layer, whereas a Domain Service is inside of it. It means that Application Services are in charge of communicating with the outside world and shouldn't contain any domain logic.
Give an example of an analysis pattern you've applied in your domain
Team, do you agree?