ekolis / FrEee

An open source clone of the classic 4X game Space Empires IV.
http://edkolis.com/freee
47 stars 11 forks source link

Create data models #312

Open ekolis opened 2 months ago

ekolis commented 2 months ago

What needs to be cleaned up?

Right now our data models are mixed up with our domain models. This eliminates duplicate code, but makes the models very brittle as any change to the domain model necessitates a change to the data model and vice versa because they are one and the same.

Also let's rename the FrEee project to FrEee.Core to clarify what it is. Maybe put the data models in a separate project called FrEee.Data referenced by FrEee.Core and that alone, to enforce separation of concerns.

How will this benefit us?

Creating separate domain models will make the code flow simpler and more flexible.

What potential drawbacks are there to making this change?

Duplication of code (the reason this wasn't done to begin with)

ekolis commented 2 months ago

This might want to wait on refactoring abilities to be ECS to avoid messing around too much with inheritance in the data model #159

ekolis commented 1 month ago

On the other hand, refactoring the data classes out would tell me what need to be decoupled inheritance-wise...

ekolis commented 2 weeks ago

That PR didn't actually create the data models, but there was some refactoring I wanted to merge.