Click here to Skip to main content
15,173,985 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: OO Software design epiphany - it might not matter Pin
Ed Korsberg14-Jan-21 4:35
MemberEd Korsberg14-Jan-21 4:35 
GeneralRe: OO Software design epiphany - it might not matter Pin
PhilipOakley14-Jan-21 6:08
professionalPhilipOakley14-Jan-21 6:08 
GeneralRe: OO Software design epiphany - it might not matter Pin
DumpsterJuice14-Jan-21 2:43
MemberDumpsterJuice14-Jan-21 2:43 
GeneralRe: OO Software design epiphany - it might not matter Pin
Lurk14-Jan-21 3:16
MemberLurk14-Jan-21 3:16 
GeneralRe: OO Software design epiphany - it might not matter Pin
Matt Bond14-Jan-21 3:51
MemberMatt Bond14-Jan-21 3:51 
GeneralRe: OO Software design epiphany - it might not matter Pin
davercadman14-Jan-21 4:00
Memberdavercadman14-Jan-21 4:00 
GeneralRe: OO Software design epiphany - it might not matter Pin
obermd14-Jan-21 4:48
Memberobermd14-Jan-21 4:48 
GeneralRe: OO Software design epiphany - it might not matter Pin
Adam O'Neil (Travelers Rest, SC)14-Jan-21 4:49
MemberAdam O'Neil (Travelers Rest, SC)14-Jan-21 4:49 
I still mainly like OO stuff (as a .NET/C# dev), but I can't say whether your project would benefit from the refactoring you considered. If your gut says no, then I believe you.

I come across useful inheritance examples occasionally, so I don't understand inheritance hate. Like any language feature it can be abused. My examples are often abstract classes that therefore require another class to implement/inherit abstract methods. For example, I work on stuff that I want to work equally well in a local file system and Azure blob storage. There is some common behavior that goes in an abstract base class, followed by some subclass capabilities that are environment-specific. From the .NET BCL, Streams follow this pattern. Streams are abstract, with a gaggle of concrete implementations for different situations. I don't see what's wrong with that. Now, I've seen inheritance diagrams like the old C++ MFC stuff that were over-the-top complicated. I think they had reasons at the time, but that was then.

I would say that most of the intellectual heavy lift in app development (in my world) is database design, data modeling -- understanding stakeholder requirements and translating them into relational models. I would agree this doesn't really fit an OO paradigm very well, and I don't see that it needs to. For example, I don't think inheritance translates very well in relational terms except in one narrow situation. I usually have base class to define user/timestamp columns like `DateCreated`, `CreatedBy` and so on -- and my model classes (tables) will inherit from that base class in order to get those common properties. But that's really it.

In the app space, it seems like 80% of dev effort goes into building CRUD experiences (forms and list management) of one kind or another. The other 20% is "report creation" of some kind or another, in my world. I don't think there's a perfect distinction between the two, but I would agree there's not really any OO magic in this layer. OO doesn't really make this experience better, IMO. We do have endless battles over UI frameworks and ORM layers. (I'm getting behind Blazor in the web space, and I have my own ORM opinions for sure! Another topic!)

I'm not sure why anyone would challenge the need for abstraction and encapsulation, but there certainly trade-offs and a need for balance. I like this talk (The Wet Codebase by Dan Abramov – Deconstruct[^ on this very topic.
GeneralRe: OO Software design epiphany - it might not matter Pin
davila a.k.a. Member 1490950114-Jan-21 4:58
Memberdavila a.k.a. Member 1490950114-Jan-21 4:58 
GeneralRe: OO Software design epiphany - it might not matter Pin
Rusty Bullet14-Jan-21 6:23
MemberRusty Bullet14-Jan-21 6:23 
GeneralRe: OO Software design epiphany - it might not matter Pin
Chris Boss14-Jan-21 7:08
professionalChris Boss14-Jan-21 7:08 
GeneralRe: OO Software design epiphany - it might not matter Pin
SeattleC++14-Jan-21 7:09
MemberSeattleC++14-Jan-21 7:09 
GeneralRe: OO Software design epiphany - it might not matter Pin
Dale Barnard14-Jan-21 7:18
MemberDale Barnard14-Jan-21 7:18 
GeneralRe: OO Software design epiphany - it might not matter Pin
sasadler14-Jan-21 8:00
Membersasadler14-Jan-21 8:00 
GeneralRe: OO Software design epiphany - it might not matter Pin
Paul Gehrman14-Jan-21 18:23
MemberPaul Gehrman14-Jan-21 18:23 
GeneralRe: OO Software design epiphany - it might not matter Pin
Member 289602014-Jan-21 18:24
MemberMember 289602014-Jan-21 18:24 
GeneralRe: OO Software design epiphany - it might not matter Pin
KateAshman15-Jan-21 6:26
MemberKateAshman15-Jan-21 6:26 
GeneralRe: OO Software design epiphany - it might not matter Pin
BotReject18-Jan-21 5:30
MemberBotReject18-Jan-21 5:30 
GeneralRe: OO Software design epiphany - it might not matter Pin
charlieg22-Jan-21 12:56
Membercharlieg22-Jan-21 12:56 
GeneralRe: OO Software design epiphany - it might not matter Pin
Martin ISDN1-Feb-21 9:18
MemberMartin ISDN1-Feb-21 9:18 
GeneralHorror videos on youtube! Pin
CodeWraith13-Jan-21 5:05
MemberCodeWraith13-Jan-21 5:05 
GeneralRe: Horror videos on youtube! Pin
OriginalGriff13-Jan-21 5:13
mveOriginalGriff13-Jan-21 5:13 
GeneralRe: Horror videos on youtube! Pin
CodeWraith13-Jan-21 5:42
MemberCodeWraith13-Jan-21 5:42 
GeneralRe: Horror videos on youtube! Pin
dandy7213-Jan-21 5:50
Memberdandy7213-Jan-21 5:50 
GeneralRe: Horror videos on youtube! Pin
den2k8813-Jan-21 5:24
professionalden2k8813-Jan-21 5:24 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.