mjoniec / Proj2_Planes

Distributed air traffic control system. Microservices, DDD, Docker, HostedServices
0 stars 0 forks source link

Split anemic contract into multiple contexts models #16

Open mjoniec opened 3 years ago

mjoniec commented 3 years ago

Currently application uses everywhere single source of truth contract model as a nuget.

Example issiue: contains color data only needed in UI but is used everywhere.

mjoniec commented 3 years ago

is this ticket still valid? see into it.

mjoniec commented 3 years ago

After DDD code review: Valid big time - bumping priority

from DDD review: Contract project - some common contracts between bounded context is needed - partially ok - each bounded context / layer inside project should have only info that it needs for its work. Can be improved - eg.: color info not needed everywhere. Plane should have its Name private property, not a contract. Contract like structure with plane info should be created and returned by API in methods for UI. Similar method with airports but intended for Backend Plane should have list of airports with names and coordinates, not every property in airport. Same model everywhere simplifies code a lot and may be good for small project complexity, but the big code smell that it causes is that the projects and services seem to work a bit like a distributed state machine.