2017-12-15 December learning session
Date
Attendees
Goals
- Watch learning material Domain-Driven Design in Practice
(https://www.pluralsight.com/courses/domain-driven-design-in-practice) - Extending the Bounded Context with Aggregates, Introducing the Second Bounded Context - Discuss watched materials and compare to how things are handled in OpenLMIS - are there any ideas/approaches/workflows we can adopt in OpenLMIS?
Discussion
- Aggregates:
- Requisition - root entity
- line item - entity
- Line items should not be available outside of Aggregate.
- Getter should return immutable list of immutable objects or no getter, line items should be updatable through Requisition Aggregate.
- Setter should be removed.
- Line item should not have id in DTO.
- Value Objects - worth having (discussion already on Dev Group)
- line item - entity
- Order
- POD has Order, Order has line item, POD line item has order line item.
- Order line item should not be referenced from outer context.
- Proof of Delivery
- for every line item values of quantity shipped, quantity received, quantity returned, replaced product code.
- How to get order line item details on ui? e.g. by orderable code.
- Requisition - root entity
- Bounded Context - follow up from previous learning meeting discussion, solution space
- Sub-domains - problem space
Wrap up
We have asked every participant to give a score on how useful this meeting was and how helpful this specific material was. The voting was anonymous and each participant could give a score from 1 (useless) to 10 (very useful).
The averages were:
How useful are those meetings: 8/10
How useful was this specific material?
- Extending the Bounded Context with Aggregates: 8.2/10
- Introducing the Second Bounded Context: 6.8/10
Final thoughts
- It's worth to consider using AggregateRoot, ValueObject superclass/interface.
- Getters should return immutable list of immutable objects or should be not implemented.
Action items
- Mateusz Kwiatkowski to start discussion about separate resource for requisition for approval.
- Łukasz Lewczyński (Deactivated) to create ticket for order line item should not be referenced from outer context (POD). → - OLMIS-3827Getting issue details... STATUS
- Paweł Albecki (Deactivated) to follow up with requisition line items should not be available outside of Requisition Aggregate.
OpenLMIS: the global initiative for powerful LMIS software