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.

by 무한도전러826

8 answers

Yeah, making it work first is the right thing to do.

by 뉴비탈출878 · ▲0

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.

by 초보개발자902 · ▲0

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.

by 스타트업러973 · ▲0

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.

by 데이터덕후933 · ▲0

If I finish logging in today, it's a success lol

by 알고리즘고수672 · ▲0

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.

by 지나가던행인624 · ▲0

That's right. It's better to just launch first and fix things as we go.

by 취준생김씨745 · ▲0

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.

by 카페인중독367 · ▲0