Commits

shl...@iglu.org.il@cec68495-dca5-4e2b-845c-11fdaaa4f967  committed 6e3e331

Add Refactoring by Fowler.

  • Participants
  • Parent commits b7a7b48

Comments (0)

Files changed (3)

File lib/prod-synd/non-fiction-books/gen-prod-synd.pl

 use strict;
 use warnings;
 
+use Term::ReadPassword;
+
 use XML::Grammar::ProductsSyndication;
 
 use XML::LibXML::XPathContext;
             },
         'amazon_token' => "0VRRHTFJECHSKYNYD282",
         'amazon_associate' => "shlomifishhom-20",
-    }
+        'amazon_sak' => read_password('Secret Access Key: '),
+    },
 );
 
 1;

File t2/philosophy/books-recommends/images/refactoring.jpg

Added
New image

File t2/philosophy/books-recommends/shlomi-fish-non-fiction-books-recommendations.xml

 
                         </desc>
                     </prod>
+                    <prod id="refactoring">
+                        <title>Refactoring - Improving The Design of 
+                            Existing Code</title>
+                        <isbn>0201485672</isbn>
+                        <creator type="author">Martin Fowler</creator>
+                        <desc>
+                            <p>
+                                <a href="http://www.refactoring.com/">Refactoring</a>
+                                is improving the internal design of a
+                                code without changing its external
+                                behaviour. This book is the definitive
+                                guide to refactoring, at least in
+                                object-oriented systems.
+                            </p>
+                            <p>
+                                The first chapters of the book are rather
+                                general. They introduce the motivation
+                                for refactoring, why it is good, and why
+                                it actually speeds up development.
+                                Also, they also give a list of "bad
+                                smells" in the code that indicate that
+                                a refactoring is needed (like
+                                duplicate code or magic numbers). I found
+                                the bad smells part to be the most
+                                illuminating part of the book.
+                            </p>
+
+                            <p> 
+                                The middle part of the book which is its
+                                lion's share is a catalog of various
+                                refactorings. These are things like extracting
+                                a method, creating a superclass, eliminating
+                                inheritance, or creating one. The author
+                                explains there each refactoring, when to do
+                                it, the steps for performing it most safely,
+                                and then usually gives an example of how to do
+                                it. I found the catalog a bit tedious to read,
+                                but interesting nonetheless. It taught me some
+                                new techniques that I was not previously aware
+                                of.
+                            </p>
+
+                            <p>
+                                The final chapters wrap up the book, and are
+                                also interesting to read. They consist of an
+                                essay by William Opdyke (who wrote a very
+                                early research paper on refactoring) titled
+                                "Refactoring, Reuse and Reality", a chapter
+                                about <a
+                                    href="http://www.refactoring.com/tools.html">Refactoring
+                                    Tools</a>, and a short summarising chapter
+                                by Kent Beck.  
+                            </p>
+                            <p>
+                                The book smells a bit of hype: Java is used as
+                                the example language (albeit its use
+                                there is quite justified); there are
+                                many UML diagrams (which were at first
+                                confusing to me due to the many kind
+                                of arrows they have); and there are
+                                references of several of the so-called
+                                Design Patterns. (from the Gang of
+                                Four book and otherwise). But they
+                                don't detract much from an otherwise
+                                good book.
+                            </p>
+                            <p>
+                                The book can also
+                                be used as a reference to look for
+                                refactorings or see how can they be
+                                performed well. I think this book has
+                                made me more conscious of how I
+                                refactor and write code, and I try to
+                                refactor in a way that will minimize
+                                the errors caused by it. I'm also now
+                                more aware of the "two hats", as
+                                Fowler puts it, of either refactoring
+                                code or adding new features.
+                            </p>
+                            <p>
+                                To sum, this is a very good and
+                                important book to read, especially for
+                                beginning programmers. I'm just not
+                                sure it justifies the $54.00 list
+                                price. This price is too high for
+                                a book of this scope.
+                            </p>
+                        </desc>
+                    </prod>
                     <prod id="art_of_unix_programming">
                         <title>The Art of UNIX Programming</title>
                         <isbn>0131429019</isbn>