Remix.run Logo
ChrisMarshallNY 2 hours ago

Depends. If it takes a long time to track down, then it should either be sidelined, or the design needs to be revisited.

I have found that really deep bugs are the result of bad design, on my part, and applying "band-aid" fixes often just kicks the can down the road, for a reckoning (that is now just a bit worse), later.

If it is not super-serious (small performance issues, for instance; which can involve moving a lot of cheese), I can often schedule a design review for a time when it's less critical, and maybe set up an exploration branch.

People keep bringing up threading and race conditions, which are legitimately nasty bugs.

In my experience, they are often the result of bad design, on my part. It's been my experience that "thread everything" can be a recipe for disaster. The OS/SDK will often do internal threading, and I can actually make things worse, by running my own threads.

I try to design stuff that will work fine, in any thread, which gives me the option to sequester it into a new thread, at a later time (I just did exactly that, a few days ago, in a Watch app), but don't immediately do that.

bagacrap an hour ago | parent [-]

> If it takes a long time to track down, then it should either be sidelined, or the design needs to be revisited.

I don't get this. Either you give up on the bug after a day, or you throw out the entire codebase and start over?

Sure, if the bug is low severity and I don't have a reproduction, I will ignore it. But there are bad bugs that are not understood and can take a lot more than a day to look into, such as by adding telemetry to help track it down.

Yes, it is usually the case that tracking it down is harder than fixing. But there are also cases where the larger system makes some broad assumptions which are not true, and fixing is tricky. It is not usually an option to throw out the entire system and start over each time this happens in a project.

ChrisMarshallNY 30 minutes ago | parent [-]

> you throw out the entire codebase and start over

Nah. That’s called “catastrophic thinking.” This is why it’s important (in my experience) to back off, and calm down.

I’ll usually find a way to manage a smaller part of the codebase.

If I make decisions when I’m stressed, Bad Things Happen.