A system I worked on recently modeled users as potentially belonging to more than one organization, even though there wasn't a good use case for that and there wasn't any plan for how it should work if implemented. It made all of the code to get the organization from a user more complex than it should have been.
Another system I worked on had a view hierarchy that allowed a view to have more than one parent, even though there was absolutely no support anywhere in the system for a view to actually have multiple parents in practice; if you tried, everything would just crash or get into an endless loop. The only use case suggested in comments was that a cell could be a child of both a row and column in a grid, but that was just theoretical - it didn't allow for any functionality that couldn't be achieved some other way.
If you know how something should behave with a one-to-many relationship, and you know it's a use case that you might want to support, then yes, you should model it that way.
But, if you don't know how it would behave, and you can't think of a use case, then don't overcomplicate things.
Yes, a person can have more than one pet. But a person can only have one head, so why complicate things when there's no known use case for a two-headed person?
That’s unfortunate because it’s my specialty and what gives me job satisfaction.
I love fixing things. I actually enjoy working on a crappy codebase that has made the company money but is now too hard to maintain/extend and needs cleaning. Adding tests, refactoring, extracting functionality to discrete functions, figuring out what the black box actually does, etc. This is what I’ve specialized in.
However, it seems to me that companies don’t actually value that. They all say they do of course, while actually being afraid of doing this because it takes more time and money. Even if they’re mature enough that survival isn’t an immediate concern anymore, there is time to clean things up, and the mess is actually slowing them down through downtime, bugs, and not being able to ship relatively trivial features/updates in less than weeks.
I also suspect that not focusing on clean code is a strategy many managers have because they can show velocity to their higher ups and get promoted before it all blows up and they’re held responsible.
So what do you all think? Is clean code really actually valuable in the eyes of organizations or will they always take the quicker and dirtier option given the choice? Will I ever find work selling code cleaning (even to companies that ask for it) or should I “rebrand” on fast and cheap code at the expense of quality?
So while not 100% of my job is refactoring, a large portion is. And sometimes I convince them it’s time to rewrite one entire section or another, so a couple of sprints at a time might be dedicated to just that.
I guess I’ve gotten lucky, probably a combination of that and being outspoken about what needs to be fixed.
Those people are either Czech, Slovak, Serb, Slovenes, Croat... Rather easy to answer.
Many of those Eastern European languages are more of a sliding scale than divided by country borders. Moldovan and Romanian are basically the same thing.
I met someone on my travels from Italy who was Italian, but only spoke German, as they do in parts of Northern Italy.
Religion terrifies me, I don't feel wonderful thinking about eternal existence in the afterlife. Even if there was some proof that the afterlife did exist, I would most likely pretend it doesn't exist.
You can get a sense of community doing many other things.
> Same with philosophies, nationalities, norms, and concepts like loyalty, destiny, and identity. None of these are true. But they are useful.
I don't know what this means. How can nationalities not be true? Philosophies do not claim to be true, they are just a logically consistent framework.
No idea how it applies to concepts either.
As for philosophies, he’s referring to living your life by any particular philosophy, whether or not it’s “objectively” the best way to live.
[1] https://tania.dev/apache-echarts-react/