This is a discussion on Re: Design Patterns book within the Software Patterns forums, part of the Testing category; Bill Burris wrote: > "Tom Plunket" <tomas@fancy.org> wrote in message > news:lt4i9vcnnkjp01u5gqrg90ffgbhfge7enf@4ax....
|
|||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Re: Design Patterns book
Bill Burris wrote:
> "Tom Plunket" <tomas@fancy.org> wrote in message > news:lt4i9vcnnkjp01u5gqrg90ffgbhfge7enf@4ax.com... > > Bill Burris wrote: > > > > > I am not interested in learning Smalltalk. I use C# & C++. > > > > You might find your skills in your languages will get better if > > you try a new, different, language. The little Smalltalk that > > I've screwed around with has made my understanding of 'advanced' > > C++ way more solid. > > > > I have screwed around with many programming languages (Assembly, Fortran, > Basic, Pascal, Forth, Lisp, Logo, APL, C, C++, C#, Java, VHDL), over the > last 25 years. There was a lot about Smalltalk in the magazines that I was > reading back in the 80's, but I never got around to using it. During the > 80s my real work was done using TTL, ECL, assembly & C. Screwing around > with hardware design has given me a better understanding of what software is > all about. Since 1990 most of my work has been done in C++. After trying > out Java in 96, I switched back to C++. Since Jan 2001, most of my work has > been in C#. > > The conclusion that I have arrived at is that I should be spending more time > learning about design and not another programming language. I have no > problem learning Smalltalk if that is the most efficient way to learn design > patterns. I am not convinced yet that this is the way to go. Once I have > finished reading the better design patterns books with C++, C#, & Java code, > I might consider a Smalltalk book. Probably not since there are many other > useful books to read. > > Books I have recently finished reading: > > Extreme Programming Explained by Beck > Test Driven Development by Beck > Refactoring by Fowler > Essential C++ by Lippman > > Books which I am currently reading: > > Design Patterns by Gamma, Helm, Johnson, & Vlissides > Generative Programming by Czarnecki, & Eisenecker > Modern C++ Design by Alexandrescu > C++ Templates by Vandevoorde & Josuttis > Exceptional C++ by Sutter > Implementing Application Frameworks by Fayad, Schmidt, Johnson > Doing Hard Time by Douglass > Geometric Tools for Computer Graphics by Schneider & Eberly > Genetic Programming III by Koza > > Books I have on order: > > Real Time Design Patterns by Douglass > Professional C# Design Patterns Applied by Wrox > Thinking in C# by O'Brien & Eckel > Game Physics by Eberly > > There are many other books I could add to the list, but they are irrelevant > to the current discussion. > > I am not willing to add the burden of a Smalltalk book to my credit card and > time, unless I am convinced that reading it will be more profitable then the > other books on this list. > > The other day I was refactoring my C++ and C# code while waiting for the > hardware guys to update their FPGA circuit. This got me thinking. With the > right tools, I could be working on the hardware in parallel with the > software. All it would take is a VHDL compiler, simulator and synthesis > tool added to my development enviornment. I could then apply refactoring > and design patterns to the hardware design. The way it is done now: The > engineer draws his schematic changes on paper, and hands them to the CAD > operator. The CAD operator then gives me the file to download into the > FPGA. The engineer pokes at the hardware with the scope for a while, asking > me to produce various test patterns in software. Then the cycle repeats. > > When refactoring my C++ & C# code, I sometimes move logic from one to the > other. If I was refactoring the hardware at the same time, I could also > make decisions about what should be in hardware and what should be in > software. > > Bill > -- > http://www.componentsnotebook.com/ Hi Bill, Two of the most important contributions in the patterns arena, particularly on the architectural side, are the pair of books in the Pattern-Oriented Sofware Architecture series. Volume 1, A System of Patterns, provides a much higher-level, integrative discussion than the GoF book does; it also acknowledges and carefully references the GoF book where appropriate. Volume 2, Patterns for Concurrent and Networked Objects, is a bit more specialized, as its title implies. These are published by Wiley. Also, IMO, knowledge and selective use of the UML is highly beneficial; I only mention this because I do not see reference to it in your postings. Of course, learning and working with UML is itself a large topic... Regards, Bob -- Robert E. Newby Principal Software Engineer Vestmark, Inc. 500 Edgewater Drive, Suite 564 Wakefield, Massachusetts 01880 USA 781-224-3646 | Bob _ Newby @ vestmark . com | www . vestmark . com |
|
|||
|
Re: Design Patterns book
Thanks for the recommendations. Pattern-Oriented Software Architecture
series, Volume 1 & 2 are on my list of interesting books to read, it is just a matter of when I will get around to them. Another book I discovered yesterday is: ..NET Patterns: Architecture, Design, and Process by Christian Thilmany. I am particularly interested in concurrent programming. I am now reading Object-Oriented Multithreading Using C++ by Cameron & Tracey Hughes. They also have a new book: Parallel & Distributed Programming Using C++, which I will probably read. I finished reading Real Time Design Patterns by Douglass. This is a well written and informative book, but didn't help much with the work I am doing. The patterns and discussion in the book are focused more on embedded applications. My work involves multi-threading and soft real-time on standard desktop computers. The first part of the book which gives the background for real-time UML, architecture, patterns and process was very interesting to read. What I am looking for is some patterns dealing with pipelining using separate threads for each stage of the pipeline, as well as techniques for synchronizing multiple data streams into one. For example threads which read data from different instruments which are then merged into one stream of data structures. The data structure gets passed along the pipeline, with data from different sources being inserted along the way. The data structure then gets saved to mass storage and sent on to the GUI thread for display. What makes things tricky is the less then 100% reliability of the input data streams. The GPS receiver once per second sends out a correction factor, to inform us how far off its one second pulse was. If the receiver is too busy sending out data it might skip sending this out. The one second pulse is used to trigger the data acquisition system, which interrupts the computer. Occasionally noise causes an extra interrupt to occur. Without careful monitoring of the timing for when data is received the data structures may not be put together properly. The combination of the GPS receiver and a 100MHz counter allows timing accuracy better than 50 nanoseconds. This is needed since we can't easily run cables for 10s to 100s of kilometers to use a single time reference for all sites. The project home page is at http://csr.phys.ualberta.ca/csr/research/alta.htm Bill "Robert E. Newby" <"Bob _ Newby "@ vestmark . com> wrote in message > > Two of the most important contributions in the patterns arena, particularly on > the architectural side, are the pair of books in the Pattern-Oriented Sofware > Architecture series. Volume 1, A System of Patterns, provides a much > higher-level, integrative discussion than the GoF book does; it also > acknowledges and carefully references the GoF book where appropriate. Volume 2, > Patterns for Concurrent and Networked Objects, is a bit more specialized, as its > title implies. These are published by Wiley. > > Also, IMO, knowledge and selective use of the UML is highly beneficial; I only > mention this because I do not see reference to it in your postings. Of course, > learning and working with UML is itself a large topic... > |
|
|||
|
Re: Design Patterns book
Bill Burris wrote:
> > Thanks for the recommendations. Pattern-Oriented Software Architecture > series, Volume 1 & 2 are on my list of interesting books to read, it is just > a matter of when I will get around to them. > > Another book I discovered yesterday is: > .NET Patterns: Architecture, Design, and Process by Christian Thilmany. > > I am particularly interested in concurrent programming. I am now reading > Object-Oriented Multithreading Using C++ by Cameron & Tracey Hughes. They > also have a new book: Parallel & Distributed Programming Using C++, which I > will probably read. > > I finished reading Real Time Design Patterns by Douglass. This is a well > written and informative book, but didn't help much with the work I am doing. > The patterns and discussion in the book are focused more on embedded > applications. My work involves multi-threading and soft real-time on > standard desktop computers. The first part of the book which gives the > background for real-time UML, architecture, patterns and process was very > interesting to read. > > What I am looking for is some patterns dealing with pipelining using > separate threads for each stage of the pipeline, as well as techniques for > synchronizing multiple data streams into one. For example threads which > read data from different instruments which are then merged into one stream > of data structures. The data structure gets passed along the pipeline, with > data from different sources being inserted along the way. The data > structure then gets saved to mass storage and sent on to the GUI thread for > display. What makes things tricky is the less then 100% reliability of the > input data streams. The GPS receiver once per second sends out a correction > factor, to inform us how far off its one second pulse was. If the receiver > is too busy sending out data it might skip sending this out. The one second > pulse is used to trigger the data acquisition system, which interrupts the > computer. Occasionally noise causes an extra interrupt to occur. Without > careful monitoring of the timing for when data is received the data > structures may not be put together properly. The combination of the GPS > receiver and a 100MHz counter allows timing accuracy better than 50 > nanoseconds. This is needed since we can't easily run cables for 10s to > 100s of kilometers to use a single time reference for all sites. The > project home page is at http://csr.phys.ualberta.ca/csr/research/alta.htm > > Bill > > "Robert E. Newby" <"Bob _ Newby "@ vestmark . com> wrote in message > > > Two of the most important contributions in the patterns arena, > particularly on > > the architectural side, are the pair of books in the Pattern-Oriented > Sofware > > Architecture series. Volume 1, A System of Patterns, provides a much > > higher-level, integrative discussion than the GoF book does; it also > > acknowledges and carefully references the GoF book where appropriate. > Volume 2, > > Patterns for Concurrent and Networked Objects, is a bit more specialized, > as its > > title implies. These are published by Wiley. > > > > Also, IMO, knowledge and selective use of the UML is highly beneficial; I > only > > mention this because I do not see reference to it in your postings. Of > course, > > learning and working with UML is itself a large topic... > > Sounds like a fascinating project. Good luck with it. -- Robert E. Newby Principal Software Engineer Vestmark, Inc. 500 Edgewater Drive, Suite 564 Wakefield, Massachusetts 01880 USA 781-224-3646 | Bob _ Newby @ vestmark . com | www . vestmark . com |
|
|||
|
Re: Design Patterns book
On Fri, 11 Jul 2003 15:05:06 -0600, "Bill Burris" <wburris@ualbera.ca>
wrote: >Thanks for the recommendations. Pattern-Oriented Software Architecture >series, Volume 1 & 2 are on my list of interesting books to read, it is just >a matter of when I will get around to them. > >Another book I discovered yesterday is: >.NET Patterns: Architecture, Design, and Process by Christian Thilmany. > >I am particularly interested in concurrent programming. I am now reading >Object-Oriented Multithreading Using C++ by Cameron & Tracey Hughes. They >also have a new book: Parallel & Distributed Programming Using C++, which I >will probably read. > >I finished reading Real Time Design Patterns by Douglass. This is a well >written and informative book, but didn't help much with the work I am doing. >The patterns and discussion in the book are focused more on embedded >applications. My work involves multi-threading and soft real-time on >standard desktop computers. The first part of the book which gives the >background for real-time UML, architecture, patterns and process was very >interesting to read. > >What I am looking for is some patterns dealing with pipelining using >separate threads for each stage of the pipeline, as well as techniques for >synchronizing multiple data streams into one. For example threads which >read data from different instruments which are then merged into one stream >of data structures. The data structure gets passed along the pipeline, with >data from different sources being inserted along the way. The data >structure then gets saved to mass storage and sent on to the GUI thread for >display. What makes things tricky is the less then 100% reliability of the >input data streams. The GPS receiver once per second sends out a correction >factor, to inform us how far off its one second pulse was. If the receiver >is too busy sending out data it might skip sending this out. The one second >pulse is used to trigger the data acquisition system, which interrupts the >computer. Occasionally noise causes an extra interrupt to occur. Without >careful monitoring of the timing for when data is received the data >structures may not be put together properly. The combination of the GPS >receiver and a 100MHz counter allows timing accuracy better than 50 >nanoseconds. This is needed since we can't easily run cables for 10s to >100s of kilometers to use a single time reference for all sites. The >project home page is at http://csr.phys.ualberta.ca/csr/research/alta.htm > >Bill > >"Robert E. Newby" <"Bob _ Newby "@ vestmark . com> wrote in message > >> Two of the most important contributions in the patterns arena, >particularly on >> the architectural side, are the pair of books in the Pattern-Oriented >Sofware >> Architecture series. Volume 1, A System of Patterns, provides a much >> higher-level, integrative discussion than the GoF book does; it also >> acknowledges and carefully references the GoF book where appropriate. >Volume 2, >> Patterns for Concurrent and Networked Objects, is a bit more specialized, >as its >> title implies. These are published by Wiley. >> >> Also, IMO, knowledge and selective use of the UML is highly beneficial; I >only >> mention this because I do not see reference to it in your postings. Of >course, >> learning and working with UML is itself a large topic... >> > Bill, My recommendation for patterns books are as follows: First, start off reading Design Patterns in C# by Steven John Metsker (Addison-Wesley). That book will replace the GOF book that you mentioned in your book list. Then I would buy/read Patterns of Enterprise Application Architecture by Martin Fowler (Addison-Wesley). From that book you should read Domain-Driven Design written by Eric Evens (Addison-Wesley). In my opinion, if you are going to read about design patterns then read the books from Addison-Wesley. They are really good. I bought a book from Wrox about design patterns and wished I could return the book. Brian |
![]() |
| Thread Tools | |
|
|