Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Design patterns, any good books?

Design patterns, any good books?

Scheduled Pinned Locked Moved The Lounge
c++questioncsharpdesignregex
35 Posts 25 Posters 31 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K Kevin McFarlane

    That's because the search was on "design patterns for beginners." The Gamma et al book IMO is not suitable for beginners. The book that is suitable is the first one in that list - Design Patterns Explained.

    Kevin

    L Offline
    L Offline
    Lost User
    wrote on last edited by
    #15

    I gave the "for beginners" not knowing the full extent of Hamed's knowledge/experience. If I assumed incorrectly his status as "beginner", then I owe Hamad an apology for any insults inadvertently made.

    H 1 Reply Last reply
    0
    • L Lost User

      I gave the "for beginners" not knowing the full extent of Hamed's knowledge/experience. If I assumed incorrectly his status as "beginner", then I owe Hamad an apology for any insults inadvertently made.

      H Offline
      H Offline
      Hamed Musavi
      wrote on last edited by
      #16

      Richard A. Abbott wrote:

      I owe Hamad an apology for any insults inadvertently made

      Not at all Richard, don't mention it. In this industry, I noticed I'm always a beginner, because there's always a lot to learn, so your consideration is always true;)

      // "Life is very short and is very fragile also." Yanni
      while (I'm_alive)
      {
      cout<<"I love programming.";
      }

      1 Reply Last reply
      0
      • T Tim Smith

        For a new programmer, "Design Pattern" provide a good head start with learning what techniques work well and which ones don't. One of the biggest problems with design patterns is the inherent vagueness. This leads to design patterns appearing to be appropriate in situations where they aren't. Think of it this way. A design pattern book is like buying a 10 piece tool box from your local hardware store. For day to day things, that screwdriver works well, but it has limited use. A real craftsman has things that you just don't get with your average toolbox. 1) A vast collection of tools. Many of those tools are specialized for the type of work being done. (Learned patterns not found in books) 2) Sophistication while improvising. A real craftsman, when dealing with a problem doesn't resort to hammering in a nail with a pair of pliers. (Proper application of a design pattern) 3) Ability to create their own tools. These tools can be simple or complex. But they fill in a gap that the craftsman has encountered. (Creating your own design patterns) If design patterns work for you, then read everything you can get a hold of. But remember that those books are only a first step. Don't use a design pattern because the book says so, use it because you understand the problem and how the design pattern resolves the problem. Understand the positives and negatives of using the pattern. (And yes, there will be negatives) Design patterns are just a formalized way of documenting what people have been doing ever since the start of time.

        Tim Smith I'm going to patent thought. I have yet to see any prior art.

        H Offline
        H Offline
        Hamed Musavi
        wrote on last edited by
        #17

        As an stand alone programmer, I created a lot of softwares during the last five years. The first one is still working quite well, but guess which one is the best for maintenance? The last one. Because the way I code has changed by experience. Yesterday, when I saw Observer pattern, I said: "Oh Hamed, this is what you are using a year, without knowing it's a known design pattern, and if you knew this five years ago, you where a better programmer the first four years as well." I've learned that perhaps these design patterns are experiences of other programmers and perhaps there are things that I will learn by experience in next years of programming but why don't learn them now?

        Tim Smith wrote:

        One of the biggest problems with design patterns is the inherent vagueness.

        Sure I'll not force myself in to using what I don't have a good reason for, but it is likely to encounter with a simmilar scenario in another project, Isn't it? If so, knowing how people solved it, helps me do the same or even better. In short: Let's use other's experiences.:)

        // "Life is very short and is very fragile also." Yanni
        while (I'm_alive)
        {
        cout<<"I love programming.";
        }

        1 Reply Last reply
        0
        • H Hamed Musavi

          I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

          // "Life is very short and is very fragile also." Yanni
          while (I'm_alive)
          {
          cout<<"I love programming.";
          }

          J Offline
          J Offline
          Jorge Varas
          wrote on last edited by
          #18

          maybe you want to read this one too: http://www.datingdesignpatterns.com/ LOL!!! :laugh:

          D 1 Reply Last reply
          0
          • J Jorge Varas

            maybe you want to read this one too: http://www.datingdesignpatterns.com/ LOL!!! :laugh:

            D Offline
            D Offline
            DarkEye Dev
            wrote on last edited by
            #19

            I'm currently reading 'Head First Design Patterns' and would HIGHLY recommend it to anyone wanting to know about the main patterns out there. its full of great examples, diagrams and it is genuinely an interesting read. my girlfriend (a non-programmer) has even commented that it doesn't look like a software book! i.e. it looks fun and it is fun - remember that its not always easy to read a 600 page technical book and stay interested, but im steaming through this one! check it out on amazon: http://www.amazon.com/Head-First-Design-Patterns/dp/0596007124 good luck ;) Joe

            K 1 Reply Last reply
            0
            • H Hamed Musavi

              I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

              // "Life is very short and is very fragile also." Yanni
              while (I'm_alive)
              {
              cout<<"I love programming.";
              }

              D Offline
              D Offline
              DevMentor org
              wrote on last edited by
              #20

              The Wikipedia has some good content on this if you're looking for reference on Design Patterns. :-D

              Yours Truly, The One and Only! --- Rajinder Yadav devmentor.org

              1 Reply Last reply
              0
              • H Hamed Musavi

                I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

                // "Life is very short and is very fragile also." Yanni
                while (I'm_alive)
                {
                cout<<"I love programming.";
                }

                V Offline
                V Offline
                vytheese
                wrote on last edited by
                #21

                "Head First Design Pattern" is a excellent book to start with. I bet you can't put down the book util you finish the last cover :-D. Regards, Vythees

                1 Reply Last reply
                0
                • K Kevin McFarlane

                  That's because the search was on "design patterns for beginners." The Gamma et al book IMO is not suitable for beginners. The book that is suitable is the first one in that list - Design Patterns Explained.

                  Kevin

                  T Offline
                  T Offline
                  The_Josher
                  wrote on last edited by
                  #22

                  I second this opinion. Design Patterns by Gamma et al is more of a specification that has really terse explanations of the patterns with no implementations or very little implementation. Design Patterns Explained by Alan Shalloway et al is a great book for getting your feet wet. It reads like a novel, gives you really basic UML and the explanation for it if UML isn't your forte. The examples, which are to-the-point but lengthy enough to get an idea, are useful. I've treated DP by Gamma et al as a reference and DPE as a book by a fellow programmer and this seems to work for me.

                  K 1 Reply Last reply
                  0
                  • H Hamed Musavi

                    I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

                    // "Life is very short and is very fragile also." Yanni
                    while (I'm_alive)
                    {
                    cout<<"I love programming.";
                    }

                    A Offline
                    A Offline
                    Arjan Keene
                    wrote on last edited by
                    #23

                    I'd also recommend (probably in suggested lit. already though): - Craig Larman : Applying UML patterns (3rd ed.) - James Cooper : C# Design Patterns (= tougher, but a sample companion to the original GoF book) Regards, Arjan Keene

                    1 Reply Last reply
                    0
                    • H Hamed Musavi

                      I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

                      // "Life is very short and is very fragile also." Yanni
                      while (I'm_alive)
                      {
                      cout<<"I love programming.";
                      }

                      B Offline
                      B Offline
                      BeckyAtWestar
                      wrote on last edited by
                      #24

                      Agile Principles, Patterns and Practices in c#. The previous edition used mainly java for examples. The book is a worthwhile read for c++ or c# or java developers. Robert Martin is an excellent author. The book has numerous examples.

                      1 Reply Last reply
                      0
                      • H Hamed Musavi

                        I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

                        // "Life is very short and is very fragile also." Yanni
                        while (I'm_alive)
                        {
                        cout<<"I love programming.";
                        }

                        E Offline
                        E Offline
                        El Corazon
                        wrote on last edited by
                        #25

                        Hamed Mosavi wrote:

                        Which book(s) do you recommend on this(Design patterns) topic?

                        see the bottom: http://home.earthlink.net/~huston2/dp/patterns.html[^]

                        _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                        1 Reply Last reply
                        0
                        • D DarkEye Dev

                          I'm currently reading 'Head First Design Patterns' and would HIGHLY recommend it to anyone wanting to know about the main patterns out there. its full of great examples, diagrams and it is genuinely an interesting read. my girlfriend (a non-programmer) has even commented that it doesn't look like a software book! i.e. it looks fun and it is fun - remember that its not always easy to read a 600 page technical book and stay interested, but im steaming through this one! check it out on amazon: http://www.amazon.com/Head-First-Design-Patterns/dp/0596007124 good luck ;) Joe

                          K Offline
                          K Offline
                          Keith Andersch
                          wrote on last edited by
                          #26

                          I'm just about done with that book. Just haven't brought myself to finish the chapter on the Model-View-Controller pattern. :P It is geared for Java though. But I totally agree. It's a book that keeps me interested and that's pretty great in a sea of tech manuals that are dry as the Sahara. Keith

                          1 Reply Last reply
                          0
                          • T Tim Smith

                            For a new programmer, "Design Pattern" provide a good head start with learning what techniques work well and which ones don't. One of the biggest problems with design patterns is the inherent vagueness. This leads to design patterns appearing to be appropriate in situations where they aren't. Think of it this way. A design pattern book is like buying a 10 piece tool box from your local hardware store. For day to day things, that screwdriver works well, but it has limited use. A real craftsman has things that you just don't get with your average toolbox. 1) A vast collection of tools. Many of those tools are specialized for the type of work being done. (Learned patterns not found in books) 2) Sophistication while improvising. A real craftsman, when dealing with a problem doesn't resort to hammering in a nail with a pair of pliers. (Proper application of a design pattern) 3) Ability to create their own tools. These tools can be simple or complex. But they fill in a gap that the craftsman has encountered. (Creating your own design patterns) If design patterns work for you, then read everything you can get a hold of. But remember that those books are only a first step. Don't use a design pattern because the book says so, use it because you understand the problem and how the design pattern resolves the problem. Understand the positives and negatives of using the pattern. (And yes, there will be negatives) Design patterns are just a formalized way of documenting what people have been doing ever since the start of time.

                            Tim Smith I'm going to patent thought. I have yet to see any prior art.

                            E Offline
                            E Offline
                            El Corazon
                            wrote on last edited by
                            #27

                            Tim Smith wrote:

                            Learned patterns not found in books

                            One of the advantages of READING the books is knowing that it actually references these. There are in fact a much larger collection of patterns than published by the GoF. In fact if you google "parallel design patterns" you will find http://www.cs.wustl.edu/~schmidt/patterns-ace.html[^] and others. There is even a conference on design patterns, and they do regularly introduce new design patterns. The original intent was to share how programmers solve problems so that similar problems can be solved rapidly by other programmers. Shared experience so to speak. But the intent got twisted a bit towards, "this and only this shall you use." I never was much on absolutes. We have several books on design patterns, and I have encouraged my team to read them, and I will ask if they reviewed the patterns in making their designs, but I will only push harder if they did not attempt to see if a design pattern already existed. The official list of patterns I thought was well above 100. But I could be wrong, I have seen too many numbers this weekend and I don't feel like googling the conference papers again.

                            _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)

                            1 Reply Last reply
                            0
                            • H Hamed Musavi

                              I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

                              // "Life is very short and is very fragile also." Yanni
                              while (I'm_alive)
                              {
                              cout<<"I love programming.";
                              }

                              M Offline
                              M Offline
                              MSoulia
                              wrote on last edited by
                              #28

                              Yes, GOF is the original. Design Patterns in C# by Metsker is an easier digest of the GOF book with some great tutorial samples. For enterprise level apps, Martin Fowler's Patterns of Enterprise Appliction Architecture is a good read, but I've just received Applying Domain-Driven Design and Patterns: With Examples in C# and .NET by Jimmy Nilsson, which looks like a lighter precursor to Fowler's with great examples.

                              1 Reply Last reply
                              0
                              • T The_Josher

                                I second this opinion. Design Patterns by Gamma et al is more of a specification that has really terse explanations of the patterns with no implementations or very little implementation. Design Patterns Explained by Alan Shalloway et al is a great book for getting your feet wet. It reads like a novel, gives you really basic UML and the explanation for it if UML isn't your forte. The examples, which are to-the-point but lengthy enough to get an idea, are useful. I've treated DP by Gamma et al as a reference and DPE as a book by a fellow programmer and this seems to work for me.

                                K Offline
                                K Offline
                                Kevin McFarlane
                                wrote on last edited by
                                #29

                                The_Josher wrote:

                                It reads like a novel

                                Yes, that's what I thought. :) What I liked about DPE is that it's problem context based. Rather than just trot out design patterns it starts with a problem then explains how OO addresses the shortcomings, then presents a conventional OO solution, then explains its shortcomings... I much prefer that approach - otherwise you just get left wondering "why would I use this?"

                                Kevin

                                1 Reply Last reply
                                0
                                • H Hamed Musavi

                                  I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

                                  // "Life is very short and is very fragile also." Yanni
                                  while (I'm_alive)
                                  {
                                  cout<<"I love programming.";
                                  }

                                  P Offline
                                  P Offline
                                  Peter Lanoie
                                  wrote on last edited by
                                  #30

                                  I have Head First Design Patterns from O'reilly. It's a great DP books, using lots of analogies to make the concepts understandable. It is definitely not your average programming book. The example code is in java but it's simple to translate to C# or anything else really.

                                  Peter

                                  1 Reply Last reply
                                  0
                                  • H Hamed Musavi

                                    I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

                                    // "Life is very short and is very fragile also." Yanni
                                    while (I'm_alive)
                                    {
                                    cout<<"I love programming.";
                                    }

                                    M Offline
                                    M Offline
                                    mehrbat
                                    wrote on last edited by
                                    #31

                                    Hi Hamed, I would recommend Patterns of Enterprise Application Architecture by Marting Fowler. You can find some info about it on http://martinfowler.com/books.html. Cheers, Mehrbod -- Through our work we grow --

                                    1 Reply Last reply
                                    0
                                    • H Hamed Musavi

                                      I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

                                      // "Life is very short and is very fragile also." Yanni
                                      while (I'm_alive)
                                      {
                                      cout<<"I love programming.";
                                      }

                                      S Offline
                                      S Offline
                                      si618
                                      wrote on last edited by
                                      #32

                                      Which book(s) do you recommend on this(Design patterns) topic? Head First Design Patterns. A somewhat different approach to writing technical books, but I like it. Examples are in Java, I do C#, but of course it's the patterns not the code that is gold.

                                      1 Reply Last reply
                                      0
                                      • L Lost User

                                        Google book search returns this [^] There is also a number of good tutorials available via this Google search [^]

                                        N Offline
                                        N Offline
                                        nardev82
                                        wrote on last edited by
                                        #33

                                        This is the sad part about programmers community. There is always some smartalec trying to be cool instead of helping out. If you want a world of peace you gotta start acting on it. Aholes!

                                        1 Reply Last reply
                                        0
                                        • H Hamed Musavi

                                          I'm a c++ programmer and worked almost five years on c++, MFC and played a little bit with C#. By reading a few design pattern articles here in CP, I noticed during the last few years, my experience in coding shifted me towards following a special way of designing my classes that, with a cleaner implementation, is actually simmilar to known design patterns. I also noticed the bad habits and better design patterns in some other classes as well. I realized that these patterns are probably invaluable experiences of great programmers during their life time. I also found out what is the actual usage of those UMLs we learned in university and had no use for them in those days(Don't blame me, blame my university for teaching something without describing actual usage of it;P.) I decided to read as much design pattern books as I can! Which book(s) do you recommend on this(Design patterns) topic? Thanks a lot in advanced.

                                          // "Life is very short and is very fragile also." Yanni
                                          while (I'm_alive)
                                          {
                                          cout<<"I love programming.";
                                          }

                                          B Offline
                                          B Offline
                                          Behzad Sedighzadeh
                                          wrote on last edited by
                                          #34

                                          Hi hamed, Most of the time, i find it more useful to learn any of the design patterns with some sample codes. My recommend is "Introduction to Design Patterns in C# By James Cooper" There are also some good article on MSDN like "Solidify Your C# Application Architecture with Design Patterns". Search msdn. They all come with some code examples that clarify the patterns' usage. There should be also some good articles on Java side but i do not familiar with. Thanks Behzad

                                          behzad

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups