I Decided to Make It Work First and Refactor Later
I've been working on a side project lately. I spent a whole month going in circles trying to set up the perfect structure from the start. So starting this week, I switched my mindset to just getting all the features in first.
Of course, I know I'll pay for it later. But if I don't do it this way, nothing ever gets finished. For now, today's goal is just to get the login feature done.
8 answers
Yeah, making it work first is the right thing to do.
I also wasted 3 weeks before trying to get the structure of a toy project right, and then just ended up adding features anyway... In the end, that's the answer. You can always refactor later.
Well, if you're going to refactor later anyway, isn't that just more trouble in the end? I tried that once, but the code got so tangled I gave up.
First, it's important to get the feature done and feel that sense of accomplishment. But you should at least leave some TODOs or comments along the way so it's less painful to refactor later. Especially with login, since it's security-related, pay attention to at least the basics.
If I finish logging in today, it's a success lol
I've had a similar experience, so I'd say it's better to stick to important design principles rather than just making it work for now. Authentication logic, especially, is hard to change later.
That's right. It's better to just launch first and fix things as we go.
From doing multiple side projects myself, I've often found that I'd just plan the architecture upfront ('let's do it this way') and end up not building anything. Going feature-first like this seems to be better for motivation. That said, if you add comments to each function and keep commit messages well-organized, it makes refactoring a bit easier later. For login, as long as session management is built securely, the rest can be changed easily.