- decided to separate User and Job Offer
- https://github.com/mat-mik/dna-task/tree/master/src/main/java/com/example/dnatask/user
- https://github.com/mat-mik/dna-task/tree/master/src/main/java/com/example/dnatask/joboffer
These two modules definitely have different reasons for change, one domain (user) is heavily generic (replaceable with an off-the-shelf solution); the other domain looks like a core.
- decided to extract Listing from JobOffer
It simplifies read model (less fields - no need for startDate
, endDate
or employerId
), prepares domain to be rewritten with better tools at the expense of data synchronization.
- User's data (e.g. username/password). Only
name
was added. - Missing test cases - https://github.com/mat-mik/dna-task/blob/master/src/test/java/com/example/dnatask/joboffer/JobOfferIntegrationTest.java
- Synchronization Offer -> Listing code:
- Naive query model
- Cleanup:
- use more observable behaviour to do assertions
- add missing
then
sections