Recent comments in /f/InternetIsBeautiful

TuringC0mplete t1_ir752yi wrote

I preach SOLID pretty hard, but I think after a certain point it just becomes second nature and a "Yeah, that's just how you do it" kind of mindset. Not all of these principles are applicable to every scenario, but for the most part they're a good guide to writing clean code. Some languages don't even have interfaces to do a lot of SOLID things with (looking at you, python -.-)

But I agree that just because you understand the concepts doesn't mean you know how to affectively apply them. Hell, even for preaching them so much, the architect on my team explained to me a few months ago how I was using LSP completely wrong.

Ultimately to me, it's a great teaching tool; but you definitely need to know when to apply it.

1

TheBeardofGilgamesh t1_ir7227x wrote

It’s less his technical ability that I question, it’s his advice for designing maintainable code bases. How can someone who has not worked on large code bases or large teams have the experience of trail and error know how well his methods work in practice. It’s like if a person wrote a book on commanding an aircraft carrier yet has no experience in the navy.

3

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

ghostryder333 t1_ir6d7b7 wrote

I don't want to come off as offensive, but I believe if you don't just "get it" intuitively when writing code you're not gonna be able to work in the industry.

After all you still want to be able to read your code as it grows. You codebase will become more complex with each passing day, and if you don't actually get an intuitive grasp on how to structure things you'll become unable to maintain your code pretty soon.

−3