OO Design

Cogman

Lifer
Sep 19, 2000
10,284
137
106
I have been a procedural programmer for a long time now, but in college one of the required classes is an OO C++ class. Slowly but surely I am falling in love with Objects and their abilities. However, It is hard to break the procedural mindset when I have been doing it for so long.

So, I feel almost limited in OO design because I don't know how to design a good program. What are some good websites or methods used in OO design that could help me? Specifically I would love to learn how to incorperate multithreading to a OO program.

(right now, we have only done a Noun Identification design and a CRC card aproach. In a VERY basic sence. I know it will get better as the class goes on, but I like to be pro-active in stuff like this.)
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Object Mentor has a section on their website with some good papers. Start with Wikipedia, or just Google the term: you'll find more than you can consume.
 

Thyme

Platinum Member
Nov 30, 2000
2,330
0
0
Seconded on the Design Patterns. GoF of course is good, but I recommend the Head First book for learning it.
 

hooflung

Golden Member
Dec 31, 2004
1,190
1
0
Grab Ruby and any tutorial on Ruby Classes and there you go. I was a procedural misfit for years and stayed clear of OOP even though, like you, I had OOP classes in college years back. Decided to get into Ruby on Rails for a project and been doing ruby ever since. It will also help you understand the foundational OOP stuff and not riddle you with 'how its implemented' in other languages. Its pretty pure OOP, the purest I've ever seen. Toy around with it, IRB ( command line interface ) is awesome, and then take the ideas you glean there over to other languages.
 

Boogak

Diamond Member
Feb 2, 2000
3,302
0
0
Start off with learning and understanding Object Oriented Principles and why they exist. Once you understand them, read up on Design Patterns so you can see how these design patterns help your code adhere to the OOP Principles.

Two books I've found to be really helpful have been the Head First Object-Oriented Analysis & Design and Design Patterns books. They use a conversational tone and offbeat humor to keep the material dry, and makes the subject matter easy to understand.

Edit: Martin Fowler's site is a treasure trove of OOP goodness as well.
 

Hyperblaze

Lifer
May 31, 2001
10,027
1
81
Originally posted by: hooflung
Grab Ruby and any tutorial on Ruby Classes and there you go. I was a procedural misfit for years and stayed clear of OOP even though, like you, I had OOP classes in college years back. Decided to get into Ruby on Rails for a project and been doing ruby ever since. It will also help you understand the foundational OOP stuff and not riddle you with 'how its implemented' in other languages. Its pretty pure OOP, the purest I've ever seen. Toy around with it, IRB ( command line interface ) is awesome, and then take the ideas you glean there over to other languages.

I'm actually in the process of learning Ruby on Rails. Is there any tutorials that you might recommend?
 

hooflung

Golden Member
Dec 31, 2004
1,190
1
0
Originally posted by: Hyperblaze
Originally posted by: hooflung
Grab Ruby and any tutorial on Ruby Classes and there you go. I was a procedural misfit for years and stayed clear of OOP even though, like you, I had OOP classes in college years back. Decided to get into Ruby on Rails for a project and been doing ruby ever since. It will also help you understand the foundational OOP stuff and not riddle you with 'how its implemented' in other languages. Its pretty pure OOP, the purest I've ever seen. Toy around with it, IRB ( command line interface ) is awesome, and then take the ideas you glean there over to other languages.

I'm actually in the process of learning Ruby on Rails. Is there any tutorials that you might recommend?

Not really. I find the ones on the web a bit lacking. What I did was went out and bought http://pragprog.com/titles/rails2/index.html and just spent most of my time grasping the ActiveRecord sections as these are the real crux of the RoR benefits. The stuff like MVC aren't Ruby only things so you can do a websearch on it. ActiveRecord isn't Rails only but its the most popular implementation of it... with cakephp and django being the less supported variants.

The biggest part to ruby on rails is getting it to work well with IIS which really, really needs a reverse proxy to feed into a Mongrel RoR server for production sites. Also, finding the little niggles with RoR and mysql 4.0.2x which isn't compatible right off with RoR but only after a little tweaking of some ruby files will it be.
 

TruePaige

