Submitted by trekhleb t3_xvum4n in InternetIsBeautiful
Ok-Butterscotch-6829 t1_ir572rd wrote
Reply to comment by MikeCampo in Interactive sketches to illustrate SOLID programming principles by trekhleb
How so? Seems like it makes sense to me.
RockstarArtisan t1_ir57u2i wrote
There're reasons why this got upvoted in a nonprogramming subreddit and downvoted in r/programming :P
Ok-Butterscotch-6829 t1_ir5c4cc wrote
Why was it downvoted there? I thought SOLID was accepted as good practice in OOP?
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
Ok-Butterscotch-6829 t1_ir5rulv wrote
Good to know thanks
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.
ImTheTechn0mancer t1_ir7nrku wrote
>good practice in OOP
A vacuous statement because OOP is not a good practice.
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.
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.
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.
Viewing a single comment thread. View all comments