Viewing a single comment thread. View all comments

Ok-Butterscotch-6829 t1_ir572rd wrote

How so? Seems like it makes sense to me.

1

RockstarArtisan t1_ir57u2i wrote

There're reasons why this got upvoted in a nonprogramming subreddit and downvoted in r/programming :P

11

Ok-Butterscotch-6829 t1_ir5c4cc wrote

Why was it downvoted there? I thought SOLID was accepted as good practice in OOP?

0

RockstarArtisan t1_ir5q7om wrote

Well, it is widely known and established, but many people disagree about being good. Some of the advice is applicable in the context of a framework, but the author insists it should be used everywhere which results in bloated designs that people hate. The popularity of this in the Java community is mostly what's responsible for all the hate Java gets online - bloat, overabstraction, complicated designs exemplified by the most SOLID frameworks of them all - Spring - with it's AbstractSingletonProxyFactoryBean https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.html

7

billwoo t1_ir6e306 wrote

Well we can ignore what the author insists on, and just use them as handy short hands for describing architecture decisions. All the principles are sound architectural advice without further context, but software design is mostly striking a balance between pragmatism and "perfect" architecture (extensibility, generality, low coupling etc.). That some Java libraries get that wrong isn't really evidence that "SOLID is a bunch of bs".

Only things that nobody uses don't get complained about.

1

ImTheTechn0mancer t1_ir7nrku wrote

>good practice in OOP

A vacuous statement because OOP is not a good practice.

3

Ok-Butterscotch-6829 t1_ir9wbvh wrote

Well, I kept seeing SOLID come up for interviews and what not but it sounds like many programmers dislike it.

1

ImTheTechn0mancer t1_ir9xyp1 wrote

Of course! Companies love acronyms and buzzwords. SOLID! CRUD! Synergy! Bobody!

They make the business-oriented folks feel like they know what they're talking about with the senior devs.

2

Adverpol t1_ir7d6pw wrote

The thing is that if you focus on solid it's easy to forget that often you shouldn't have had inheritance in the first place, that's my problem with it anyway. OOP is a tool that should be used when appropriate, which for me means when you actually need polymorphism e.g. store a list of different types of entities in a list.

2