TDD comes up with some really novel designs sometimes.
Like, I expect it should look one way but after I'm done with a few TDD cycles I'm at a state that's either hard to get there or unnecessary.
I think this is why some people don't like TDD much, sometimes you have to let go of your ideas, or if you're stuck to them, you need to go back much earlier and try again.
I kind of like this though, makes it kind of like you're following a choose your own adventure book.
I prefer to write an initial implementation, and then in the testing process figure out which interfaces simplify my tests, and then I refactor the implementation to use those interfaces. Generally, this avoids unnecessary abstraction, as the interfaces for testing tend to be the same ones you might need for extensibility.
Good design evolves from knowing the problem space.
Until you've explored it you don't know it.
I've seen some really good systems that have been built in one shot. They were all ground up rewrites of other very well known but fatally flawed systems.
And even then, within them, much of the architecture had to be reworked or also had some other trade off that had to be made.
I love my WFH rice cooker lunch. A couple of frozen dumplings and some vegetables in the basket, add soy sauce to serve and you've got yourself a hands-free lunch that will sit on keep-warm until you're ready to eat it.
Windows is a bit better these days, if you create an EFI partition it'll just use that even if you've made it much larger than it normally creates for itself.
This means you can just partition everything from Linux and then install windows safely into where you select.
The patent system is the problem. None of this should have been granted but when you really try to define what software patents are novel it becomes incredibly difficult.
Just because you think this is trivial does not mean a layperson does.
Is an encryption algo novel? What's novel about it, it's just a hashing function with some new parameters.
The reality is, software patents are a joke and should be dropped entirely. Copyright is enough protection for most use cases.
Aka, don't hate the player, hate the game. And ideally, do something to fix it instead of complaining about "trolls" as if that'll ever fix the issue.
IANAL but the route to resolve this seems to be to challenge the patent on the grounds it should never have been granted and have it overturned, which it looks very much like it would be an easy argument to make, if not easy to achieve in practice.
The problem is the cost of doing this. If it gets overturned, the defendant shouldn’t be the one to bear the cost. I’d be happy with either 1) the patent owner or 2) the patent office, who didn’t do its job properly.
The UK and USA patent offices, I understand, have procedures to file evidence showing a patent application is not valid - eg because of the 'invention' already being known.
Your comment seems to relate more to unfairness in [lack of] awards of costs in USA legal proceedings.
If you sue me for something I didn't do then it shouldn't cost me anything; that seems reasonable whether the domain is IPR or any other aspect of life.
This varies between countries. AFAIK it is far harder to get the other side to pay your costs if you successfully defend a case in the US than it is in the UK.
While I agree with you, I can't see how we could ever fix the issue.
The same patent holders are the biggest backers of our politicians and will absolutely never allow any reasonable fix to the system itself.
All I read is how we should vote and yell at our representatives, completely ignoring the fact they were only elected because of donations from those benefiting from this system in the first place.
The most hilarious outcome of this is the paper straws at places like Starbucks.
Feeding you coffee from a plastic cup through a cancer causing paper straw served to you wrapped in plastic.