<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Matthieu Brucher&#039;s blog &#187; Addison-Wesley</title> <atom:link href="http://matt.eifelle.com/category/general/book-review-general/addison-wesley/feed/" rel="self" type="application/rss+xml" /><link>http://matt.eifelle.com</link> <description></description> <lastBuildDate>Tue, 27 Jul 2010 07:04:23 +0000</lastBuildDate> <generator>http://wordpress.org/?v=2.9.1</generator> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Book review: Modern C++ Design: Generic Programming and Design Patterns Applied</title><link>http://matt.eifelle.com/2010/03/16/book-review-modern-c-design-generic-programming-and-design-patterns-applied/</link> <comments>http://matt.eifelle.com/2010/03/16/book-review-modern-c-design-generic-programming-and-design-patterns-applied/#comments</comments> <pubDate>Tue, 16 Mar 2010 08:22:41 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Addison-Wesley]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[C++]]></category> <category><![CDATA[Code quality]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=421</guid> <description><![CDATA[This book may be a little bit old (2001), but it&#8217;s still very relevant today. A lot of the material in the book is still not applied in C++ development, it may be time to apply it, doesn&#8217;t it?Content and opinions
The book is split in two parts: the basis and the more complex blocks.
For Alexandrescu, [...]]]></description> <content:encoded><![CDATA[<p>This book may be a little bit old (2001), but it&#8217;s still very relevant today. A lot of the material in the book is still not applied in C++ development, it may be time to apply it, doesn&#8217;t it?<br
/> <span
id="more-421"></span></p><h4>Content and opinions</h4><p>The book is split in two parts: the basis and the more complex blocks.</p><p>For Alexandrescu, there are four basis that should be covered: polycies, type lists, allocators and general techniques. Polycies is tightly related to the strategy pattern. The author discusses the elegant and complex architecture that can be written using them. Type lists is, in my opinion, the first step in using metaprogramming. Since Alexandrescu wrote this book, <a
href="http://www.boost.org/">the Boost library</a> implemented a lot of tools to work on type lists (as well as different types of type lists). This book explains very well how it can work and how to make the most of it. Allocators is perhaps one of the toughest topics in C++. Fortunately, the book provides a good implementation for small objects, and it is stable and efficient. I don&#8217;t think it is sound to implement your own, so using this one is perhaps best! Finally, the second chapter tackles different small tricks that can be easily implemented in every C++ code.</p><p>The second part is much more complex. Using the different basis blocks from the first part, Alexandrescu starts by creating a generic functor. It&#8217;s perhaps too much for 99% of the projects, but it still is a great proof of concept for elegant C++ architecture. The second topic in this part is singletons. Alexandrescu tries to address every side of this question, and although he provides an implementation, it is unfortunately not yet available/used in every framework. Next come smart pointers. They will be available in the next C++ standard, but only in a reduced form than what is exposed here. It is interesting to know the different issues that such a &#8220;simple&#8221; class has to solve. The next two chapters are dedicated to factories and abstract factories. As usual, one can create its own factory, but Alexandrescu tries to solve the more general problem. Before my favorite chapter, implementing the visitor pattern is addressed. It&#8217;s not the most widely used pattern, but it solves some tricky cases. Finally, even less used is the multiple dispatch function. Imagine you have to instanciate several functions with different types. You wan use type lists for this if you have only one type for each function. But if you have a more general case with two or three types that have to be instanciated, you have to use the multiple dispatch. It can be found in the intersection sample that is used in the book, but also in steering code (your favorite template class can be used with objects that can be of different types, like int matrices or float matrices, and you only have access to the base class of this type, and the class instance must call the correct instanciation).</p><p>Each time, the main focus is on automation, less code, more readability. Of course, this last point is only achieved if the reader has some knowledge of this modern C++ design&#8230;</p><h4>Conclusion</h4><p>Alexandrescu wrote Loki as a proof of concept of modern C++. The book is the result of the different solutions he thought of. Loki may be outdate by Boost in several fields, but it is also the foundations of the Boost library. If you want to write good professional-grade C++, you should read at least once this book and appropriate its content.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"><a
rel="nofollow" href="http://r.popshops.com/pp/73254/modern-c-design-generic-programming-and-design-patterns-applied"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14560000/14569343.JPG" border="0" alt="Modern C++ Design: Generic Programming and Design Patterns Applied" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/73254/modern-c-design-generic-programming-and-design-patterns-applied">Modern C++ Design: Generic Programming and Design Patterns Applied</a><br
/> Price: $53.99</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 60px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0201704315/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/516030XDD8L._SL75_.jpg" width="60" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0201704315/masbl03-20" target="_blank">Modern C++ Design: Generic Programming and Design Patterns Applied</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Andrei Alexandrescu</strong></span><br
/> ISBN: 0201704315</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 48.45</span><br
/> <strong>54 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 15.04</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 70</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2010/03/16/book-review-modern-c-design-generic-programming-and-design-patterns-applied/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library</title><link>http://matt.eifelle.com/2009/09/10/book-review-effective-stl-50-specific-ways-to-improve-your-use-of-the-standard-template-library/</link> <comments>http://matt.eifelle.com/2009/09/10/book-review-effective-stl-50-specific-ways-to-improve-your-use-of-the-standard-template-library/#comments</comments> <pubDate>Thu, 10 Sep 2009 08:05:34 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Addison-Wesley]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[C++]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=411</guid> <description><![CDATA[After Effective C++, I&#8217;d like to speak about Effective STL.Content and opinions
Everything on the STL can be found in this book. Every algorithm is explained with details, almost every function of every container, with their features, qualities and defaults. In fact, there are so many things in the STL that one cannot know every detail [...]]]></description> <content:encoded><![CDATA[<p>After <a
href="http://matt.eifelle.com/2009/09/01/book-review-effective-c-55-specific-ways-to-improve-your-programs-and-designs/">Effective C++</a>, I&#8217;d like to speak about <span
style="text-decoration: underline;">Effective STL</span>.<br
/> <span
id="more-411"></span></p><h4>Content and opinions</h4><p>Everything on the STL can be found in this book. Every algorithm is explained with details, almost every function of every container, with their features, qualities and defaults. In fact, there are so many things in the STL that one cannot know every detail without studying it in depth. And this is where Meyers shines: the book helps learning this fastly!</p><p>Besides the STL, the old non standard containers (hashmap for instance) are also covered, although C++0x changed them, so these items can be bypassed.</p><h4>Conclusion</h4><p>Even more useful than <span
style="text-decoration: underline;">Effective C++</span>, the tips provided in this book can be forgot easilly, so you need to come back to it regularly. If you use the STL (which you must if you&#8217;re a C++ developer), you must have a copy of <span
style="text-decoration: underline;">Effective STL</span>.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69394/effective-stl-50-specific-ways-to-improve-your-use-of-the-standard-template-libr"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14560000/14569363.JPG" border="0" alt="Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library (Addison-Wesley Professional Computing Series)" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69394/effective-stl-50-specific-ways-to-improve-your-use-of-the-standard-template-libr">Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library (Addison-Wesley Professional Computing Series)</a><br
/> Price: $32.25</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 60px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0201749629/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/41W3B0YFG8L._SL75_.jpg" width="60" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0201749629/masbl03-20" target="_blank">Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Scott Meyers</strong></span><br
/> ISBN: 0201749629</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 40.55</span><br
/> <strong>46 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 27.50</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 38</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/09/10/book-review-effective-stl-50-specific-ways-to-improve-your-use-of-the-standard-template-library/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Effective C++: 55 Specific Ways to Improve Your Programs and Designs</title><link>http://matt.eifelle.com/2009/09/01/book-review-effective-c-55-specific-ways-to-improve-your-programs-and-designs/</link> <comments>http://matt.eifelle.com/2009/09/01/book-review-effective-c-55-specific-ways-to-improve-your-programs-and-designs/#comments</comments> <pubDate>Tue, 01 Sep 2009 08:17:26 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Addison-Wesley]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[C++]]></category> <category><![CDATA[Code quality]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=409</guid> <description><![CDATA[C++ code quality is a difficult topic. There are some basic topics and other, more advanced. Sutter and Alexandrescu wrote a complete book on C++ standards to achieve good quality with basic and advanced topics, but Meyers wrote a book before, on the basics of C++.
Effective C++ is at its third edition, which is a [...]]]></description> <content:encoded><![CDATA[<p>C++ code quality is a difficult topic. There are some basic topics and other, more advanced. Sutter and Alexandrescu wrote a <a
href="http://matt.eifelle.com/2009/06/30/book-review-c-coding-standards-101-rules-guidelines-and-best-practices/">complete book on C++ standards</a> to achieve good quality with basic and advanced topics, but Meyers wrote a book before, on the basics of C++.</p><p><strong>Effective C++</strong> is at its third edition, which is a complete rewrite with topics from the &#8220;old&#8221; <strong>Effective C++</strong> and <strong>More Effective C++</strong>. So if you have one or the other, you will find yourself with additional content.<br
/> <span
id="more-409"></span></p><h4>Content and opinions</h4><p>When rewritten, the book changed its approach to C++. No more migration from C to C++, but using C++ with the <strong>const</strong> keyword, initializations, &#8230; Difficulty is growing, the first elements being eay to understand and to put into action, then we go into more complex fields &#8211; what does the compiler do under the hoods, the assignement operator, &#8230; -. The part on memory management is more complete and is about resources, not only memory, in fact. Design and class declarations/implementations/inheritance parts are relevant as well. Some items from the previous editions were moved to other sections, new items were added wisely. A part dedicated to generic programming was introduced with even some meta-programming. The section on <strong>new</strong>/<strong>delete</strong> is also new, with their overloading, an interesting topic.</p><h4>Conclusion</h4><p>The book is now several years old, but it is still current, and more C++ oriented (compared to the previous editions). <span
style="text-decoration: underline;">Effective C++</span> handles C++0x with TR1 (even if it is far older than the forthcoming new standard) and even the Boost library. With this last edition, the book is again one of the best books for a beginner during his learning the langage, as the first edition was in the past. Even for an advanced developer, it is filled with tips that you should never forget.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69395/effective-c-55-specific-ways-to-improve-your-programs-and-designs"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14490000/14495277.JPG" border="0" alt="Effective C++: 55 Specific Ways to Improve Your Programs and Designs" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69395/effective-c-55-specific-ways-to-improve-your-programs-and-designs">Effective C++: 55 Specific Ways to Improve Your Programs and Designs</a><br
/> Price: $32.25</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 60px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0321334876/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/51WCFVFEB2L._SL75_.jpg" width="60" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0321334876/masbl03-20" target="_blank">Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Scott Meyers</strong></span><br
/> ISBN: 0321334876</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 40.74</span><br
/> <strong>60 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 30.00</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 149</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/09/01/book-review-effective-c-55-specific-ways-to-improve-your-programs-and-designs/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Test-Driven Development</title><link>http://matt.eifelle.com/2009/08/20/book-review-test-driven-development/</link> <comments>http://matt.eifelle.com/2009/08/20/book-review-test-driven-development/#comments</comments> <pubDate>Thu, 20 Aug 2009 08:47:33 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Addison-Wesley]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[Design Patterns]]></category> <category><![CDATA[Development process]]></category> <category><![CDATA[Tools]]></category> <category><![CDATA[Test patterns]]></category> <category><![CDATA[Test-Driven Development]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=405</guid> <description><![CDATA[Test-Driven Development is one of the most controversial development processes. Instead of planning everything ahead, you develop your program incrementally as well as simultaneously and rigorously test it. Kent Beck is one of the most proeminent advocates of this method and this book is the Bible of TDD.Content and opinions
TDD is about testing while developing, [...]]]></description> <content:encoded><![CDATA[<p>Test-Driven Development is one of the most controversial development processes. Instead of planning everything ahead, you develop your program incrementally as well as simultaneously and rigorously test it. Kent Beck is one of the most proeminent advocates of this method and this book is the Bible of TDD.</p><p><span
id="more-405"></span></p><h4>Content and opinions</h4><p>TDD is about testing while developing, so it is of no wonder that the first part of the book which expose the methodology is done with the help of an example. Small steps, one of the main ideas behind TDD, in the explanations result in a lot of small chapters that explain how to do one thing.</p><p>The second part is about the main tol for TDD: xUnit. Its goal is to provide a standard tool for all languages.Well, in fact, it is different implementation, but some are not as easy to use as JUnit, the Java implementation. Some languages are more easy to cope with TDD than others.</p><p>The third part is a formal list of patterns to efficiently develop with TDD. What do you need to test something completly? What do you need to go from a test to the actual associated solution? This is the kind of questions the patterns try to answer.</p><h4>Conclusion</h4><p>There are a lot chapters with simple ideas in each one. What bothers me is that they could have been hierarchized a little bit more, but really, this is not an issue here. TDD is something that everyone should do, but there are some domains where it is more difficult than in other. For instance, hw would you test a complex stochastic scientific module? This is a question that remains open at the end of the book. For general IT, it answers every question on testing though.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69397/test-driven-development-by-example"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14580000/14587404.JPG" border="0" alt="Test Driven Development: By Example" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69397/test-driven-development-by-example">Test Driven Development: By Example</a><br
/> Price: $44.99</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 60px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0321146530/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/513PZWJDH7L._SL75_.jpg" width="60" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0321146530/masbl03-20" target="_blank">Test Driven Development: By Example</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Kent Beck</strong></span><br
/> ISBN: 0321146530</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 40.53</span><br
/> <strong>54 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 24.99</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.gif" class="asa_rating_stars" /> | 4 | 34</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/08/20/book-review-test-driven-development/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: C++ Coding Standards: 101 Rules, Guidelines, and Best Practices</title><link>http://matt.eifelle.com/2009/06/30/book-review-c-coding-standards-101-rules-guidelines-and-best-practices/</link> <comments>http://matt.eifelle.com/2009/06/30/book-review-c-coding-standards-101-rules-guidelines-and-best-practices/#comments</comments> <pubDate>Tue, 30 Jun 2009 08:01:32 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Addison-Wesley]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[C++]]></category> <category><![CDATA[Code quality]]></category> <category><![CDATA[Coding standard]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=395</guid> <description><![CDATA[There is no official C++ standard, unlike several languages (Java, Python, &#8230;) where there are referentials for code and design style, good practices, &#8230; It didn&#8217;t exist until this book where two world-renowned C++ authors set the basis for your every day development.101 coding standards, numbered from 0 to 100 (an echo to the fact [...]]]></description> <content:encoded><![CDATA[<p>There is no official C++ standard, unlike several languages (Java, Python, &#8230;) where there are referentials for code and design style, good practices, &#8230; It didn&#8217;t exist until this book where two world-renowned C++ authors set the basis for your every day development.<br
/> <span
id="more-395"></span><br
/> 101 coding standards, numbered from 0 to 100 (an echo to the fact that C++ starts counting from 0), this is the content of the book.</p><h4>Content and opinions</h4><p>The standards are split in several groups, from policy to type safetiness. Each time, the coding standard is stated, with a short summary and then a discussion. There can be an example if needed, and some references. The standard is always simple enough to follow, and the explanation is clear yet complete.</p><p>The handled issues are very vast, oriented towards common pitfalls. Use inheritance when needed, use collaboration elsewhere, do not inherit from a class that isn&#8217;t made for inheritance, &#8230; When you are used to these pitfalls (because a lot of C++ gurus talk about them in their forum posts, mails or blogs), you may sometimes forget them and write code that is not optimal (in several ways, performance or maintenability). The book is in that regard a good way of having the good practices classified by topics and easilly accessed: you don&#8217;t have to check or search on the Internet. Finally if someone has a question on why you used a specific coding standard, you can give a full explanation and a context (and spread the good pratices).</p><h4>Conclusion</h4><p>C++ Coding Standards are sometimes more a question of style than of language, but they are part of the general pieces of advices one should follow. C++ is a language that permits a lot of things, perhaps too much, and this set of rules makes it possible to write readable, efficient, robust code.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69401/c-coding-standards-rules-guidelines-and-best-practices"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14740000/14748707.JPG" border="0" alt="C++ Coding Standards: Rules, Guidelines, and Best Practices" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69401/c-coding-standards-rules-guidelines-and-best-practices">C++ Coding Standards: Rules, Guidelines, and Best Practices</a><br
/> Price: $32.25</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 60px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0321113586/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/51WH54Y1C6L._SL75_.jpg" width="60" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0321113586/masbl03-20" target="_blank">C++ Coding Standards: 101 Rules, Guidelines, and Best Practices</a> (Paperback)<br
/> <span
style="font-size: 0.8em;">by <strong>Herb Sutter, Andrei Alexandrescu</strong></span><br
/> ISBN: 0321113586</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 40.45</span><br
/> <strong>45 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 24.89</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 27</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/06/30/book-review-c-coding-standards-101-rules-guidelines-and-best-practices/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Book review: Refactoring to patterns</title><link>http://matt.eifelle.com/2009/05/05/book-review-refactoring-to-patterns/</link> <comments>http://matt.eifelle.com/2009/05/05/book-review-refactoring-to-patterns/#comments</comments> <pubDate>Tue, 05 May 2009 08:04:41 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Addison-Wesley]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[Design Patterns]]></category> <category><![CDATA[Design pattern]]></category> <category><![CDATA[Refactoring]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=399</guid> <description><![CDATA[After last week book review on Martin Fowler&#8217;s Refactoring, I&#8217;d like to review another book, more oriented towards patterns and refactoring.Content and opinions
First, this book could be seen as a follow up of Refactoring, as almost all the described processes use steps from it. The first chapters explain what to expect from refactoring (how it [...]]]></description> <content:encoded><![CDATA[<p>After last week <a
href="http://matt.eifelle.com/2009/04/28/book-review-refactoring-improving-the-design-of-existing-code/">book review on Martin Fowler&#8217;s Refactoring</a>, I&#8217;d like to review another book, more oriented towards patterns and refactoring.<br
/> <span
id="more-399"></span></p><h4>Content and opinions</h4><p>First, this book could be seen as a follow up of <em>Refactoring</em>, as almost all the described processes use steps from it. The first chapters explain what to expect from refactoring (how it affect software architecture), patterns and how to detect code that needs refactoring. The catalog is split like the original <a
href="http://matt.eifelle.com/2009/04/14/book-review-design-patterns-elements-of-reusable-object-oriented-software/">Design Patterns book</a> in different categories (Creation, Simplification, Generaliation, Protection, Accumulation or Utilities), and each of them is described as in the GoF book (which suits me quite well).</p><p>The code language is Java, so it may be sometimes difficult to find the equivalent construction in your favorite language, but it is doable if you known Java basics.</p><h4>Conclusion</h4><p>This book quotes several times Martin Fowler, but this is not related to the fact that this book is in the &#8220;Fowler signature&#8221; collection of the publisher. <em>Refactoring to Patterns</em> addresses what <em>Refactoring</em> couldn&#8217;t and goes firther, without imposing, just by suggesting.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69406/refactoring-to-patterns-the-addison-wesley-signature-series"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14740000/14748817.JPG" border="0" alt="Refactoring to Patterns (The Addison-Wesley Signature Series)" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69406/refactoring-to-patterns-the-addison-wesley-signature-series">Refactoring to Patterns (The Addison-Wesley Signature Series)</a><br
/> Price: $41.93</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 55px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0321213351/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/516pPX8YmvL._SL75_.jpg" width="55" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0321213351/masbl03-20" target="_blank">Refactoring to Patterns</a> (Hardcover)<br
/> <span
style="font-size: 0.8em;">by <strong>Joshua Kerievsky</strong></span><br
/> ISBN: 0321213351</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 52.71</span><br
/> <strong>53 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 29.90</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.gif" class="asa_rating_stars" /> | 4 | 45</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/05/05/book-review-refactoring-to-patterns/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Refactoring: Improving the design of existing code</title><link>http://matt.eifelle.com/2009/04/28/book-review-refactoring-improving-the-design-of-existing-code/</link> <comments>http://matt.eifelle.com/2009/04/28/book-review-refactoring-improving-the-design-of-existing-code/#comments</comments> <pubDate>Tue, 28 Apr 2009 08:15:50 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Addison-Wesley]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[Design Patterns]]></category> <category><![CDATA[Design pattern]]></category> <category><![CDATA[Refactoring]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=397</guid> <description><![CDATA[I&#8217;ve read this book when I started my PhD thesis. It helped me laying down the basis of software conception.
It was the first book where I found the code smell concept. And my former code really smelt&#8230;Content and opinions
This book became a reference for me. The patterns catalog (because I consider them as patterns) seems [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;ve read this book when I started my PhD thesis. It helped me laying down the basis of software conception.</p><p>It was the first book where I found the <em>code smell</em> concept. And my former code really smelt&#8230;<br
/> <span
id="more-397"></span></p><h4>Content and opinions</h4><p>This book became a reference for me. The patterns catalog (because I consider them as patterns) seems almost exhaustive for me. Some of the steps described are too easy (as inlining a function). It may be more difficult at first to extract a method from another, but it is still the basis of refactoring.</p><p>The main use of the book isn&#8217;t saying what one already know (inling, splitting a function, &#8230;), it is showing a new step, one one didn&#8217;t think about and that solves the problem at hand. Stating the problem, the smell, is also a main focus of the book, where <span
style="text-decoration: underline;">Martin Fowler</span> gives hints to distinguish between the different smells.</p><p>The author is one of the world-known unitary tests herald, so it is no wonder they have a central place in the different patterns. This way, the refactoring cannot change the code behavior. The given examples are also clear and simple enough, completely described step by step (mainly as the book goes forward, new patterns use preceding ones).</p><p>Finally, the code is written in Java, but it isn&#8217;t a problem for someone used to object-oriented  language. Useful tools are also exposed, but they are old, dating from the time when the book was written (and they are mainly geared toward Java).</p><h4>Conclusion</h4><p>This was a really simple book. Since I closed it, I didn&#8217;t have to open it again, as the patterns are pretty simple. But still, as for every pattern, you first have to understand it (and read it) to acknowledge it. And I tend to refactor regularly following the ideas behind this book.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69409/refactoring-improving-the-design-of-existing-code"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/14390000/14394599.JPG" border="0" alt="Refactoring: Improving the Design of Existing Code" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69409/refactoring-improving-the-design-of-existing-code">Refactoring: Improving the Design of Existing Code</a><br
/> Price: $41.93</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 56px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0201485672/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/51T4YZ3HieL._SL75_.jpg" width="56" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0201485672/masbl03-20" target="_blank">Refactoring: Improving the Design of Existing Code</a> (Hardcover)<br
/> <span
style="font-size: 0.8em;">by <strong>Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts</strong></span><br
/> ISBN: 0201485672</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 53.06</span><br
/> <strong>62 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 36.99</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 141</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/04/28/book-review-refactoring-improving-the-design-of-existing-code/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Book review: Design patterns: Elements of Reusable Object-Oriented Software</title><link>http://matt.eifelle.com/2009/04/14/book-review-design-patterns-elements-of-reusable-object-oriented-software/</link> <comments>http://matt.eifelle.com/2009/04/14/book-review-design-patterns-elements-of-reusable-object-oriented-software/#comments</comments> <pubDate>Tue, 14 Apr 2009 08:09:47 +0000</pubDate> <dc:creator>Matt</dc:creator> <category><![CDATA[Addison-Wesley]]></category> <category><![CDATA[Book review]]></category> <category><![CDATA[Design Patterns]]></category> <category><![CDATA[Design pattern]]></category> <category><![CDATA[Gang of Four]]></category><guid
isPermaLink="false">http://matt.eifelle.com/?p=401</guid> <description><![CDATA[As I&#8217;ve said before, I&#8217;ve done several book reviews in the past. I will start with a small serie on design patterns books.
This book is one of the &#8220;must-have&#8221; in your library. If you write some code or if you manage some IT or Computer Science projects, you will have this book to lay down [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://matt.eifelle.com/2008/06/03/to-translate-or-not-to-translate/">As I&#8217;ve said before</a>, I&#8217;ve done several book reviews in the past. I will start with a small serie on design patterns books.</p><p>This book is one of the &#8220;must-have&#8221; in your library. If you write some code or if you manage some IT or Computer Science projects, you will have this book to lay down the basic software architecture.<br
/> <span
id="more-401"></span></p><h4>Content and opinions</h4><p>The first two chapters are an introduction and explain the reasons of the existence of design patterns, how they should be used, good and bad pratices, &#8230; Design patterns without rules to apply them are useless (as the original architectural patterns are useless without drawings skills). A practical example is the object of the second chapter.</p><p>Design patterns are exposed in a three parts catalog. Each pattern each described by a complete explanation, an UML diagram, the interactions between the pattern elements, as well as some implementation solutions (all solutions cannot be written, as it is language-dependent).</p><p>Creational patterns are about creating new objects. They include the abstract factory (constructing several objects of different kinds), the builder (a more elaborate constructor), the factory method (overloading a class method to create objects based on different classes), the prototype (creating new objects by cloning an instance) and the singleton (creating only one instance of a given class).</p><p>Structural patterns are more about the actual software architecture. They include the adapter (translating an interface to another one), the bridge (separating an interface from different implementations), the composite (allowing several objects of a hierarchy to be composed together), the decorator (adding characteristics to an object), the facade (offering an interface to several classes), the flyweight (sharing the same objects between instances so as to reduce memory overhead) or the proxy (using another object to access another, potentially hidden, one).</p><p>Behavioral patterns enable a software to change its own behavior. They include the chain of responsibility (allowing processing requests by whoever can), the command (creating complex requests), the interpreter (describing how a language can be processed), the iterator (providing a way of browing the content of a data container), the mediator (allowing communication between different classes), the memento (enabling restoring the state of an object), the observer (sometimes also called listener, creating a way for instances to be updated/called by another one), the state (allowing changing behavior on the fly), the strategy (providing several ways of doing something), the template method (providing a skeletton for an algorithm) or the visitor (allowing execution of code for every the content of an object). This patterns set is perhaps the most heterogeneous one (although the state and the strategy are in fact exactly the same, the only difference being the interpretation of their actions).</p><h4>Conclusion</h4><p>This book, sometimes refered ad the GoF book, lays down the basis of software conception. These 23 patterns are not the only ones you may use (some of them are also seldom used), but they are used to make the more complicated ones. If you have one design patterns book you should buy, it is this one.</p><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69411/design-patterns-elements-of-reusable-object-oriented-software"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/47160000/47161427.JPG" border="0" alt="Design Patterns: Elements of Reusable Object-Oriented Software" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69411/design-patterns-elements-of-reusable-object-oriented-software">Design Patterns: Elements of Reusable Object-Oriented Software</a><br
/> Price: $38.7</div><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/uploads/2009/12/BN_Logo_3tier.jpg) right bottom no-repeat #ffffff;"> <a
rel="nofollow" href="http://r.popshops.com/pp/69412/design-patterns-cd-elements-of-reusable-object-oriented-software-cd-rom"><img
style="width: 150px;" src="http://images.barnesandnoble.com/images/39680000/39688166.JPG" border="0" alt="Design Patterns CD: Elements of Reusable Object-Oriented Software, (CD-ROM)" /></a><br
/> <a
rel="nofollow" href="http://r.popshops.com/pp/69412/design-patterns-cd-elements-of-reusable-object-oriented-software-cd-rom">Design Patterns CD: Elements of Reusable Object-Oriented Software, (CD-ROM)</a><br
/> Price: $33.86</div><div
class="subcolumns"><div
style="border: 1px solid #000; padding: 5px; margin-bottom: 15px; background: url(http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/amazon_US_small.gif) right bottom no-repeat #ffffff;"><div
style="width: 57px; float: left; margin-right: 5px;"> <a
href="http://www.amazon.com/exec/obidos/ASIN/0201633612/masbl03-20" target="_blank"><img
src="http://ecx.images-amazon.com/images/I/51Q-RLSadrL._SL75_.jpg" width="57" height="75" border="0" /></a></div><div><p><a
href="http://www.amazon.com/exec/obidos/ASIN/0201633612/masbl03-20" target="_blank">Design Patterns: Elements of Reusable Object-Oriented Software</a> (Hardcover)<br
/> <span
style="font-size: 0.8em;">by <strong>Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides</strong></span><br
/> ISBN: 0201633612</p><p><strong>Price:</strong> <span
style="color: #990000; font-weight: bold;">USD 51.04</span><br
/> <strong>108 used &#038; new</strong> available from <span
style="color: #990000; font-weight: bold;">USD 24.95</span></p><p> <img
src="http://matt.eifelle.com/wp-content/plugins/amazonsimpleadmin/img/stars-4.5.gif" class="asa_rating_stars" /> | 4.5 | 271</div><div
style="clear: both;"></div></div></div>]]></content:encoded> <wfw:commentRss>http://matt.eifelle.com/2009/04/14/book-review-design-patterns-elements-of-reusable-object-oriented-software/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
<!-- Served from: matt.eifelle.com @ 2010-07-30 08:24:30 by W3 Total Cache -->