top | item 40925803

(no title)

jpz | 1 year ago

This article doesn’t define onion layering, I am none the wiser from reading it. There are near identical sentences within it, it gave me the sense I was reading AI generated content, or at least heavily AI post-processed content.

discuss

order

Quothling|1 year ago

Onion layering is a non-scalable architecture which was immensely popular in the 00-10's due to how it interacts with OOP and it's somewhat crazy principles. It's based on seperating everything by interfaces in a structure which is a little similar to a MVC architecture. So you're going to organize your project(s) into a structure where you centralize everything with a seperation based on what "something" does. So you're going to put your OOP models in a specific place, your services in another and so on. As you can imagine it scaled horribly and today it's made completely obsolete by domain based architecture which is basically Onion Layering but both more reasonably organized and actually scalable.

A lot of CS academics still live in a world where OOP is the greatest thing ever. Where things like wrapping functions in classes are necessary and where things like the onion architecture is still "modern". So naturally a lot of inexperienced developers, or developers who've never had to work on large projects, still hail it as the holy grail.

Note that this was a very opinionated post.

mech422|1 year ago

>>Note that this was a very opinionated post.

Bonus points for calling it out as opinion, instead of treating it as the 'one true way' :-)

P.S. I still like OOP well enough, and I love formal interface support like Go/Rust use. (Just IMHO)