Go Back   SitePoint Forums > Forum Index > Program Your Site > PHP > PHP Application Design
Newsletter FAQ Members List Calendar Mark Forums Read

New to SitePoint Forums? Register here for free!

SitePoint Sponsor
 
Reply
 
Thread Tools Display Modes
Old Jul 2, 2003, 09:07   #1
lastcraft
SitePoint Victim
 
lastcraft's Avatar
 
Join Date: Apr 2003
Location: London
Posts: 2,273
Thumbs up My top five OO reads

Hi all.

There are some exquisite OO books out there, some of them very recent, so I thought it might be a good time to revisit an old question. I consider all of these items essential reading. Very few people get through our office without having these shoved under each arm.

Here are the rules of my little game, though . If you want to recommend something else then you have to say which one below you would drop in favour of your recommendation, thus limiting the total to five. Fair?

Here goes...

1) The C2 Wiki. Not a book of course, but the first ever Wiki here http://www.c2.com/cgi/wiki?WelcomeVisitors. It has been the seed of many current software development ideas. You really can get lost for days in this and several of the pages are still groping toward new ideas.

2) Design Patterns (Gamma, Helm, Vlissides, Johnson). Not as readable as some of the later rehashes for specific languages, I had to read it three times, but for density of information and for being the first it had to be the one chosen. This book changed the world.

3) Patterns of Enterprise Application Architecture (Martin Fowler with contributions). A lot of the issues on this forum (templating, database abstraction) are tackled in depth in this book. It takes the patterns idea and applies it to (mostly web) applications. Recent and an absolute classic, the "UnitOfWork" pattern is worth the price alone.

4) Refactoring (Martin Fowler). I cannot think of a book that will improve a developer's code quality faster than this book. Everything from how large methods should be to how to safely put right a completely mis-designed application. Fantastic.

5) The Pragmatic Programmer (Hunt, Thomas). An eclectic mixture of advice and attitude from two developers with enormous experience. This one seeps in by osmosis whilst being an utterly readable bedtime book. Inspiring.

Comments?

yours, Marcus.
lastcraft is offline   Reply With Quote
Old Jul 2, 2003, 09:24   #2
SteveO
SitePoint Guru
 
SteveO's Avatar
 
Join Date: Jan 2003
Location: UK
Posts: 632
Quote:
Originally Posted by lastcraft
2) Design Patterns (Gamma, Helm, Vlissides, Johnson).
http://www.amazon.co.uk/exec/obidos/...008352-0078045
Quote:
Originally Posted by lastcraft
3) Patterns of Enterprise Application Architecture (Martin Fowler with contributions).
http://www.amazon.co.uk/exec/obidos/...008352-0078045
Quote:
Originally Posted by lastcraft
4) Refactoring (Martin Fowler)
http://www.amazon.co.uk/exec/obidos/...008352-0078045
Quote:
Originally Posted by lastcraft
5) The Pragmatic Programmer (Hunt, Thomas).
http://www.amazon.co.uk/exec/obidos/...008352-0078045

Just some Amazon links if someone wants to buy!

I have been looking for a suitable book (1st Year CS student) to get my head around OO design. I know about polymorphism, inheritance, encapsulation but it can mash the brain trying to implement a new solution. I have a book on UML which is meant to simplify this process and allow you to abstract away. If any of these books will give me more grounding at my current level let me know.

Thanks

Stephen
SteveO is offline   Reply With Quote
Old Jul 2, 2003, 09:45   #3
lastcraft
SitePoint Victim
 
lastcraft's Avatar
 
Join Date: Apr 2003
Location: London
Posts: 2,273
Hi...

Quote:
Originally Posted by SteveO
Just some Amazon links if someone wants to buy!
Cheers. I just haven't got my head around this internet thing yet! Are those numbers at the end part of an affiliate scheme?

Quote:
Originally Posted by SteveO
I have been looking for a suitable book (1st Year CS student) to get my head around OO design.
I never did Computer Science, but Physics and I have been trying to catch up ever since. The "Design Patterns" book is the best bet book wise, but better is to pair program with someone else and giving yourself time to junk stuff and start from scratch. You'll know when you get something right. It's that "Aha!" feeling.

Before OO I thought I had mostly "got it" development wise and all that was left was more skills. Well pride comes before a fall and that fall was a head on collision with the OO brick wall! Four years later and I am still very much a learner. Wouldn't do it any other way now though.

yours, Marcus.
lastcraft is offline   Reply With Quote
Old Jul 2, 2003, 10:14   #4
sjokki
SitePoint Member
 
Join Date: Feb 2003
Location: Groningen, Netherlands
Posts: 21
For an introduction to OO I think http://www.amazon.com/exec/obidos/tg...809126-6321404 is very good. I first bought the Design Patterns book and I understood only the half of it. After reading The Object Primer I understood it all . You can read a lot of Ambler here: http://www.ambysoft.com/onlineWritings.html

I don't know which book should be dropped. I haven't read all of them.
sjokki is offline   Reply With Quote
Old Jul 2, 2003, 10:27   #5
sweatje
eschew sesquipedalians
silver trophy
 
