views:

1099

answers:

14

I've started programming more in OO style than ever (Python). Any good web resources I could read? I need help constructing and modelling objects, relations, interfaces etc. . Not only dry theory (I've read that), but something easy to grasp (examples would be nice), do you know any site or a good book?

+7  A: 

Read Design Patterns which is the standard bible of design patterns. Don't miss Design Patterns in python. Bruce Eckels Thinking in Python

Florian Bösch
A: 

they look like kids books, but the head first series from o'reilly is supposed to be really easy and quickly digested. These are not the make you feel stupid kind like the for dummies or idiots series, the seem well put together based on cognitive research.

Check This One: Object Oriented Analysis and Design

ethyreal
+1  A: 

This is the best site to refer OOPS patterns http://www.dofactory.com/Patterns/Patterns.aspx

Jobi Joy
A: 

Any of the "Thinking in..." Books from Bruce Eckle, some of which are free to download in their entirety. Even though some are language specific, he's really good at laying out OO practices and guidelines. Just think of the language-specific parts of the book as examples.

Dustman
+1  A: 

Download Bruce Eckel's Thinking In Python.

It introduces Patterns from a practical Python perspective is plenty of examples. He also covers good practices, like using unit tests.

http://mindview.net/Books/TIPython

Sadly, it remains unfinished. However, there's still more than enough there for now.

Ged Byrne
A: 

Although the GOF book is a "must-read", some patterns are not very useful when coding in a flexible language like Python.

I believe the best you can do to "get" OOP is not to read a book, but try to design something "Object Intensive" like a small game, trying to do without 3rd party libraries as much as possible.

Good Luck!

Pablo Fernandez
A: 

If you're trying to model business processes in OOP, then good luck with that. That's one area where OOP sucks big time.

If you want anti-resource for OOP, then go to http://www.geocities.com/tablizer/oopbad.htm.

When I have read his stuff first time many years ago, I refused to agree with him on most points and was blaming him for not trying hard enough to understand OOP philosophy. However while still being object-happy programmer, always when I felt sort of frustrated by OOP, I landed on his website to understand better why. He might not be the best writer in the world but definitely someone who deserves attention.

lubos hasko
Jacob Bryce, aka Tablizer, aka Topmind is a well known usenet troll.
Martin Spamer
I don't necessary agree with the way he is pushing his views through but that doesn't automatically mean that he is completely wrong.
lubos hasko
+4  A: 

I tried to provide a large, moderately complex, realistic set of exercises (light theory, heavy practice) in Building Skills in Object-Oriented Design. It may help get a better grasp on OO design.

S.Lott
+2  A: 

The c2 wiki is an excellent source of knowledge on OOP philosophy and practices. That's where I learned most of my advanced OOP skills.

Ryan
A: 

Here are a few nice YouTube videos about Python:

  1. Advanced Python or Understanding Python by Thomas Wouters
  2. OSS Speaker Series: Python for Programmer by Alex Martelli

They are generally very dense and fast, thus nothing for someone just starting to program, but they teach a lot of very cool tricks. Definitely worth watching!

Haven't watched Slightly Advanced Python: Some Python Internals yet, but I definitely am going to because Alex Martelli knows his stuff. There are other videos on the Google Techtalks channel which I haven't watched yet.

pi
A: 

Thanks for all the useful stuff, gonna browse through them and choose something understandable.

Murzyn1
+5  A: 

I will recomend to you the "Object-Oriented Software Construction" (Bertrand Meyer). It's a excelent book whom will teach you the O.O. paradigm and design concepts.

If the above is too dense :), you can go directly with "Refactoring: Improving the Design of Existing Code" (Martin Fowler), this book is very good to help you improve your designs.

Gravstar
Rather than add my own, I just want to re-iterate the refactoring book. Read chapter 3 (bad code smells). If you understand the smells and the reason for each, you're well on your way.
Bill K
+1  A: 

Great lecture by Alex Martelli: http://code.google.com/edu/languages/index.html#_python_patterns

Vasil
+1  A: 

The headrush headfirst books are designed to be easily understandable. Take a look at their Head first design patterns

Andrew Edgecombe