News for hackers. Stuff that matters.
Re:Domain-Driven Design by sweezyjeezy on Monday September 27, 2021 @04:43AM (#28668459)
> Now, you could make the argument "You Are Doing It Wrong(tm)"

I always hate these arguments - for me, whether a particular programming paradigm is 'good' or 'bad' for an organisation comes down to: "what will my least senior developer do with this?". If it tends to produce tangled nightmares, then it's not a good paradigm, it's about how the weakest link will use it, not the strongest ones.

Re:Domain-Driven Design by mnsc on Monday September 27, 2021 @04:53AM (#28668508)
Ok, so in practice you are saying that no good programming paradigm exists. Where do we go from there?
Re:Domain-Driven Design by sweezyjeezy on Monday September 27, 2021 @05:17AM (#28668657)
I agree no paradigm is particularly great for beginners - OOP leads to junior devs separating their code prematurely/inaccurately, writing horrendous inheritance trees etc., functional programming can lead to some really opaque code that feels like you're trying to solve a puzzle when reading it. I do think good principles exist however:

- try to write code that can be easily unit tested

- composition over inheritance

- immutable over mutable + avoid side effects

- avoid recursion unless your data is recursive

etc. etc.

Re:Domain-Driven Design by ratww on Monday September 27, 2021 @07:11AM (#28669292)
Well, I don't think anything changed. We already knew there was no Silver Bullet.

To paraphrase Brooks, no pattern or methodology is gonna make development "more productive, more reliable or simpler". All patterns and methodologies require a skilled practitioner, but someone skilled enough can even eschew them and still make good software, so in the end they don't really matter.

The point of patterns/methodologies is purely to facilitate communication between experts, not to guide.

In the end, good software is not about following recipes, especially complex recipes. It's a craft.

As for where do we go, what we need is the foundation for personally re-discovering and internalising those same methodologies and patterns, rather than blindly following them. Sweezyjeezy already enumerated some ideas above, and I have done the same in the past: https://news.ycombinator.com/item?id=27987498

Re:Domain-Driven Design by pydry on Monday September 27, 2021 @05:24AM (#28668697)
Certainly no good general purpose programming paradigm exists. Nor will it.

The more general purpose it purports to be the vaguer and more misapplied it will end up being.

DDD could be a lot better as a movement if it tried to limit its scope a bit.

Re:Domain-Driven Design by shados on Monday September 27, 2021 @07:08AM (#28669269)
Wait until the market stabilizes and new dev don't outnumber more senior ones 10:1.

Until then, we have to stick to patterns that are very simple, easy to teach and have wide pits of success. We also have to lean heavily on systems that easy to replace and easy to refactor, and can be managed by the few very experienced devs. That's why platforms like Ruby on Rails did so well, even though they can be divisive.

Re:Domain-Driven Design by myth2018 on Monday September 27, 2021 @09:58AM (#28670697)
> for me, whether a particular programming paradigm is 'good' or 'bad' for an organisation comes down to: "what will my least senior developer do with this?"

I wish ideas like these were more prevalent or that, at least, people considered that in many cases the quality of a method or practice is not an intrinsic attribute, but a matter of suitability to a particular environment.

That's the problem I have with agile enthusiasts in general. I've seen agile methods operating wonders on many projects, but I've seen it failing on much more, and it's completely OK to assume that the method has its assumptions/conditions/limitations but enthusiasts, instead, blame the company and practitioners for not having understood and applied it appropriately.

Re:Domain-Driven Design by TeMPOraL on Monday September 27, 2021 @08:46AM (#28669990)
That's not a good heuristic IMO; it boils down to evaluating every item in terms of what a toddler could do with it. There are situations in which it makes sense, but you can't build a civilization like that. The correct way is to keep toddlers / "least senior developers" away from powerful/dangerous things, until they grow up to the point they can be taught to use them responsibly.