sweatje's Avatar
 
Join Date: Jun 2003
Location: Iowa, USA
Posts: 3,779
http://www.bookpool.com typically has lower prices on technical books than Amazon.

[ot] It is also an effective vote with your $ if you would like to protest Amazon's patenting of basic web designs
sweatje is offline   Reply With Quote
Old Jul 2, 2003, 14:18   #6
richard_h
SitePoint Addict
 
richard_h's Avatar
 
Join Date: May 2002
Location: London
Posts: 302
I'm going to purchase Refactoring (Martin Fowler) after hearing you rave about it Marcus. I have read Patterns of Enterprise Application Architecture by Fowler which was excellent.

If buying books in UK: www.compman.co.uk are always cheaper than Amazon.

Last edited by richard_h; Jul 2, 2003 at 14:30.
richard_h is offline   Reply With Quote
Old Jul 3, 2003, 01:49   #7
HarryF
SitePoint Wizard
gold trophysilver trophy
 
Join Date: Nov 2000
Location: Switzerland
Posts: 2,906
OK - I'm throwing out the C2 wiki on the grounds that I personally don't learn well (as in can't really take something in if I'm staring at a screem).

To replace it; Bruce Eckel's Thinking in Java which although not as advanced as some of those up there, being more an intro to OOP, it's packed full of invaluable insight and re-reading it always seems to throw up some new ideas.

Having said that, currently reading his Thinking in Python where the intent is not really to teach Python but a new version of his Thinking in Patterns using a language that he believes is ideal for examples. I've only just got started but thanks to it being Python the patterns really speak for themselves.

Also like Bruce Eckels down to earth way of writing (plus you can download versions of the books for free)
HarryF is offline   Reply With Quote
Old Jul 3, 2003, 08:15   #8
Dr Livingston
Non-Member
 
Join Date: Jan 2003
Posts: 5,799
Umm... Did download Thinking In Java and started to read Chapter One though that's as far as I got... Although Thinking In Java Edition 2.0 is available for download as well; again, not had the time to read it yet

But what I have read of it, it is worthwhile having a look folks...
Dr Livingston is offline   Reply With Quote
Old Jul 8, 2003, 15:04   #9
Dr Livingston
Non-Member
 
Join Date: Jan 2003
Posts: 5,799
Find some space, upload it and give us all a shout okay ? Hee Hee Hee...
Dr Livingston is offline   Reply With Quote
Old Jul 8, 2003, 15:05   #10
Technosailor
Prolific Blogger
silver trophy
 
Technosailor's Avatar
 
Join Date: Jun 2001
Location: Before These Crowded Streets
Posts: 10,023
No, Dr. Posts have been removed. We are not doing the illegal file sharing stuff here.
Technosailor is offline   Reply With Quote
Old Jul 8, 2003, 15:53   #11
Dr Livingston
Non-Member
 
Join Date: Jan 2003
Posts: 5,799
Ummm.... Anyway, there are some free eBooks available for downloading over at devarticles.com out of interest to anyone ? Recommend the one on Guide To Java as well... Great Stuff
Dr Livingston is offline   Reply With Quote
Old Jul 8, 2003, 15:58   #12
bbolte
Do or do not, there is no try
 
bbolte's Avatar
 
Join Date: Nov 2001
Location: The Central Plains
Posts: 3,230
Quote:
Originally Posted by Sketch
No, Dr. Posts have been removed. We are not doing the illegal file sharing stuff here.
whoops! didn't mean for anyone to upload anything that shouldn't have been. noticed my post is gone. that is not what i meant.
bbolte is offline   Reply With Quote
Old Jul 8, 2003, 16:24   #13
webstudio
SitePoint Member
 
