Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any site/resource/book to practice and solve OO-design related problems?

Tags:

oop

Looking for some reference material where i can get some OO designing problems and solution to practice and improve designing skills.

Thanks for your interest.

EDIT: I have read: - Refactoring by Martin Fowler - Headfirst Design Patterns (It had problem-solution approach but very limited to a pattern in context). and have fare idea about common design patterns.

I am looking for a reference which is very specific to design related problems and solutions.

like image 399
Manish Basantani Avatar asked Jun 27 '10 16:06

Manish Basantani


2 Answers

I think that this is a really interesting question. As has been pointed out there are many good references on useful design patterns, OO principles and other techniques.

I've not yet seen resources that allow someone to exercise the application of these techniques. As someone with a background in education I've thought about this kind of resources and my conclusion is that developing useful resoruces is extremely demanding. It's not that hard to come up with little questions that "bake" an answer (eg. devise a problem that might be addressed by using an Abstract Factory) but those are trivial problems, the real art comes when the systems are bigger and there are trade-offs to be considered; where there may more than one "right" answer.

I can imagine that high quality formal course might contain such material, but finding something free? If we can find some that would be really nice.

I suspect that at present you may need to rely on mentoring, learnng on the job, and lengthy experience.

Perhaps one thing to try: Buoild your own material! For example, take a non-trivial problem in a Domain with which you are familiar and try to devise a solution. As you progress post questions about small pieces of design here (or perhaps a more discursive site). Going to be tricky to keep the questions small and foscused. But I think the major thing you need is feedback and collaboration.

like image 182
djna Avatar answered Oct 05 '22 21:10

djna


Project Euler gets mentioned from time to time. It's a site with 200 "puzzles" you can use to practice OO design and coding. You can practice any coding language or methodology too.

Here's a list including other sites that give you problems to practice coding skills: http://grok-code.com/214/practice-your-code-fu-programming-contests-and-puzzles-online/

like image 24
Bill Karwin Avatar answered Oct 05 '22 21:10

Bill Karwin