nus-cs2103-AY2223S2 / forum

12 stars 0 forks source link

Am I the only one feeling overwhelmed by the tp's codebase? #259

Closed EvitanRelta closed 1 year ago

EvitanRelta commented 1 year ago

I'm just trying to morph the person tagging feature into an optional "Education Level" tag, where each person has can have 1 specified education level (eg. P6 or Sec 2)

But something as simple as that requires changing not only the Person class, but:

Not to mention removing any references to the old tagging feature in all testing classes and their utils:

And not to mention the shear amount of UML diagrams we'll need to change in the future.

How are we suppose to do anything at this rate?
I can't take this anymore

BoAi01 commented 1 year ago

For our team, we refactored the code base to abstract out common things. This was majorly done by @wxxedu. Having different command classes and storage classes seems unavoidable, but parsers and other utils can be abstracted out. Doing refactoring significantly help later modifications in our case.

damithc commented 1 year ago

@EvitanRelta yes, it can be overwhelming at first when working with an existing code base. While most legacy code bases don't have much help on this regard, we have provided a few tutorials to make the learning curve less steep https://nus-cs2103-ay2223s2.github.io/tp/SettingUp.html#before-writing-code

Doing those tutorials first will make it easier when you do the first code change on your own. In particular, the second tutorial shows how to break down a change into small steps. This ability to break down any change into small steps is vital, to avoid getting overwhelmed with all the things that needs to be done.

The progress will be slow, but that will be the case for everyone. Once you has a sense of how fast you can move forward in this particular code base, you can adjust your targets accordingly. Hence our advice to make v1.2 as small as possible.

Along the way if you notice and design changes that can make future code changes easier, go ahead and do that too. Such work can be counted in your tP effort as well.

damithc commented 1 year ago

@EvitanRelta You are not the only one. At least one other student talked to me about this and I'm sure most others feel similarly discouraged about how slow one can progress in the tP compared to the iP. Hence, I've added the following to https://nus-cs2103-ay2223s2.github.io/website/schedule/week9/project.html

image

dohaduong commented 1 year ago

Yeap! I agree one change could lead to so many other modifications, but I think we would be able to slowly get used to the code base eventually :)