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?
views:
1099answers:
14Read Design Patterns which is the standard bible of design patterns. Don't miss Design Patterns in python. Bruce Eckels Thinking in Python
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
This is the best site to refer OOPS patterns http://www.dofactory.com/Patterns/Patterns.aspx
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.
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.
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!
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.
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.
Here are a few nice YouTube videos about Python:
- Advanced Python or Understanding Python by Thomas Wouters
- 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.
Thanks for all the useful stuff, gonna browse through them and choose something understandable.
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.
Great lecture by Alex Martelli: http://code.google.com/edu/languages/index.html#_python_patterns
The headrush headfirst books are designed to be easily understandable. Take a look at their Head first design patterns