Closed EvitanRelta closed 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.
@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.
@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
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 :)
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
orSec 2
)But something as simple as that requires changing not only the
Person
class, but:AddCommand
&EditCommand
)AddCommandParser
&EditCommandParser
),JavaAdaptedPerson
,JavaAdaptedTag
CliSyntax
,ParserUtils
Not to mention removing any references to the old tagging feature in all testing classes and their utils:
SampleDataUtil
LogicManagerTest
CommandTestUtil
EditCommandTest
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