You need tests to refactor safely

Once you have working code, you can refactor it to make it better.

You can rename variables, extract new functions or classes, ensure the code is styled and formatted correctly - anything to make the code easier to read, understand or maintain.

But, the key thing is the code still needs to work.

You don't want to break working code and introduce a regression, even if it is messy or difficult to read.

The best way I know to approach this is by having automated tests covering this code, and ensure they are working and passing before starting to refactor.

Then you can run the tests again and ensure they still pass.

If they pass, the code still works and the refactoring was successful.

If not, the code is broken and you need to revert the changes and start again.