Diamond Member
Oct 22, 2006
9,874
2
0
Originally posted by: hooflung
Originally posted by: Hyperblaze
Originally posted by: hooflung
Grab Ruby and any tutorial on Ruby Classes and there you go. I was a procedural misfit for years and stayed clear of OOP even though, like you, I had OOP classes in college years back. Decided to get into Ruby on Rails for a project and been doing ruby ever since. It will also help you understand the foundational OOP stuff and not riddle you with 'how its implemented' in other languages. Its pretty pure OOP, the purest I've ever seen. Toy around with it, IRB ( command line interface ) is awesome, and then take the ideas you glean there over to other languages.

I'm actually in the process of learning Ruby on Rails. Is there any tutorials that you might recommend?

Not really. I find the ones on the web a bit lacking. What I did was went out and bought http://pragprog.com/titles/rails2/index.html and just spent most of my time grasping the ActiveRecord sections as these are the real crux of the RoR benefits. The stuff like MVC aren't Ruby only things so you can do a websearch on it. ActiveRecord isn't Rails only but its the most popular implementation of it... with cakephp and django being the less supported variants.

The biggest part to ruby on rails is getting it to work well with IIS which really, really needs a reverse proxy to feed into a Mongrel RoR server for production sites. Also, finding the little niggles with RoR and mysql 4.0.2x which isn't compatible right off with RoR but only after a little tweaking of some ruby files will it be.

I find it's hard to find many places that support / use Ruby as much, though it has a lot of potential and I have seen some great code written from it.

Looks like a nice language for you OP.
 

mosco

Senior member
Sep 24, 2002
940
1
76
Originally posted by: Boogak
Two books I've found to be really helpful have been the Head First Object-Oriented Analysis & Design and Design Patterns books. They use a conversational tone and offbeat humor to keep the material dry, and makes the subject matter easy to understand.

Edit: Martin Fowler's site is a treasure trove of OOP goodness as well.

I second those 2 books. My professor for OOAD class was one of the authors for the head first OOAD book (Gary Pollice) and we also used the course supplement that goes along with it. Its a great book, and so is the design patterns head first book.

 

nordloewelabs

Senior member
Mar 18, 2005
542
0
0
Originally posted by: Boogak
Two books I've found to be really helpful have been the Head First Object-Oriented Analysis & Design and Design Patterns books. They use a conversational tone and offbeat humor to keep the material dry, and makes the subject matter easy to understand.
there are a lot of "Design Patterns" books out there and that made me wonder what "Analysis & Design" really is. what's the difference between the two titles?
 

mosco

Senior member
Sep 24, 2002
940
1
76
Originally posted by: nordloewelabs
Originally posted by: Boogak
Two books I've found to be really helpful have been the Head First Object-Oriented Analysis & Design and Design Patterns books. They use a conversational tone and offbeat humor to keep the material dry, and makes the subject matter easy to understand.
there are a lot of "Design Patterns" books out there and that made me wonder what "Analysis & Design" really is. what's the difference between the two titles?

The AD book is about designing software starting from the requirements. You get requirements, you make use cases and maybe make some UML. You write software with principles like encapsulation. You want to focus on open closed principle, and single responsibility principle. It uses some great examples and exercises to show you how all of this works.

The patterns book focuses on design patters and how you can apply them to various problems.

For my OOAD class, we used the OOAD book at the beginning, and the patterns book at the end.
 

hooflung

Golden Member
Dec 31, 2004
1,190
1
0
Originally posted by: TruePaige

I find it's hard to find many places that support / use Ruby as much, though it has a lot of potential and I have seen some great code written from it.

Looks like a nice language for you OP.

There are a lot of sites that have little nuggets of information but a lot of the times they are no better than reading a book chapter or just looking over the examples at the ruby on rails forums. For every ruby on rails site I could give you 10 PHP sites. The things that really matter to me with ruby on rails is the base language and the how to use the extensive libraries that come with it or available with the gems.

REXML and Builder recently pushed a dproject over the finish line once I figured out the hangup I was having with how a .each_with_index method was, or should I say wasn't, incrementing the index it supplied as I traversed the array. Their was no documentation on what I discovered and in the end I couldn't use that for what I needed. Had to do old school while loops for that, which worked will in the end.

It just all depends, but the sites I find for RoR are better served with a book.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |