CSC207-2022F-UofT / course-project-bill-gates

A bill recording software developed by team "Bill Gates."
9 stars 4 forks source link

[Feature 9] Architecture Reconsideration #27

Closed ScottCTD closed 1 year ago

ScottCTD commented 1 year ago

As I started developing our project. I found tons of issues with our initial architecture.

Since it is truly hard to handle our project, I will try my best to post an initial implementation before the end of the reading week.

ScottCTD commented 1 year ago

Also, we need to change the way we laid our presenter, view, and view model out.

We have views (GUIs) in the 4th layer, but our presenter is in the 3rd layer. Therefore, we probably need to use some interfaces and abstractions to separate the two layers.

Lei-Tin commented 1 year ago
  • We shouldn't make use cases depend on each other.

We can delete the useless ones! Maybe try implementing the application the rough way first, then try to refactor and find a balance between "Clean architecture" and something that is actually implement-able.

  • For BillUpdateUseCase which I'm developing, I believe it should be just an update of all entries of the current bill for the current user. We previously planned to query entries only for display. We should add a list of entries to the User class.

I believe this idea saves the most time both implementation wise and design decision wise. Simply obtain all the entries and just tie it together with something that is always existing in our current running program.

This way, it is way easier to interact with this inforamtion as it is always present.

  • All use cases like QueryUseCase, InsertUseCase, and AlterUseCase are probably useless.

It's alright, we can try implementing the other stuff first, and delete useless UseCases accordingly.

Since it is truly hard to handle our project, I will try my best to post an initial implementation before the end of the reading week.

GOGOGOGOGOGOGOGOGOGOGOGOGO 👍

Don't stress yourself out too much :# We can go get some ice cream together next time 🍨

(Also, is it really a bug though? Maybe just a large scale enhancement or refactor)