If it feels good, do it. If at any time you think or say “ugh” while writing code, stop and fix.
Hacking something together to solve a complex problem doesn’t help. You produce the correct outcome for today, but condemn every subsequent programmer that touches it to a miniature personal hell.
Seriously. You want software that is fun to work on. Yes, fun.
Creating these utopian end-states isn’t a cakewalk. Elegance takes effort. And time. And pain. You won’t get it right the first time around.