Because Confession is Good for the Soul
I've never understood object oriented programming. NEVER. Not even once.
Sure, there's inheritance and I grok that (that's a geek term -- I get it), but designing object oriented code seems a dark art to me. How the hello do you know when to use it? If I wanted to design a system, where do I start? Delegation relationships? Has-a, uses-a, looks-like-a-duck?
Side note: I'm tired of people telling me that fortune cookies originated in the USA. Thanks, I do get it.
The real problem that I've noticed is that all the books I've read that try to "teach" object oriented programming all deal with too-abstract concepts. I get that a geometrical object should have a .draw method. Yep. And a circle's .draw method is different from a square's .draw method, and that the circle and square override the .draw method that they inherited from the geometric object. Hooray.
What about real software? Ok readers. Here's a challenge. Lets say I'm going to design some fancy web application thingy do. I've got an database, some templates, and users, photos, write-ups. How do you design it? How do you start?
Please, enlighten.