I recently came across some old files in our codebase that were marked as 'legacy' and hadn't been modified in years. I thought some of them were dead code, especially those without any imports or clear references. I went ahead and commented out a function that seemed truly unused, but then something surprising happened: a crucial admin tool broke! It turned out that function was being called dynamically through a string path referenced in a config file, and there were no type checks or warnings from the linter. I've been trying to identify what's actually in use using tools like grep, blackbox, and runtime logging, but it's slow and risky. I'm wondering if there's a smarter way to safely pinpoint dead code, or if cleaning it up is just one of those tasks you tackle slowly while keeping a rollback plan handy.
5 Answers
You might want to put a comment in the code right away to prevent confusion. Also, establish a code review process. If you didn't realize how critical that code was, someone else on the team likely knows. Don't forget to create automated tests; having one for that admin tool would have helped catch it earlier.
Didn’t you have a Language Server Protocol (LSP) tool that could have indicated it wasn’t a dead code path? That could’ve helped avoid this situation.
Definitely make sure your code is in git first. It allows you to search through the history before you start removing anything. It's a safer way to handle legacy code.
Sounds like a lot went wrong here! Always keep in mind that deploying code to production without proper testing is a big risk. You need a solid IDE with LSP support, along with automated tests, a thorough code review process, and a staging environment to ensure everything's working properly before going live.
Before removing any code, just make sure to test in your dev and staging environments first. It could save you from these big issues later.
Yeah, we use a tool called Agent Ransack for searches. Some of our classes are defined in the database and called through reflection, which complicates things even more.