Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Design Patterns

timothy posted more than 11 years ago | from the tabs-slots-and-things-far-more-complex dept.

Programming 314

BShive writes "Design Patterns is considered a classic for anyone in software development. The beginning third of the book is a solid introduction to patterns, while the last two thirds of the book is devoted to the patterns themselves. Many of the professionals out there probably already own a well-used copy of this book, but there are others who are wondering what all the fuss is about. The frequency of hearing about this text in discussions piqued my interest enough to buy it for myself. If you are interested in design patterns and are looking to use them, then this should be one of the books on your shelf." Read on for more.

Introduction

I found the entire introductory section excellent, and a good read. It covers what design patterns are and explains how they are documented and categorized. Advice on where and how to employ design patterns to achieve reusable and flexible software is also covered to give you an expectation of what you can get out of the rest of the book. The What, Why, and How are covered nicely. Even with little previous exposure to patterns, I was able to understand the presented material easily and begin to see the applications.
Object Modeling Technique (OMT) notation is also introduced to explain the diagrams associated with the patterns and examples. If you have used UML, the diagrams and notations will be familiar to you since UML is influenced by OMT. Jim Rumbaugh, the creator of OMT, collaborated with Grady Booch to create the first version of UML.

As the author notes, having a solid knowledge of OOP is critical to being able to understand and use the information presented. If you don't fully understand OOP, pick up an introductory text first. An Introduction to Object-Oriented Programming by Timothy A. Budd or any similar book will get you up to speed. However, you will get the most out of Design Patterns with hands-on OOP experience.

Case Study

This chapter presents a case study in designing a WYSIWYG document editor to demonstrate how design patterns can be applied. Most of the examples in the book involve the user interface and I would have liked to see less emphasis on UI models. However, it still gives the reader insight into real applications of patterns. Not only do the authors point out how the pattern applies to each case, but they also present the problems associated with the application. The case study is not intended to set up a perfect example of pattern usage, but to explore it. The reader could go further with the design presented and think about how to solve the flaws pointed out along with the ones that have not been discussed. I liked the fact that they do not attempt to state that there is only one way to solve the problems presented, or that their solutions are even the best way. Too many authors fall into this trap.

Presenting: The Patterns

The three chapters on patterns make up the bulk of the book. The patterns are separated out into the three chapters by type: Creational, Structural, and Behavioral. Each chapter begins with an overview of what the patterns of the type can be used for, and how the chapter deals with the patterns as a group. At the end of each chapter there is a discussion section that summarizes the patterns, along with guidance on how to select the right one from the chapter.

Each pattern description contains a number of sections: Intent, Also Known As, Motivation, Applicability, Structure (in OMT), Participants, Collaborations, Consequences, Implementation, Sample Code, Known Uses, and Related Patterns. The breakdown makes it easy to determine if, why, and how you should use the pattern. The authors are justifiably concerned about using the wrong pattern for a given situation. The code snippets are also easy to work through as long as you know an OOP language. C++ is commonly used, with the occasional bit of Smalltalk code.

The three chapters that detail each pattern would be difficult to read right through. However, the opening and closing section of each chapter has valuable information and is worth reading and subsequently referring to some of the patterns discussed. I got the most out of these chapters by picking patterns that might apply to current projects I was working with and then exploring one in depth, branching over into other patterns in a non-linear fashion.

Conclusion

The closing chapter is relatively short, but makes some important points. The authors discuss what to expect from design patterns, some history and other references/influences. Re-factoring is discussed and how patterns will help mitigate this unavoidable process as the software evolves. Other benefits are also brought up briefly. The book closes with an invitation to give the authors feedback and to find patterns that you use. The best designs will use many design patterns that dovetail and intertwine to produce a greater whole.

Book Extras

The whole book has a quality feel to it that is missing from many current texts that cost nearly twice as much. Inside the front cover there is a quick reference to all of the patterns contained in the book with a brief description and page number. The back cover also contains a quick reference for diagram notation and the relationships between the design patters. This is all topped off by two bookmark ribbons attached to the spine.

The Age Issue

Design Patterns was originally published in 1995, and the book mentions that the patterns it contains are little changed from 1992! In the computer field this would be considered an ancient text with how fast software is updated and languages change. Despite this, since the material is not entirely dependent on a particular language or program it holds up quite well. The examples referred to for each pattern are older software that many will not recognize. An updated version would be nice, but being old does not condemn this book to being useless.

Summary

This is an excellent book even if it is beginning to show its age. The fact that it's still very useful is testimony to the quality of the material. A few readers might find the reading to be a bit dry, but the straightforward style was refreshing compared to some other texts. The authors stay focused on the topic and condense it appropriately without going off onto long tangents. Once I've followed through with applying some patterns to projects it might garner an even higher rating. Just from reading about some of the patterns, I could see how they could have applied to previous projects I've worked on, both large and small. The book was certainly a worthwhile investment. If a second version of this book ever comes out, I'd be sure to pick it up as well.

Chapters:


1. Introduction
2. A Case Study: Designing a Document Editor
3. Creational Patterns
4. Structural Patterns
5. Behavioral Patterns
6. Conclusion

Appendix:
A. Glossary
B. Guide to Notation
C. Foundation Classes


You can purchase Design Patterns from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

cancel ×

314 comments

Sorry! There are no comments related to the filter you selected.

Subway - eat fresh!!! (-1)