Join Date: Apr 2003
Location: Argentina
Posts: 23
Neither Do I. So I apologize for the inconvenience. (Bu t I'm still reading it ^_^ )
webstudio is offline   Reply With Quote
Old Jul 8, 2003, 17:16   #14
Gybbyl
public static void brain
 
Gybbyl's Avatar
 
Join Date: Jun 2002
Location: Montana, USA
Posts: 650
Quote:
Originally Posted by Sketch
No, Dr. Posts have been removed. We are not doing the illegal file sharing stuff here
The Thinking in Java manuscript is free, isn't it? How would that be illegal? Or was Dr. Posts talking about a different book?
Gybbyl is offline   Reply With Quote
Old Jul 8, 2003, 20:09   #15
bbolte
Do or do not, there is no try
 
bbolte's Avatar
 
Join Date: Nov 2001
Location: The Central Plains
Posts: 3,230
Quote:
Originally Posted by Gybbyl
The Thinking in Java manuscript is free, isn't it? How would that be illegal? Or was Dr. Posts talking about a different book?
different book i believe...
bbolte is offline   Reply With Quote
Old Jul 9, 2003, 06:43   #16
Dr Livingston
Non-Member
 
Join Date: Jan 2003
Posts: 5,799
Although have a look at these books; and they're free for downloading

http://www.devarticles.com/free_prog...k_download.php
Dr Livingston is offline   Reply With Quote
Old Jul 9, 2003, 16:32   #17
HarryF
SitePoint Wizard
gold trophysilver trophy
 
Join Date: Nov 2000
Location: Switzerland
Posts: 2,906
Quote:
Having said that, currently reading his Thinking in Python where the intent is not really to teach Python but a new version of his Thinking in Patterns using a language that he believes is ideal for examples. I've only just got started but thanks to it being Python the patterns really speak for themselves.
Scratch Thinking in Python for the near future - it's still an early draft with numerous parts being simply copied from Thinking in (Java) Patterns. There's some areas where I strongly disagree as well, such as calling the Adapter pattern and the State pattern effectively "the same thing". To me Adapters and Proxies have parts in common but the State pattern, although perhaps containing adapters of sorts has a very different purpose.

There are some really nice examples of the Template method and Command pattern though.
HarryF is offline   Reply With Quote
Old Jul 19, 2003, 10:07   #18
Andy Tomaka
SitePoint Evangelist
 
Join Date: Jul 2001
Location: East Lansing, Michigan, USA
Posts: 435
I was just wondering how these books would apply to a more or less newbie to the topic at hand? I need a way to break into more advance OOP and patterns (which I really have no clue about).
Andy Tomaka is offline   Reply With Quote
Old Jul 19, 2003, 11:54   #19
bonk
SitePoint Zealot
 
Join Date: Jun 2003
Location: Middle / East TN
Posts: 127
I'm in the middle of the Refactoring book, it's quite good
bonk is offline   Reply With Quote
Old Jul 19, 2003, 15:05   #20
cosmo
lean mean coding machine
 
cosmo's Avatar
 
Join Date: Aug 2001
Location: the cosmos
Posts: 521
Quote:
Originally Posted by Andy Tomaka
I was just wondering how these books would apply to a more or less newbie to the topic at hand? I need a way to break into more advance OOP and patterns (which I really have no clue about).
The best way to break into advanced OOP is to really get down and dirty with the code itself.

The books above look great. I think, I am going to go for that Refactoring book.
cosmo is offline   Reply With Quote
Old Jul 19, 2003, 21:57   #21
Andy Tomaka
SitePoint Evangelist
 
Join Date: Jul 2001
Location: East Lansing, Michigan, USA
Posts: 435
It's not that I have a problem following the code around. I just need to get to the point where I can think to do it that way myself and what not. But I do realize that I lack some of the higher level concepts.
Andy Tomaka is offline   Reply With Quote
Old Jul 20, 2003, 02:02   #22
HarryF
SitePoint Wizard
gold trophysilver trophy
 
Join Date: Nov 2000
Location: Switzerland
Posts: 2,906
Quote:
But I do realize that I lack some of the higher level concepts.
Really they aren't such a big deal - just have big names. Patterns in particular are just expressions of what makes "good practice". By reading about other people ideas on what makes good practice, you can save yourself a whole lot of time.

Probably best place to start is this book;

Quote:
3) Patterns of Enterprise Application Architecture (Martin Fowler with contributions).
Although that sounds pretty heavy reading, the subject matter is very relevant to the area where PHP is often used and there's a bunch of good stuff to help with how you design / structure your apps.
HarryF is offline   Reply With Quote
Old Jul 20, 2003, 07:35   #23
Andy Tomaka
SitePoint Evangelist
 
Join Date: Jul 2001
Location: East Lansing, Michigan, USA
Posts: 435
Alright Harry. That's what I was looking to hear I'll have to try to get ahold of that book ASAP.

Thanks a lot for your suggestions everyone!
Andy Tomaka is offline   Reply With Quote
Old Jul 20, 2003, 11:21   #24
coo_t2
Non-Member
 
coo_t2's Avatar
 
Join Date: Feb 2003
Location: Dog Street
Posts: 1,823
[ OFF TOPIC ]
This may be a bit off topic but I have to recommend a book to any OOP newbies reading this thread. "The Object Oriented Thought Process" was recommend by Codezilla in a thread a few months back.
I read it in a few days, and have to say pound for pound it's probably one of the
best technical books I've read (it's not a big book).
It only really deals the fundamentals of OOP, but it does it in a very easy to understand way.
This book may serve as a good stepping stone to more advanced books, such as the ones being discussed in this thread.

--ed
coo_t2 is offline   Reply With Quote
Old Jul 20, 2003, 11:35   #25
PHP John
if($awake){code();}
 
PHP John's Avatar
 
Join Date: Jul 2002
Location: Along the Wasatch Fault line.
Posts: 1,718
What about Agile Software Development, Principles, Patterns, and Practices ?

http://www.amazon.com/exec/obidos/tg...me&start-at=11

It has recieved rave reviews on Amazon, but I'm wondering if The Object Primer would be better to start with?
PHP John is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread | Next Thread »

Thread Tools
Display Modes

 
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Sponsored Links
 
Forum Jump


All times are GMT -7. The time now is 01:42.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Copyright 1998-2009, SitePoint Pty Ltd. All Rights Reserved