5 ms·
It could be OP is referring to multiple layers of (unnecessary) abstraction. In Android land for example, there is a popular "clean" 3 layer architecture, wher
by elvischidera 5y ago
It could be OP is referring to multiple layers of (unnecessary) abstraction.
In Android land for example, there is a popular "clean" 3 layer architecture, where model classes are blindly mapped multiple times (even in cases where this is suboptimal).
I have lost count of people building "clean" inefficient caching mechanism instead of just using an HTTP cache.
Side note:
I believe these things are useful in some situations. Maybe the solution is to have a smart compiler that compiles out these inefficiencies?
Some (most?) apps are just skins around a database. Amazing what Facebook did with Messenger rewrite [0]
Is there an incentive problem? Generally, people get bonuses/accolades for making a slow system fast, not for keeping a system consistently fast. I admit the former is easier to measure.
0 - https://engineering.fb.com/2020/03/02/data-infrastructure/messenger/ https://engineering.fb.com/2020/03/02/data-infrastructure/me...
- handrous 5y agoMaybe it's my bias but I took "clean code" not in the traditional sense, but to mean insisting on patterns perceived to be "pure" or "clean" even when their application harms performance or isn't a great fit for the host language (ahem, JavaScript and functional + immutable-datastructure programming) and makes it even easier for devs to footgun into bad performance while staying "pure".
- inamiyar 5y agoI don't think that's what they meant but it's a good point! I've seen embedded developers write some...truly terrifying code though.
- miltondts 5y agoYes, I should have typed "clean code". It's exactly what you and also what the parent said. It's about patterns/architectures/abstractions that we consider to be good/beautiful, but with very little regard for performance ("just throw more or better hardware at it, that is not our problem"). What really rubs the salt on the wound, is that the people that advocate them are quite loud, they seem to be growing in numbers and there is a massive lack of evidence for the supposed benefits, while the drawbacks are clear and easy to measure.
- 9wzYQbTYsAIc 5y agoFunction purity is a mathematical term with a clear definition and doesn’t deserve the double quotes which imply some vacuous definition or uncertainty. Assuming you are referring to “pure”, in the context of functional programming and isolation of side effects.
- handrous 5y agoWas what I was referring to actually ambiguous?
- 9wzYQbTYsAIc 5y agoWhat is ambiguous are the details about how you think that JavaScript and functional + immutable-datastructure programming is detrimental.
- handrous 5y agoOh, that's totally different from what you posted about before. OK. Allow me to quote me, to clarify this part, then. "when [they aren't] a great fit for the host language"
- 9wzYQbTYsAIc 5y agoWhat remains ambiguous is how it is not a great fit, in that specific case.
- heurisko 5y agoIf the OP meant "multiple layers of unnecessary abstraction" I would agree with them. However "clean code" connotes to me the techniques advocated in "Clean Code" by Robert C. Martin, which amongst other things, advocates small descriptive functions.
- shuntress 5y ago> Maybe the solution is to have a smart compiler that compiles out these inefficiencies? Compilers are software. A "smarter" compiler is probably going to consume more resources.
- elvischidera 5y agoTrue. But at least it happens for each compile per developer which is a far smaller number than for each use per end-user.