Trolling Stones (587878) | more than 11 years ago | (#4599530)

At subway, you get a sub prepared anyway you like, by the friendly, efficient staff. Choose from mouth-watering veggies, succulent meats and cheeses, and a variety of freshly-baked bread. Why not stop in today and pick up some subs for the whole family to enjoy. I suggest the Italian BMT, piled high with genoa salami, pepperoni, ham, and provolone cheese. Top it with lettuce, tomato, onion, and pickles, add a few spritzes of italian dressing and you've got a meal fit for king. Subway: eat fresh!

g to the oatse
c to the izzex
fo shizzle my nizzle click here [jareddispatch.com] (note: the site is currently down. I expect it to come back online around Thanksgiving) to dispatch Jared and his formerly overweight goons to crack down on Subway if they don't honor the $3.49 Troll Tuesday deal. Make sure you provide the store number and address. Mine is store number 5839. Don't believe me about the concept of the jared dispatch? Yahoo has an article about it here [yahoo.com] , although it is pretty light on the details.

Note: I've gotten a few comments that the link to Jared Dispatch doesn't work. I think the site got taken down because of abuse of the service. Although the site got taken down, I still highly reccomend Subway and their high quality subs. To show my appreciation, here is a link to Free Subway Coupons. I had to redirect it through Yahoo's site redirector, because my of the filter at work. Anyways, here is the link! [yahoo.com]

Note 2: I've received word that those links to yahoo actually point to goatse.cx. I am truly sorry about that, and I found the cause. A couple weeks ago, a hacker broke into yahoo and set up some scripts that redirect the user to goatse.cx if a file is in a certain directory. I accidentally tried to access a file in one of those haunted directories. I fixed the links (I have a cousin who works at yahoo), so they should bring you to the actual sites now, not goatse.cx. Update 10/28: The hacker, or should I say hax0r [mailto] , actually has posted a page on yahoo on how he did it and how the goatse redirector works. It's a very good read. I suggest reading it soon before yahoo finds out about it and takes it down. Check it out ASAP [yahoo.com] !
Note 3: I am working on locating the articles using google's cache. It is taking some time because I don't remember the exact titles. However, I hope to have the links fixed and working very soon. Keep eating at Subway in the meantime, and request that they bring back the jalepeno cheese roll. It is a fanscrumptiously brilliant roll.
Note 4: To all those who think that sub is an incorrect term, I live in upstate NY, and we call it a sub here. There are no hoagies, grinders, po'boys, footlongs, heroes, or any other made up names. It's not hoagieway after all, its Subway.
Important: It is my duty to report to you, loyal low-threshold readers, of a very disturbing incident that happened to me last week. I went into subway at the normal lunch time, but instead of the standard line out the door, the restaurant was vacant. Normally, the queue doesn't concern me, since the crew knows enough to make me a footlong Italian BMT with my standard fixin's and have it ready at 11:30 sharp, on tuesdays. I approached the counter casually, when two bulky men appeared from each side of the potato chip display rack. They held me down, and Jared appeared from behind the counter. He took my preprepared footlong BMT and cracked an evil grin. The manager grabbed the bottle of italian dressing and lubed up my general ass area. Jared shoved the footlong Italian BMT repeatedly into my ass, mixing it with the chucks of feces that were in my bowels, until the fresh crisp veggies resembled brown spoiled food. I begged him to stop, but little did I know the torture waiting for me. He took the italian dressing, and squirted it into my pee hole. Now, it burns when I pee, and it hurts when I sit. I asked him why he was doing this, and he said that they had tracked me down for my abuse of the Jared Dispatch system. You see, Jared gets airsick, and his constant flying over the country has caused him to lose weight due to his vomiting on planes. Normally, this loss of weight would be a good thing, but Subway can't actually claim that he lost weight by eating Subway subs. They told him to put the weight back on and then lose it again by eating subs, somthing Jared does not want to do. As a result, they are the ones who closed down Jared Dispatch [jareddispatch.com] . I am begging you, loyal readers DON'T GO TO JARED DISPATCH [yahoo.com] ANY MORE. Thank you for your time. I have to go to Subway now, and tell them that I want less italian dressing on my footlong Italian BMT. Remember, if you don't eat at subway, then the terrorists win!

Banana republicans run amok! (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#4599703)

Two years after Jeb Bush stole the election for his brother, and now he's blatently at it again [drudgereport.com] ! I can't believe how bald-faced this guy is in rigging the election! He makes it look like the South Florida voters are to senile and stupid to cast their votes. The only thing they've done wrong is not to run this bozo out of the state on a rail!

Since the author didnt mention it... (2, Insightful)

josh crawley (537561) | more than 11 years ago | (#4599536)

Is this book worthy of my money or is it antiquated piece of shit? The author of this review didn't include any sort of this question.

I have only limited funds, and I cant afford something that wont help me. So... all those who bought it, is it WORTH IT?

Thanks.

Re:Since the author didnt mention it... (5, Informative)

Anonymous Coward | more than 11 years ago | (#4599570)

Get it if you can afford it. If not, try to find a second hand copy. Failing that there is plenty of resources on patterns on the net:

Bruce Eckel has one in development available here:
http://www.mindview.net/Books/TIPatterns/

There are other places too:
http://www.csc.calpoly.edu/~dbutler/tutorial s/wint er96/patterns/

See what Google brings up for you.

Re:Since the author didnt mention it... (5, Insightful)

Vengeance (46019) | more than 11 years ago | (#4599574)

Damn straight it's worth it.

As a developer, this book helps you to codify some concepts you've already got in your head, so you can latch onto them and understand them better. Patterns are applicable at every level, from little 20 and 50 line modules up to arbitrarily large systems. Get this book, or one based upon it that uses the language of your preference.

Re:Since the author didnt mention it... (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#4599582)

How's a link to a comment of THIS article offtopic (0)

Anonymous Coward | more than 11 years ago | (#4599648)

wtf?

Re:Since the author didnt mention it... (5, Informative)

johnbr (559529) | more than 11 years ago | (#4599586)

Design Patterns is an extremely valuable reference book. It uses C++ examples, but in almost all cases these can be translated into Java (which is the only other language I use regularly right now).


It suffers from an overdependence on GUI-based descriptions, which were difficult for me to absorb, given my back-end system focus. However, every few weeks or months something will fall into place and I'll suddenly get the usage of one of the patterns that I didn't understand before.


Patterns are a great "show off" tool - useful to intimidate those who haven't learned about them yet. Since you'll be on the intimidatee side until you read it, it is good to have a copy for that reason as well.


Some of the patterns are easy to understand and easy to use - Singleton and Observer. Others take more time before you "get it", and many you may never learn, nor need to.


But all in all, I think you'll feel smarter for having read it (even if you only "get" pieces of it), and it will probably help your architectural sophistication, and might even present a handy solution to a frustrating design problem.

Re:Since the author didnt mention it... (1)

MisanthropicProggram (597526) | more than 11 years ago | (#4599596)

Yes, it's worth it. Not only did it help me understand OOP better, but it also helped me understand the STL's design and how to use it more effectively. It helped make me a better designer too.

Re:Since the author didnt mention it... (1)

diverscuba023 (615113) | more than 11 years ago | (#4599622)

I'm glad that I bought it. Its been a life saver many times along with Fowler's book on Refactoring it is one of my most frequently referenced books. even more so now that I'm teaching instead of programming :

Re:Since the author didnt mention it... (3, Informative)

rmolehusband (192640) | more than 11 years ago | (#4599623)

Is this book worthy of my money or is it antiquated piece of shit? The author of this review didn't include any sort of this question.

That's kind of subjective, one man's 'must have' is another man's 'antiquated piece of shit', so it's always a tricky proposition to make such a sweeping generalisation in a review.

On the other hand, you should be able to get a flavour of the book from the review and decide if it's something you *might* be interestd in. Then you spend and hour or two in your local bookstore (remember them?) reading and deciding for yourself - which, having never come across the book before and having had my interest roused, is what I'll probably end up doing.

Re:Since the author didnt mention it... (3, Interesting)

Anonymous Coward | more than 11 years ago | (#4599728)

This is the most inspirational book I have ever read for OO programming. There is no competition. When you read this, you will understand how to programm OO well. In addition, much of Java's libraries are based on patterns, so I say this is a must-read for anyone who wants to learn how to write quality Java code and also understand the Java libraries. The same probably goes for C# since that is Java in sheep's clothing. ;)

If you like this book, I also recommend trying to find the (free!) whitepapers from Taligent about object-oriented frameworks. They may be hard to find since Taligent is long gone, but I am sure there is a copy on the net somewhere. They did go off on tangents at times, but they are still worth reading. (I believe some of the people who wrote this book were also on Taligent's research team.)

I used both works quite a bit in my undergrad thesis [tripod.com] . Though without this book's inspiration, the thesis would have likely not come to be.

Re:Since the author didnt mention it... (1)

sprior (249994) | more than 11 years ago | (#4599734)

In some circles it is simply becomming required reading and may be worth your money for that reason alone. I was once asked in an interview to rough out an OO design for the project they would be hiring me for. I quickly came up with a design which was good and based on patterns in my head based on my experience. Then the interviewer asked me what patterns I could see in my design and because I hadn't read the book yet I didn't have the proper lingo to feed back to him even though my patterns matched the books patterns very closely.


I thought the introduction of the book was pretty good and the book overall is very good. My only ccomplaint is that the book suffers a bit from the kind of writing you'd see in a Phd thesis - it takes itself a bit too seriously and uses dense language just for the sake of sounding lofty.

Re:Since the author didnt mention it... (1, Informative)

Anonymous Coward | more than 11 years ago | (#4599793)

It's good but there are lots of places on the web that provide similar information.

I'd recommend reading it more than buying it; if your experience is similar to mine then you will probably end up going through it once or twice, thinking "ah, I used that in such and such a design", use it as a reference once or twice and then leave the book sitting on a shelf gathering dust. It has changed the way I design systems (for the better) but I also found that it was quicker to build up an overall understanding of unknown code written using patterns, simply by spotting where they're used.

There's a lot of information in the wiki at www.c2.com; it's probably useful to read:

http://www.c2.com/cgi/wiki?PatternsForBeginners [c2.com] provides a reasonable introduction.
http://www.c2.com/cgi/wiki?DesignPatternsConsidere dHarmful [c2.com]

The patterns themselves can be dangerous, as I've found myself on some occasions, as they foster a detachment from the implementation details. There is a tendency to knock out code quickly because you know the design well, but the resulting code contains subtle flaws that aren't considered in the GOF book.

Alexandrescu's book, Modern C++ Design, discusses the implementation of factory patterns, visitor and singleton, which is regarded as being one of the simplest patterns to understand but hard to implement well. Apparently one of the authors of the GOF book once stated that he wished singleton had not been included in the book.

For interest, perhaps look at [c2.com]
http://c2.com/cgi/wiki?SingletonsAreEvil

It's worth buying if you can't find a copy to read and you have the spare cash at some point, simply because it can be hard to find information on some of the less used patterns in the book on the internet.

Hope this rambling is useful.

Re:Since the author didnt mention it... (2)

demultiplexer (515794) | more than 11 years ago | (#4599800)

It may be the first and oldest (software) pattern book around, but it still is the very best I've read. Consider this. The book introduces 23 patterns. In the ten years elapsed since its appearance, perhaps half a dozen more patterns have been formulated that can hold their own beside them. Others are derivative, have a very specific application domain, or are about something entirely different altogether (from XML patterns through organisational patterns to anti-patterns).

If you'd write the book today, you would probably use different programming languages but really, the concepts may be complex but the examples aren't. If you are proficient in one or two modern OO languages I doubt you'll have a hard time deciphering them.

Treat yourself. Buy the book. Keep it in your bag and next to your bed. It will stretch your mind, clear up your thinking, and give you a new vocabulary.

- Peter

read the first chapter at the book store. (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#4599813)

The book is OK, but OUT OF DATE.

GO to the book store and read the first chapter.

The rest of it is a catelog of OLD ideas (that are in use and you probably already know them)

What the book presented was a methodology to present ideas in a comman format.

Better is WORKING CODE.

It was part of the OO fad that proved to be a lot of crap in the end. I have a copy of it and I read the first chapter, thought it was cool, documented my ideas with its methodology, but in the end the only thing that anyone cares about is WORKING CODE.

I will never look at my 'patterns' again. I will resurect my working code.

Don't waste your time documenting ideas when you need to get your stuff to do something real.

Most documents like the design patterns documents are thrown in the recycle bin.

If you want docs, then make working code and then parse out the class definitions with a grep.

If you really want that.

I don't, I want software that runs and does something real. documents don't do anything but appease managers who can't code anyway.

If you need to document your stuff use header files.

Re:read the first chapter at the book store. (1, Insightful)

Anonymous Coward | more than 11 years ago | (#4599930)

I don't, I want software that runs and does something real. documents don't do anything but appease managers who can't code anyway. If you need to document your stuff use header files.


You sir, should be beaten soundly with a nice big thick document. As a sysadmin I cannot recall how many times I've run across mindless fecal matter such as yourself. Documentation is a key element in any piece of software, be it a shell script or a complex application. It gives maintainers something to look at to get up to speed and provides everyone who uses your software a reference from where they can start.

If you want to be an elitist prick who sits in a cubicle all day and writes code. Fine. Just remember that nobody in your office actually likes you and they all talk about what a prick you are behind your back. After a few years you will wonder why people who are your junior are now managing you. Keep pondering that and eventually you might become enlightened.

Good day.

Re:Since the author didnt mention it... (1)

Ripplet (591094) | more than 11 years ago | (#4599934)

Absolutely it's worth it, this is my most used reference book, yes even more than my Stroustrup. I have saved myself a lot of time and effort by using some of these patterns, you can probably get the same benefit.

Designing Patents ?? (3, Funny)

StefMeister (219044) | more than 11 years ago | (#4599539)

For a second there I thought it said designing patents. I guess that's what happens when you spend more time reading /. than doing your actual programming work. :)

Learn from the masters (5, Informative)

Anonymous Coward | more than 11 years ago | (#4599543)

This book IS the definitive word on the use of patterns, I have used it and will vouch for it.

However, for all the knowledge it contains it has a price tag to match. If you can get it used and cheap, do so.

AC

Re:Learn from the masters (2)

back_pages (600753) | more than 11 years ago | (#4599671)

"To anonymously vouch or not to anonymously vouch, the value of this is in question."

Re:Learn from the masters (2)

baywulf (214371) | more than 11 years ago | (#4599672)

Okay if an anonymous coward vouches for it then it is settled. I'll go buy the book right now.

Re:Learn from the masters (0)

viggen (620157) | more than 11 years ago | (#4599675)

You get a cheap copy here [amazon.com]

Me, too (4, Interesting)

Gruneun (261463) | more than 11 years ago | (#4599774)

I'll vouch for the book. It was one of the textbooks from a Programming Languages and Paradigms class that I took. The first 2/3 of the class was advanced Java topics, but it became significantly more interesting when we dove into design patterns.

Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, a.k.a. The Gang of Four, did an excellent job. If you don't buy it, at least pick up a copy at Borders and skim it. You will be a better programmer for it.

Here's another good breakdown of the book [hillside.net]

Re:Learn from the masters (1, Redundant)

tswinzig (210999) | more than 11 years ago | (#4599784)

This book IS the definitive word on the use of patterns, I have used it and will vouch for it.

Well, if an AC is going to vouch for it, what else is there to say!

Nice to see /. as up to date as ever (0, Insightful)

Anonymous Coward | more than 11 years ago | (#4599555)

This book was published what, 8 years ago !

Nice to see /. at the leading edge as usual.

many professionals have well worn copies (1)

rot26 (240034) | more than 11 years ago | (#4599558)

Actually I sort of doubt that.

Re:many professionals have well worn copies (0)

Anonymous Coward | more than 11 years ago | (#4599637)

Why?

oh, fuck you tuesday (-1, Troll)

Anonymous Coward | more than 11 years ago | (#4599559)

you smelly bitch of a day

fuck you

i write good poetry

Not a very good book (-1, Troll)

Anonymous Coward | more than 11 years ago | (#4599563)

An "8". A lowly "8".

This book is well below "9", and therefore substandard.

Showing age... (-1, Troll)

natron 2.0 (615149) | more than 11 years ago | (#4599565)

I am trying to understand why anyone would want to re-publish and ancient tome in the history of computing/programming. If someone could answer this for me it would be appreciated.

Designing and Patterns (4, Funny)

CatWrangler (622292) | more than 11 years ago | (#4599566)

I have never seen a code monkey in a well designed patterned outfit. I wonder if this book will help at all.

history lessons.. (5, Insightful)

TechnoVooDooDaddy (470187) | more than 11 years ago | (#4599567)

hehe design patterns remind me of the quote "Those who do not learn from history are doomed to repeat it." or something like that...

if a problem has been solved, and well thought through, the pattern published and peer-reviewed, it probably will hold up for a good long while.

Next Up in the Obvious Category... (5, Funny)

GeekLife.com (84577) | more than 11 years ago | (#4599571)

Can we get a review of this site, slashdot.org I've heard so much about?

Sorry, I'd just thought everyone had heard about Design Patterns long ago. Seems a bit like publishing a book review on the KJV Bible or something.

Re:Next Up in the Obvious Category... (0)

Anonymous Coward | more than 11 years ago | (#4599658)

This was my reaction as well.

An anecdote: When I first started OOP, I was writing something and decided I needed an object that could only be instantiated once. So I hacked at it for a day or 2, and got that working, and I was feeling pretty clever.

A couple weeks later, I heard that this "Design Patterns" book was a must have. So I got it...and then read about this "Singleton" thing....doh!

Re:Next Up in the Obvious Category... (0)

Anonymous Coward | more than 11 years ago | (#4599659)

I agree, this doesn't seem like news, neither did that desktop/mobile CPU stuff yesterday. Come you guys are slipping here :)

Re:Next Up in the Obvious Category... (3, Insightful)

Dark Paladin (116525) | more than 11 years ago | (#4599690)

Considering that the book uses pieces that are over 7 years old in a world where technology changes every few months, this review was useful to me - it told me that the information was still useful, valid, and actually might help my programming skills.

So no, I don't believe it was obvious at all - considering that I hadn't even heard of the book until today. (Yes, let the flames commence - I must be a bad, awful programmer because I haven't read some book.)

Re:Next Up in the Obvious Category... (0)

Anonymous Coward | more than 11 years ago | (#4599792)

>the book uses pieces that are over 7 years

10 years, even! "Design Patterns was originally published in 1995, and the book mentions that the patterns it contains are little changed from 1992"

I`ve never heard of it either. I`m not sure where people get off being smart arse and `Oh, i heard about it years ago`. So what? Someone told you sooner, that's all. Get over it.

Re:Next Up in the Obvious Category... (2)

dalassa (204012) | more than 11 years ago | (#4599799)

This was one of the required texts for my intro to programming class and even though I've given up programming its one of two books I still find useful. The other being Introduction to Algorithms which I use as a doorjamb.

Re:Next Up in the Obvious Category... (2)

Phouk (118940) | more than 11 years ago | (#4599707)

I guess it's a repositioning of "Slashdot: News for Nerds" to "Slashdot: Stuff for People."

I'm just glad they have their target market so well defined.

Re:Next Up in the Obvious Category... (1)

archeopterix (594938) | more than 11 years ago | (#4599761)

Sorry, I'd just thought everyone had heard about Design Patterns long ago. Seems a bit like publishing a book review on the KJV Bible or something.
Yeah, this book is a classic, yet I find it hard to believe that it is under every developer's pillow. Take for example the Observer pattern or even better, Model-View-Presenter. Now take a look at any of the popular 'visual programming environments'. Try to find MVP, or even Observer. Separating model from view? The 'model' is scattered through hundreds of event handlers attached to controls (the 'view' part). Ok, if you try hard you can implement these patterns but it's far from natural. So, i'll repeat this: this book might be a classic, but IMHO it is too classic to get into some heads. Perhaps in a few years we'll hear of MVP as the ultra new approach to GUI building in a Slashdot ad.

Re:Next Up in the Obvious Category... (-1)

Anonymous Coward | more than 11 years ago | (#4599762)

What's the KJV Bible?

I've not heard of that language before?

Knuth, Jobs, VAX Bible?

Kernighan Join Venture Bible?

WTF are you talking about?

The only pattern you should know (-1, Troll)

Anonymous Coward | more than 11 years ago | (#4599576)

Yes! As seen on TV, the ultimate UML design pattern [tinyurl.com]

Classic Geek Book (1, Interesting)

Anonymous Coward | more than 11 years ago | (#4599585)

If you go into any room up in Waterloo and mention "Design Patterns", everybody in that rooms knows exactly what you're talking about. Its one of the Classic books around here. Expensive, runs about $75-$100 Canadian. Hard to find a used copy. And never in at the library.

Re:Classic Geek Book (2)

Abcd1234 (188840) | more than 11 years ago | (#4599931)

Bah, how's that expensive? I don't think I bought a text in University CompSci that wasn't at least $80, and I have a few that were in the $115-$130 range...

Re:Classic Geek Book (2)

gpinzone (531794) | more than 11 years ago | (#4599973)

Always compare prices before buying books. Here's a listing of the lowest prices [addall.com] from Addall.com.

a great, but dangerous, idea (5, Insightful)

ashultz (141393) | more than 11 years ago | (#4599588)

This book is pretty great. It's also pretty dangerous, I've heard of idiots who rate the quality of any potential design by how many patterns it has in it.

Design patterns is important for every OO programmer to read, understand, and hopefully transcend.

Overdesigning (1)

archeopterix (594938) | more than 11 years ago | (#4599643)

This book is pretty great. It's also pretty dangerous, I've heard of idiots who rate the quality of any potential design by how many patterns it has in it.
Yeah, keep it out of reach of your Pointy Haired Boss. It hasn't been proven but it's a scientific fact that reading this book was the direct cause of Skinnable Interfaces - the top 20th century misfeature.

Beware of overusing patterns. (5, Interesting)

taeric (204033) | more than 11 years ago | (#4599597)

Maybe overusing isn't the correct term, but definitely blindly using. I have seen far too many times (in far too short a time) where people will just start tossing in as many "patterns" as they can.

Sometimes, as if to really horrify me, the reasons for including a pattern are to appease a manager!! This really frightens me, as the patterns are not discussed at the planning stage, but as an afterthought to implementation.

Which brings me to a question. I have always viewed design patterns to be something that are used during the planning phase of a project. All too often, I am seeing where people start trying to shoehorn a design pattern into a project because they just heard about how great of a job it does at something. Does this happen elsewhere, or just with the projects I see?

Re:Beware of overusing patterns. (2)

fruey (563914) | more than 11 years ago | (#4599680)

Of course. I once had a client, after a project was finished and in management validation for going public, suddenly go to www.commentcamarche.com or equivalent (www.howstuffworks.com is the anglophone site of similar nature) and pick up something about quality control and project management and suddenly start changing everything, including our reports, into terminology and methods he'd read the night before. A nightmare, since everything had *already* been managed reasonably and was working to boot!

Re:Beware of overusing patterns. (2)

dnoyeb (547705) | more than 11 years ago | (#4599757)

This usually happens when management changes.

Re:Beware of overusing patterns. (2)

Viking Coder (102287) | more than 11 years ago | (#4599837)

I have always viewed design patterns to be something that are used during the planning phase of a project. (Emphasis added.)

Design and planning are partners in crime. Trying to use design patterns "as an afterthought to implementation" is a really bad idea.

I really laughed when I read your post, because I imagined another book, "Kludge Patterns." When you're well past the design phase on your application, and the damned thing doesn't work, abandon Design Patterns and riffle through the pages of Kludge Patterns looking for some clever hack that can save the day... =)

Great book, goes well with .... (3, Insightful)

goodviking (71533) | more than 11 years ago | (#4599610)

This is a fantastic book. It is probably the best book out there for coverage of all of the fundamental design patterns. The examples are in Smalltalk and C++, and are readable and easily translatable to other OO langs (Java, C#, ...).

I would recommend that along with this book, you take a look at Pattern-Oriented System Architecture [barnesandnoble.com] . It applies the design pattern concept to problems in large scale system architectures.

A combination of the techniques in both of these books can really help unwind alot of the spaghetti problems at both a system and component level. Additionally, alot of the fundamental concepts in modern system architectures become alot clearer once you've read both.

Re:Great book, goes well with .... (1)

psychofox (92356) | more than 11 years ago | (#4599668)

No wonder you'd recommend it... probably because you'll get a referal fee for each person who buys it after clinking on the handy link you've supplied.

No pattern experience required (5, Interesting)

cheezfreek (517446) | more than 11 years ago | (#4599613)

Even with little previous exposure to patterns, I was able to understand the presented material easily and begin to see the applications.

Even with no exposure to patterns, I was easily able to understand this book. This book was my first exposure to patterns, and I don't think I could have had a better introduction to the subject. I highly recommend this book to anyone who knows anything about object-oriented design.

ya, a freshman in highschool should breeze this (0)

Anonymous Coward | more than 11 years ago | (#4599726)

good book for a highschool programmer to breeze through in a few minutes.

Better, start cutting code and see what actually works. Pretty headers and large fonts with the name of some trivial idea don't cut it in my world.

I want CODE that WORKS. Not some big thick and EXPENSIVE book.

I do like this book, but be honest, it is OUT OF DATE and NOT cutting edge at all.

I have this great book (-1, Troll)

Anonymous Coward | more than 11 years ago | (#4599626)

Called "The C++ Programming Language" by Stroustrup. We gonna review that one as well?

While we are at it we can review some Richard Stevens books like "Advanced Programming in the UNIX Environment" and the Sockets Trilogy.

Really... Why do we care about books that are older than dirt with thousands of people already saying buy this book. Show me something that I haven't heard of from a brillant, upcoming author.

Only shit coders read books like this (0, Troll)

Viol8 (599362) | more than 11 years ago | (#4599627)

The sort of people who read these books are the sort who normally couldn't code their way out of a paper bag. Ask them to write a low level device driver or network protocol and they'll piss their pants , but ask them to write some high level description of some GUI front end using as many buzzwords as they can shoehorn into the design document and they're in their element. And this is one of the books they'd have sitting on their shelf. Its a comfort blanket for people who kid themselves they're programmers but in reality are designers who should never be let near any C++ compiler. Is it any wonder with modern day management trumpeting this kind of rubbish that afar greater percentage of IT projects overrun, are overbudget and don't meet the spec than ever before?

Re:Only shit coders read books like this (3, Insightful)

Anonymous Coward | more than 11 years ago | (#4599903)

uh, no. Authors of C++ device drivers are not the only "real" coders. I've risen far up the ranks in my career writing database apps with quality, intuitive front ends. My apps are well-designed, have few bugs, and solve numerous tasks that could not have been solved before I wrote them. The end users love me, and I'm well-compensated for what I do. I currently could not (nor wish to) write a low-level C++ device driver. Bleah.

Anyway, if you've got to write a low-level device driver, why are you using C++ at all? Get down to assembly level and do it right!

There are different types of problems out there that need solving. This book addresses ways of solving many of them.

Who Actually USES These Patterns? (2, Interesting)

sqlzealot (553596) | more than 11 years ago | (#4599632)

When I was taking CE courses design I was fascinated by the Design Patterns book. I thought it would take OOD concepts one step further and offer a new framework for software development. I went out and bought the book, and while it was very interesting, I never really thought that I would be in a position where I could use any of the patterns.

They seem overly complex, and although they try to be general, I can't imagine that they could be easily adapted to any but a few (large) software projects. I don't have enough good examples, but I get the feeling that every major software project will come up with its own "design patterns", and they probably bear little resemblance to the ones in the book (and will be a lot simpler as well). My wife likes them, and she thinks that they provide a common vocabulary for developers to use in developing their own patterns, although I am not convinced.

What has been the experience of /.ers who actually use this book in their (non-educational) software development projects?

Re:Who Actually USES These Patterns? (0)

Viol8 (599362) | more than 11 years ago | (#4599667)

Virtually no one. I've been in the industry 10 years in banking and the scientific fields and I've yet to see any real programmers using this sort of stuff. Its written for ivory tower academics and students mainly.

Re:Who Actually USES These Patterns? (0)

Anonymous Coward | more than 11 years ago | (#4599721)

Wow - I pity the people who have to maintain your code! People who want to write clear, maintainable, functioanl code quickly use patterns all the time in "the real world". People who want to write crud, don't.

Re:Who Actually USES These Patterns? (0)

Viol8 (599362) | more than 11 years ago | (#4599824)

Yeah , I'm sure Linus used patterns all the time when he was writing that "crud" known as the Linux kernel. Hello , this is earth calling , come in please Major Tom...

Re:Who Actually USES These Patterns? (3, Insightful)

tequesta (442108) | more than 11 years ago | (#4599785)

Banking and Scientific Computing are hardly leading innovators when it comes to software design (COBOL, anyone? FORTRAN, anyone?) But apart from that, it is my firm belief that any programmer worth her/his wages uses patterns. They may not be the actual patterns portrayed in the Gamma book, but they're patterns nonetheless.

The main good thing about this book is not that it lists a lot of patterns, but rather that it teaches you what a pattern is. This is truly a mind-altering experience. Once you grok the concept, you see patterns pop up all over your own code! Then you can extract and refine their specialties, encapsulate them and re-use them again and again.

This, besides saving you a shitload of future work, teaches you entirely new ways of thinking about object-oriented programming. I've talked to a lot of people who found that reading this book is truly a mind-blowing experience in that respect. Certainly changed my coding.

And the specific patterns in the book are kind of cool, too.

Re:Who Actually USES These Patterns? (0)

Viol8 (599362) | more than 11 years ago | (#4599856)

Actually we use C++ and Java at my current place , plus genetic algorithms. If any programmer was clueless enough that he needed to read a book like this before he could write decent code then we wouldn't hire him. We want people who can think for themselves , not just regurgitate what they've read in some Dummies Guide to Software Design type book.

Re:Who Actually USES These Patterns? (0)

gandalfy (199145) | more than 11 years ago | (#4599986)


Who reads books anyway?

Let's re-invent the wheel!

Re:Who Actually USES These Patterns? (1)

pamar (538061) | more than 11 years ago | (#4599826)

Virtually no one. I've been in the industry 10 years in banking and the scientific fields and I've yet to see any real programmers using this sort of stuff. Its written for ivory tower academics and students mainly.

I suppose you should qualify your experience a little better, before issuing such opinions. I suspect that you either use non-Object Oriented languages, or have failed to recognize some of the solutions you encountered as a classic pattern.

If you do work with OO tools and a DB, I really doubt you never used at least a couple of the basic patterns (especially Singleton).

Re:Who Actually USES These Patterns? (1)

cmpalmer (234347) | more than 11 years ago | (#4599975)

Just reading the book gave us not only insights into new methods but also terminology to talk about what we had been doing all along.

Our company does a lot of development in VB (boo hiss? bite me, we like it) and we consciously apply many Design Patterns in our software.

Re:Who Actually USES These Patterns? (5, Informative)

Vengeance (46019) | more than 11 years ago | (#4599702)

I use patterns on a regular basis, at many levels of code. The best description I've seen for why we want to use design patterns actually came across my desk this morning. If two woodworkers wish to describe joining two pieces of wood together for the front and the side of a drawer, they COULD, I suppose, discuss cutting a certain length, turning at a certain angle, cutting another length, turning the other way again, etc. etc. ad nauseum. OR, they can simply indicate that they want to use 3/8"-wide through dovetails.... Concise, and providing just as much information to the informed. What happens is that there is meta-information underneath the words being used, conveying more than the casual observer might catch. When discussing whether to use one pattern or another, it's akin to deciding whether you wish to use dovetail or mitre jointing for that corner. When you write code, you're already using patterns behind the scenes anyway. It's nice to know what you're doing, and it's REALLY nice to have a shared vocabulary for this stuff.

Re:Who Actually USES These Patterns? (5, Informative)

oops (41598) | more than 11 years ago | (#4599716)

Any good OO programmer/architect I know will speak in terms of patterns. eg. conversations I had yesterday went like:

Can't you use a singleton here ?


or

Perhaps we need a strategy mechanism

and so on / so forth. As soon as people talk in terms of patterns, they're talking at a level of abstraction above basic objects, and at a level where you're talking about object construction and interactions. Whenever I see someone's CV claim to have knowledge of OO, pattern knowledge is the next thing I look for. It means that we can talk in common terminology and have a common 'toolbox' of solutions to use.

Re:Who Actually USES These Patterns? (1)

brw215 (601732) | more than 11 years ago | (#4599718)

I am developer in industry who works building large OO systems, and we use many of the design patterns listed in the book. Some are more useful then others, but many of them are invaluable. These patterns provide a basis for using OOP to solve common problems, such as isolating subclasses etc....

I wonder if the developer who responded to your list has ever used an OO language in industry, because I can tell you that the majority of professional developers I know all have this book on their shelves.

Re:Who Actually USES These Patterns? (1)

SquirrelCrack (522382) | more than 11 years ago | (#4599735)

The only one I see in regular use is the Model View Controller pattern.
This is used pretty heavily (at least in the early phases of the project) by many larger java appserver based web projects.

One of the problems that happens with real world projects, is scope creep. As the project outgrows the original requirements, programmers are more likely to hack outside of the architecture originally laid out.
As a result many patterns that are laid out at the beginning of a project are poorly (or not at all) used by the end of the project.

Re:Who Actually USES These Patterns? (2)

wurp (51446) | more than 11 years ago | (#4599737)

As a C++ and Java developer (7 years dev experience), I use several of the patterns very frequently. In order of usefulness in my career:

Composite pattern
Iterator!! (used in STL and Java Collections)
Singleton
Proxy (used implicitly in Java RMI)
Prototype factory
Adapter
Observer (Java listeners, document-view architecture)
Template method (used basically any time you do polymorphism)
Decorator

I'm astounded that people with OO design experience who've read the book can claim that they don't use the patterns! Several of the patterns are more esoteric, but I would have to say I have used virtually every pattern in the book at one time or another.

Re:Who Actually USES These Patterns? (1)

Ripplet (591094) | more than 11 years ago | (#4599879)

I have used these on many projects (admittedly mostly large ones). For a lot of common design problems, you simply need to look in the book and there is your answer. It is now second nature to me to use, for example, factories for creating families of objects where the end client doesn't actually need to know the concrete type of object it is using.
There are some patterns, or derivatives thereof, that are found on nearly every project I have worked on in the last five years, e.g. singleton, observer.

It's important to remember that the authors stress that these are not designs that you might think of the first time you go through a problem, especially if you are relatively new to OO. Therefore what may seem a strange design at first, may suddenly click into place when you really analyse it in the context of your particular problem.

It's basically a case of "suck it and see". If you have a problem, check out the book to see if it's helpful.

>every major software project will come up with its own "design patterns"
This is true, but every major software project will also come up with similar problems to a lot of other major software projects. That is where this book helps.

Re:Who Actually USES These Patterns? (1)

Houdini91 (588691) | more than 11 years ago | (#4599894)

I went out and bought the book, and while it was very interesting, I never really thought that I would be in a position where I could use any of the patterns

How can any programmer state they were never in a position to use any of the patterns described in Design Patterns?

Have you ever made an instance of a class global? Then you could have used the Singleton Pattern to avoid polluting the global namespace while giving your program more control.

Or ever wanted to make something cross platform? The Bridge Pattern is the perfect choice.

Did you ever wish C++ supported class member callbacks? Then use the Command Pattern.

Have you ever used the STL? Then I'm sure you've probably used the Iterator Pattern.

Have you ever wished your application supported plugins to allow your users to enhance your application? The Abstract Factory + Bridge Pattern works wonders.

Heck, if you've ever worked with any populer GUI toolkit (QT, MFC, etc) then you've already used the Observer Pattern (a derivitive of the MVC Pattern).

Design Patterns is an absolute gem of a book for writing object oriented programs.


- Houdini

Everyone actually uses these patterns (2)

StrawberryFrog (67065) | more than 11 years ago | (#4599926)

but I get the feeling that every major software project will come up with its own "design patterns", and they probably bear little resemblance to the ones in the book

The design pattersn book contains 23 patterns. It is a sign of it's greatness that since then, patterns have become a hot topic, but no-one has been able to produce a list of another 23 generic patterns as widely applicable.

In other words: You're wrong. They got most of them.

Having said that, some of these 23 are more common than others. Particularly I have coded/seen/used these ones: Abstract factory, Factory method, Singleton, Adapter, Proxy, Iterator, Observer, Visitor.

The most common of these are becoming ubquitous. Have you never used a single instance of a global var? that's a singleton, almost, and it's a good idea to go the whole hog and enforce uniqueness. Most langauges handle DB recordsets with an iterator or something very like it. Event multicast is the observer pattern.

It is possible to overuse/abuse patterns. I've seen code where a 'designer' has latched onto the 'abstract factory' pattern and used it as a 'golden hammer' (See Antipatterns - another fine book mentioned in other posts here)

this book is out of date (0)

Anonymous Coward | more than 11 years ago | (#4599635)

Most of the stuff in the design patterns book was interesting to look at 5 years ago when the book first came out.

You would be better off now to read through the JAVA class documents.

Design Patterns that are published in a book like that lag the real practices of the software industry by many years.

Folks who work in software lead the industry, they don't live in the publishing houses or in the ivy covered hallways of money mongering corporate universitys.

Ya, That book was cool a few years ago. Now it is OUT OF DATE. Don't pay full price for that one.

Important point that the review might have missed. (5, Informative)

eddy (18759) | more than 11 years ago | (#4599644)

What the review missed to point out (okay, I only gave it a once over..) is one very important aspect about patterns and this book in particular; it gives developer a new common language to use when communicating about software design.

For instance, you might have 're-discovered' the visitor pattern yourself and used it several times, but without the nomenclature of this book it was very hard to actually talk about that design with other developers.

Great book, one of few that - after reading it - got me all exited about development again.

ya, I couldn't talk till I saw that book (2, Interesting)

Anonymous Coward | more than 11 years ago | (#4599688)

Most of that stuff in that book is trivial.

Anyone who does real development was using these patterns years before the book came out.

Books like these are catelogs of other people's ideas and put into a standard format. It is like saying that noone could breath oxygen before the perodic table of the elements came out. Obviously oxygen was around for ever. The patterns in this book are DESCRIPTIONS of other peoples work. It was the method of presenting the ideas that seemed new at the time.

But when it comes right down to it JAVA or C++ classes do a much better job of documenting good design patterns for programming.

The idea of Design Patterns is probably something developed by patent mongerers. They take very simple and trivial ideas and make them seem important by putting them in a common format. Big deal.

You'd be better off reading working code than wasting your time on a five year old book that documents 15 year old ideas.

antipatterns (5, Informative)

Aniquel (151133) | more than 11 years ago | (#4599653)

If you read Design Patterns, the next book to read should be AnitPatterns: Refactoring Software, Architectures, and Projects in Crisis (ISBN: 0471197130). Design patterns shows you what to do, Anitpatterns shows you what *not* to do (and how to fix it if its already fscked up).

Re:antipatterns (0)

Anonymous Coward | more than 11 years ago | (#4599869)

Thanks for the tip, I'll get AnitPatterns.
I see too much of "good software practice"
which too often means bloated slow code.

Error on Search MF (0)

Anonymous Coward | more than 11 years ago | (#4599673)

HTTP/1.1 200 OK Date: Tue, 05 Nov 2002 15:53:22 GMT Server: Apache/1.3.26 (Unix) mod_gzip/1.3.19.1a mod_perl/1.27 mod_ssl/2.8.10 OpenSSL/0.9.6g X-Powered-By: Slash 2.003000 Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1

The is the bible of OO design (1)

brw215 (601732) | more than 11 years ago | (#4599676)

This book is the magna carta and all other OO design pattenr spring form the ideas launched by the Gang of Four. The big problem with this book is that examples are horrible. The constantly use maze examples which make no sense. It also makes thew patterns appear to be useless for real world applications, which they most certainly are not.

For java developers I would strongly recommend reading this book in conjunction with Sun's applied Java patterns book.

EMERGENCY Moderation test. (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#4599683)

I XXXX XXXX
XXXXXX XXXXXX
XXXXXXXX XXXXXXXX
XXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX
XXXXXXXXXXXXX U.
XXXXXXXXX
XXXXXXX
XXX
X

Anyone who would mod down a heart would also eat their own children.

This is a first (2)

RedWolves2 (84305) | more than 11 years ago | (#4599685)

bn.com actually beats out Amazon by $10. [amazon.com]
Design Patterns[associate] is $54.99. Compared to $44.95 at bn.com.

Go ahead and click on Slashdots link.

PARENT IS A GOATSE REDIRECT! DO NOT CLICK!! (-1, Troll)

Anonymous Coward | more than 11 years ago | (#4599704)

I was babysitting you fucker!!!

Re:This is a first (2)

diesel_jackass (534880) | more than 11 years ago | (#4599722)

Although Amazon does have "Used & new" from $37.95. Which is $7 less than bn.com.

Overrated (1, Insightful)

timeOday (582209) | more than 11 years ago | (#4599692)

The book is worth looking at, but both it and design patterns as a whole are nothing much. It's hard to push through design patterns books, because most of the patterns will be familar to you already if you've done some design and/or used various frameworks and toolkits. The innovation of the design patterns book/movement is simply to give names to common design elements so they can be discussed. This is useful, but not a breakthrough of any sort.

Re:Overrated (1)

robbo (4388) | more than 11 years ago | (#4599969)

I agree completely, not to mention with the reviewer's comments about the UI emphasis. I've written several tens of thousands of lines of C++ code, most of it while DP sat comfortably collecting dust on my bookshelf. When the patterns aren't obvious to the intelligent designer, they deal with gluing objects and GUI's together which, granted, is an important task for many apps, but not for solving basic computational problems.

Insert obvious cliches about square pegs, round holes, big hammers and everything looking like a nail here.

The real value of Slashdot (0)

Anonymous Coward | more than 11 years ago | (#4599696)

Book reviews!

Where else can I get unbiased reviews of the latest programming techniques?

Outstanding job Taco! Keep up the good work!

Hell no (4, Insightful)

PissingInTheWind (573929) | more than 11 years ago | (#4599701)

[...] little changed from 1992! In the computer field this would be considered an ancient text with how fast software is updated and languages change.

Holy shit no. 1992 isn't 'ancient' in any way, only for people with very short memory and attention span. Or for people who thinks XML is a neat new idea. Or for people who thinks Java OO-model is a neat new idea. Or for people who thinks Patterns is the new silver bullet. Or for people who thinks Lisp is dead.

Hope you get the idea.

must read 'antipatterns' as well (3, Insightful)

avi33 (116048) | more than 11 years ago | (#4599723)

Antipatterns [amazon.com] is a fine accompanyment, imho, it should be a prequel to DP.

It describes the various symptoms of overdesigning a system, and how to rescue projects that have gone so far that the only option seems to be a ground-up redesign or a 10-year implementation. Plus it's funny, too, we'd all recognize our own programming methodologies (overbearing perfectionism in design) and shortcuts (gross hack that no one will ever see anyhow).

Design Patterns... aren't? (1, Interesting)

Anonymous Coward | more than 11 years ago | (#4599731)

http://perl.plover.com/yak/design/

Well worth a read, and a thought.

Real World Design Patterns (5, Funny)

Waffle Iron (339739) | more than 11 years ago | (#4599745)

Book learnin' is fine and all, but here are some design patterns from the real world:

The Demo design pattern:
Boss: We need to have a working demo by the trade show next month.
Developer: OK, but it's just going to be a barely working hack. There's no time to do any proper design by the show. It's going to push back the ship date because we're going to have to rip out the kludges and redo them properly.
Boss: Fine. Just get me that demo.

The Ship date design pattern:
Boss: We need to ship the product by the middle of next quarter.
Developer: We don't have time to fix the demo hacks by then. We need more time to do a proper design. I told you that the ship date would be pushed back by the demo.
Boss: Everybody saw it working at the show, and they wonder why they can't have it now. We have to go with whatever you've got.

The Beeper Design pattern:
Boss: Support has been getting a lot of calls from customers in the field. A lot of random crashes. We need to have a developer available 24x7 to help debug these problems. Here, take this beeper.
Developer: I told you so.
Boss: We need to get a demo of version 2.0 by the field sales seminar next month.
Developer: Aaarrghhh!

For those who don't know... (3, Informative)

eric2hill (33085) | more than 11 years ago | (#4599755)

Have a look at Best Book Buys [bestbookbuys.com] . They've got pricing for most books both new and used. Searching for Design Patterns [bestwebbuys.com] currently shows a book for $35 used and $45 new.

For Beginners? (0)

Anonymous Coward | more than 11 years ago | (#4599778)

I've been programmin in various compiled & scripting languages for about 5 years now. I still consider myself a beginner because I have zero formal training even though programming is my career.

Considering that I have zero formal CompSci training, is Design Patterns a good purchase for me?

Re:For Beginners? (1)

avi33 (116048) | more than 11 years ago | (#4599941)

I am a similarly trained programmer, and I read this book as a newbie, and browsed it since, and I have to say, I'm glad I got it free because it really hasn't crystallized my work in a new, meaningful direction.

If you are designing a financial clearinghouse transaction system, or a space shuttle, or anything mission critical that interacts with a zillion parameters, then fully digesting this book might be worth the time.

As a web programmer, I have seen that everything I do is more closely related to Extreme Programming methodologies: Identify function points, try to get it done quickly and without errors, make it easy to modify, maintain and interact with long term. (aka, hack.) I personally don't have the time, power, or energy to force the business users to sit through a thousand usage tests or spec docs. Then again, it's not my goal to program embedded missile systems or billion dollar transactional services, so I'm not going to waste my time trying to hold to DP's standards. I've seen the best work of myself and my peers tossed aside after 12-18 months, so really, I just try to get it done, and leave behind some explicit comments just in case it stays useful.

The Design Patterns Smalltalk Companion (1)

jimm (5532) | more than 11 years ago | (#4599834)

After reading the Gang of Four book, I picked up "The Design Patterns Smalltalk Companion" (the book at Amazon [amazon.com] ). It explains how to apply each design pattern in Smalltalk.

I found it invaluable to be able to see the same patterns discussed and implemented in a languate different than those I normally use. Each language has its own strengths, weaknesses, and best uses. The Smalltalk Companion helps you think about how your favorite language works.

The Age Issue (1)

fermion (181285) | more than 11 years ago | (#4599875)

I sometime feel the incesent update of computer books is just a ploy to sell more books. For language reference books, frequent updates make sense. The language grows and new features must be documented. OTOH, basic introductory texts, especially those dealing with teaching, are good for many years. Design patterns is fundamental knowledge. The examples may be old, but they effectively illustrate all points. It still fullfils it's mandate, and should be read by anyone writing code.

I see a problem because younger people tend to ignore books because they are old. I recently talked to a (20ish) manager who spoke like he never read The Mythical Man Month or Debugging the Development Process. It was like he really believed that a 80 hour work weeks and more programmers would bring the project in on time.

As has been viciously shown over the past couple years, fundamentals don't change just because someone rewrites a book. It is precisely those books that prove to be fundamental, those books that do not need to be updated every few years, that provide a person with a basis of knowledge.

best way to read this... (2)

ceswiedler (165311) | more than 11 years ago | (#4599910)

Read the book, because it's good. Lots of it will make obvious sense. Use that stuff. Some of it will seem like a stretch. "You're calling that a pattern?" Don't use that stuff.

Programming is about basic principles applied intelligently. If it's complex, it's probably not right. You have to sift through the ideas of the week, such as template-, OO-, component-, and pattern-based programming, to find the right way to solve a particular problem.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?