Should I prefer consistent design or good design?
-
@blakeyrat said in Should I prefer consistent design or good design?:
Then you've put control of your application into the hands of some moron open source library full of bugs and next time something doesn't build you'll waste days trying to pry open that ridiculous black-box to figure out fucking why! Congratulations, what a time savings.
An open source library is not necessarily bad; you're conflating them with libraries owned by open source people. Google Guice, for instance, is great.
-
@blakeyrat said in Should I prefer consistent design or good design?:
@gribnit said in Should I prefer consistent design or good design?:
@blakeyrat Owns as in has a reference to it,
If I have a reference to a Keats poem, do I own it? Can I earn royalties? Sue publishers who have used it without attributing me?
@gribnit said in Should I prefer consistent design or good design?:
Owns is appropriate here.
No. No it is not. People can own things. Groups of people (such as governments) can own things. Abstract concepts written in code cannot own things.
Computer science is already drowning in jargon, I don't know why people go out of their way to make it more confusing.
-
@blakeyrat said in Should I prefer consistent design or good design?:
@dkf said in Should I prefer consistent design or good design?:
Or is a mark of someone who is undereducated for the roles he is taking on, and stubbornly refuses to fix that by reading the sort of background material that the rest of us mastered decades ago.
Well remember I'm a stupid idiot moron dummy at all times forever. If I said it, obviously it's stupid and wrong. You've been on this forum long enough to know that.
@dkf said in Should I prefer consistent design or good design?:
One doesn't need a college degree to be a software engineer, but one should be familiar with that grade of material (through self learning if nothing else) in order to not be at a serious disadvantage.
Keeping shit simple is an advantage in software development.
@benjamin-hall said in Should I prefer consistent design or good design?:
@dkf I don't mean to disparage anyone with this. But I'm completely self-taught as a programmer. And to me, directed acyclic graph, etc. were clear really quickly.
I know what a directed acyclic graph is, it's just a shitty way to explain a concept. It's like people who say "grok" instead of "understand", it's just going out of your way to use obtuse, difficult language instead of speaking plainly.
You know, like this:
@benjamin-hall said in Should I prefer consistent design or good design?:
Human languages are naturally polysemous.
-
@blakeyrat said in Should I prefer consistent design or good design?:
If you're trying to explain something to somebody and you use the term "directed acyclic graph" you should be punched in the face, bam, no warning, I'm not kidding.
Different strokes, and all that; it was helpful for me. Mathematician by training, I know what a directed acyclic graph is better than I know what dependency injection is.
@blakeyrat said in Should I prefer consistent design or good design?:
I know what a directed acyclic graph is, it's just a shitty way to explain a concept.
OK, but that wasn't itself the concept he was trying to explain. What phrasing would have been better and still reasonably concise, in your opinion? Don't just tell us what we're doing wrong, tell us how we can do it better.
-
@blakeyrat said in Should I prefer consistent design or good design?:
Well remember I'm a stupid idiot moron dummy at all times forever.
That's not even close to what I said. Quite the opposite, the point was that
@blakeyrat said in Should I prefer consistent design or good design?:
I know what a directed acyclic graph is, it's just a shitty way to explain a concept. It's like people who say "grok" instead of "understand",
as I expected, you do know what it is. You just like to pretend you don't.
For whatever reason, this particular piece for jargon threw you off, while the ton of other jargon in this thread didn't.it's just going out of your way to use obtuse, difficult language instead of speaking plainly.
It's a discussion among people who either understand the relevant words, or look them up immediately. And you yourself know how important it is to use precise wording or people are talking past each other. For example
when talking about Dependency Injection as a concept, do not conflate it with "a horrible bloated reflection-based scary-action-at-a-distance" library that bad programmers use to implement Dependency Injection.
So your pretend-ignorance was not credible and unnecessary.
-
@scarlet_manuka said in Should I prefer consistent design or good design?:
What phrasing would have been better and still reasonably concise, in your opinion?
Passing in all dependencies via the constructor works as long as your dependencies form a directed acyclic graph
The alternatives I can come up with are 1) that only works when it's possible to do so, which is entirely tautological, and 2) that only works if the dependencies are not circular, which is essentially the exact same thing as acyclic.
-
@unperverted-vixen said in Should I prefer consistent design or good design?:
I know this is probably going to be opinion based, so let's hope this is still the right category. ;)
We have... let's call it Framework A, that most of our products are built on.
I'm working on an internal tool, also built on Framework A. Right now I'm basically the only dev, but I'm trying to think ahead about bus factor, etc.
As you might expect from a 15+-year-old codebase (at least, that's the oldest date I could find in the comments), there's some cases of what would now be considered a bad design decisions. My main concern is that it obviously wasn't designed around dependency injection. There's a number of static utility classes that are doing service location or accessing HttpContext.Current, rather than demanding their needs in the constructor.
If I'm writing a new app with the framework, what's my best approach?
- Use the existing design patterns for new classes, making it easier for other devs familiar with the other framework products to adopt.
- Stick to "modern" design and make all my new classes declare their dependencies, but feel free to use existing Framework A classes as appropriate
- Inject All The Things. Don't use any sketchy framework code - either wrap it in something injected (so it can be replaced later in one swell foop) or rewrite it.
My inclination is #2, with #1 as my second choice, but I'm interested to hear others' thoughts as to the One True Way @unperverted_vixen Should Code.
My personal opinion, forged in the fires of maintenance of a system written in C++ and the creation of an entirely new codebase written in Java by copying the C++ code into Java-files and beating it with the ugly stick until it compiles, is that to keep doing it in the same way as it's always been done, for the sake of doing it the same way it's always been done is the worst reason there is to keep doing something in a particular way.
If there are better ways to do something, once should do it the better say. Curmudgeons that cannot fathom the new way can keep doing maintenance on the old, horrible codethulian mess.
-
@scarlet_manuka Needs to be called a joiny tree
-
@blakeyrat said in Should I prefer consistent design or good design?:
I know what a directed acyclic graph is, it's just a shitty way to explain a concept. It's like people who say "grok" instead of "understand", it's just going out of your way to use obtuse, difficult language instead of speaking plainly.
Good morning, vietnam - abbreviation scene (English) – 01:25
— littleghost82
-
@pie_flavor said in Should I prefer consistent design or good design?:
@blakeyrat said in Should I prefer consistent design or good design?:
I know what a directed acyclic graph is, it's just a shitty way to explain a concept. It's like people who say "grok" instead of "understand", it's just going out of your way to use obtuse, difficult language instead of speaking plainly.
Good morning, vietnam - abbreviation scene (English) – 01:25
— littleghost82Is that Robin Williams?
-
@tsaukpaetra Yes. I really hate that we're not getting any more movies of him.
-
@pie_flavor You wouldn't think that if you've watched RV.
-
@blakeyrat I'll watch it later, but I'll bet that Robin Williams is what bumped it up to a 33 from, say, an 18.
-
@gribnit said in Should I prefer consistent design or good design?:
@scarlet_manuka Needs to be called a joiny tree
I feel "pointy tree" would better convey the notion of "directed".
-
@Benjamin-Hall said in Should I prefer consistent design or good design?:
For some things, simplifying it beyond a certain point teaches false information.
Do you have some examples? I'm of the school of thought that says that oversimplification can be (carefully) used in the early stages of learning a new concept to help prepare some students' minds to more easily accept and understand the more specific clarifications and explanations as the topic is developed.
-
@djls45 You have to be careful to teach only things that are simplifications of reality, so that more complex explanations fit in with “here is a way of understand things that explains more”, and not stuff that is outright false. It all sounds so easy when I lay it out like that…