I'm working on a medium sized (100k lines) code base, it's all relatively recent code (less than a year old) and has good unit test coverage.
I keep coming across methods which are either no longer used anywhere or only referenced in unit tests which only test that specific method.
Should I remove this code if I'm certain that it's no longer needed?
Reasons to remove it:
- Less code, less bugs
- Less code is easier for others to digest
- It's still under source control
Reasons to keep it:
- Can be used as reference
- It may be useful sometime
- It may have been written to 'round-out' the functionality for a class
Most of your reasons to keep it are utterly irrelevant, put simply. If the code isn't used, throw it away- any benefit involved in keeping it can be trivially derived from source control. At most, leave a comment saying which revision to find it in.
Quite simply, the sooner you cut the code, the sooner you don't have to waste time maintaining it, compiling it, and testing it. Those advantages massively outweigh the trivial benefits that you have outlined, all of which can be derived from source control anyway.Tweet