<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: Clean Code.  Whew!</title>
    <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Clean Code.  Whew!</title>
      <description>&lt;p&gt;I&amp;#8217;ve been working on this book for several years now.  After a flurry of effort (you might have noticed I&amp;#8217;ve been quiet lately) I&amp;#8217;m very pleased to say that I&amp;#8217;m done with the writing and am preparing the manuscript for production. See &lt;a href="http://www.pearsonhighered.com/educator/academic/product/1,3110,0132350882,00.html"&gt;The Prentice Hall Listing&lt;/a&gt;&lt;/p&gt;


	&lt;p&gt;&lt;img src="http://vig-fp.prenhall.com/bigcovers/0132350882.jpg" alt="" /&gt;&lt;/p&gt;


&lt;pre&gt;Table of Contents

Clean Code    1
    There Will Be Code    1
    Bad Code    2
    The Total Cost of Owning a Mess.    3
    Schools of Thought.    11
    We are Authors.    12
    The Boy Scout Rule    13
    Prequel and Principles    14
    Conclusion    14
    Bibliography    15
Meaningful Names by Tim Ottinger    17
    Introduction    17
    Use Intention-revealing Names    17
    Avoid Disinformation    19
    Make Meaningful Distinctions    20
    Use Pronounceable Names    21
    Use Searchable Names    22
    Avoid Encodings    23
    Avoid Mental Mapping    24
    Class Names    25
    Method Names    25
    Don't Be Cute    25
    Pick One Word Per Concept    26
    Don't Pun    26
    Use Solution Domain Names    27
    Use Problem Domain Names    27
    Add Meaningful Context    27
    Don't add Gratuitous Context    29
    Final Words ...    30
Functions    31
    Small!    34
    Do one thing.    35
    One level of abstraction per function.    36
    Switch Statements.    37
    Use descriptive names.    39
    Function Arguments.    39
    Have no side-effects.    43
    Command Query Separation    44
    Prefer exceptions to returning error codes.    45
    Don't Repeat Yourself.    47
    Structured Programming    48
    How do you write functions like this?    48
    Conclusion    49
    SetupTeardownIncluder    49
    Bibliography    52
Comments    53
    Comments do not make up for bad code.    55
    Explain yourself in code.    55
    Good Comments    55
    Bad Comments    59
    Example    71
    Bibliography    74
Formatting    75
    The Purpose of Formatting    76
    Vertical Formatting    76
    Horizontal Formatting    84
    Team Rules    89
    Uncle Bob's Formatting Rules.    90
Objects and Data Structures    93
    Data Abstraction    93
    Data/Object anti-symmetry.    95
    The Law of Demeter    97
    Data Transfer Objects    99
    Conclusion    101
    Bibliography    101
Error Handling by Michael Feathers    103
    Use Exceptions Rather than Return Codes    103
    Write Your Try-Catch-Finally Statement First    105
    Use Unchecked Exceptions    106
    Provide Context with Exceptions    107
    Define Exception Classes In Terms of a Caller's Needs.    107
    Define the Normal Flow    109
    Don't Return Null    110
    Don't Pass Null    111
    Conclusion    112
    Bibliography    112
Boundaries by James Grenning    113
    Bibliography    119
Unit Tests    121
    The Three Laws of TDD    122
    Keeping Tests Clean    123
    Clean Tests    124
    One Assert per Test    129
    F.I.R.S.T.    132
    Conclusion    132
    Bibliography    133
Classes    135
    Class Organization    135
    Classes should be Small!    136
    Organizing for Change    146
    Bibliography    150
Systems    By Dean Wampler 151
    How would you build a city?    151
    Separate constructing a system from using it    152
    Scaling Up    155
    Java Proxies    158
    Pure Java AOP Frameworks    160
    AspectJ Aspects    163
    Test-drive the system architecture    164
    Optimize decision making    165
    Use standards wisely, when they add demonstrable value    165
    Systems need Domain-Specific Languages    166
    Conclusion    166
    Bibliography    167
Emergence By Jeff Langr    169
    Getting Clean via Emergent Design    169
    Simple Design Rule 1: Runs all the tests    170
    Simple Design Rules 2-4: Refactoring    170
    No Duplication    170
    Expressive    173
    Minimal Classes and Methods    174
    Conclusion    174
    Bibliography    174
Concurrency    by Brett Schuchert 175
    Why Concurrency?    176
    Challenges    177
    Concurrency Defense Principles    178
    Know Your Library    180
    Know Your Execution Models    181
    Beware Dependencies between Syncrhonized Methods    182
    Keep Synchronized Sections Small    183
    Writing Correct Shut-Down Code is Hard    183
    Testing Threaded Code    184
    Conclusion    188
    Bibliography    189
Successive Refinement    191
    Args Implementation    192
    Args: the rough draft.    198
    String Arguments    212
     Conclusion    246
JUnit Internals    249
    Conclusion    262
Refactoring SerialDate    263
    Conclusion    280
    Bibliography    281
Smells and Heuristics    283
    Comments    283
    Environment    284
    Functions    285
    General    285
    Java    304
    Names    306
    Tests    310
    Conclusion    311
    Bibliography    312
Concurrency II    by Brett Schuchert 313
    Client/Server Example    313
    Possible Paths of Execution    317
    Knowing Your Library    322
    Dependencies between methods can break concurrent code    325
    Increasing Throughput    329
    Deadlock    331
    Testing Multi-Threaded Code    335
    Tool Support for Testing Thread-Based Code    337
    Conclusion    338
    Tutorial: Full Code Examples    339
org.jfree.date.SerialDate    345
Cross References of Heuristics    406
&lt;/pre&gt;</description>
      <pubDate>Tue, 08 Apr 2008 00:10:16 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:0280362f-4830-42b9-84db-edaa724b41b1</guid>
      <author>Uncle Bob</author>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew</link>
      <category>Uncle Bob's Blatherings</category>
      <category>Clean Code</category>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Artist managment</title>
      <description>&lt;p&gt;Take your online presence to the next level with Audio Dynamix Sound &amp;#38; Design &amp;#8211; offering services to leverage and engage your growing audience with Professional Mixing &amp;#38; Mastering Services, and elegantly designed websites optimized for social interactions &amp;#38; mobile viewing.&lt;/p&gt;


	&lt;p&gt;Having an online presence beyond facebook and twitter establishes yourself as a business/brand and helps maximize your online social presence. This puts you on a platform to be taken more seriously by label representatives and A&amp;#38;R&amp;#8217;s.&lt;/p&gt;


	&lt;p&gt;Audio Dynamix Sound &amp;#38; Design offers:
- Website Design/Consultation
- Artist Management &amp;#38; Resources&lt;/p&gt;


	&lt;p&gt;Please see our blog below and don&amp;#8217;t hesitate to contact us with any questions:&lt;/p&gt;</description>
      <pubDate>Wed, 08 Feb 2012 15:59:07 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:fe5e4de7-6090-47ca-bb41-e3f165f4687c</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-202493</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by service apartment singapore</title>
      <description>&lt;p&gt;Thanks for this post. It Very nice article. It was a very good article. I like it. Thanks for sharing. Ask you to share good article again.&lt;/p&gt;</description>
      <pubDate>Wed, 08 Feb 2012 05:29:28 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:bcdb9d5a-20fe-4fbc-927e-ab4f2b21b3c4</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-202346</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by drucker</title>
      <description>&lt;p&gt;Thanks for the information in this blog. I am sure that your visitors will enjoy this post just as much as I did.&lt;/p&gt;</description>
      <pubDate>Tue, 07 Feb 2012 07:40:49 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:f3bb877c-e215-471c-9a38-1ecf9858400c</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-202114</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Aaron</title>
      <description>&lt;p&gt;You know, content area is one of the most overlooked about areas of a site when it comes to a style. However, it is also a very essential area as far as making a group goes.&lt;/p&gt;</description>
      <pubDate>Tue, 07 Feb 2012 06:21:06 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:e3758db0-69e0-44ba-ba7f-8345b27a0ffe</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-202110</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by actividades culturales Madrid</title>
      <description>&lt;p&gt;I just got to this amazing site not long ago. I was actually captured with the piece of resources you have got here. Big thumbs up for making such wonderful blog page!&lt;/p&gt;</description>
      <pubDate>Mon, 06 Feb 2012 15:37:07 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:0c3faa54-45bb-4755-a7a5-f15739f2314b</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201962</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by www.fiberinternetprovider.com</title>
      <description>&lt;p&gt;WOW! What a book! So useful and very informative&amp;#8230; even a non-pro whizkids can understand this book! Thanks Bob!&lt;/p&gt;</description>
      <pubDate>Mon, 06 Feb 2012 09:57:16 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:f8c68cb9-c65e-475c-a446-057b4a04d2f2</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201951</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Security Companies Birmingham</title>
      <description>&lt;p&gt;Hi everyone. after readig this article I can say that it is really a knowledgeable post. I have been in search of this topic and got the best today!&lt;/p&gt;</description>
      <pubDate>Mon, 06 Feb 2012 05:54:03 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:8038f5f5-080d-4b17-98c2-4203efcbbdaf</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201934</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by ooglaseren</title>
      <description>&lt;p&gt;Its been wow reading your article. I would like to jump on this site again.This information is excellent, as share good stuff with good concept&lt;/p&gt;</description>
      <pubDate>Sun, 05 Feb 2012 23:17:41 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:086a514f-2287-4e74-ac3a-3f663f3241d1</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201862</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Brfo</title>
      <description>&lt;p&gt;Thanks for the nice blog. It was very useful for me. Keep sharing such ideas in the future as well. This was actually what I was looking for, and I am glad to come here! Thanks for sharing the information with us.&lt;/p&gt;</description>
      <pubDate>Sun, 05 Feb 2012 20:00:59 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:e1fb7dda-05fa-4ebc-baf8-2cec711467b0</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201849</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Forfait mobile</title>
      <description>&lt;p&gt;You stated that you don&#8217;t like the author&#8217;s statement on ActiveRecord. But you did not state * why * you don&#8217;t like his statement.&lt;/p&gt;</description>
      <pubDate>Sun, 05 Feb 2012 15:17:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:62678da1-7e0c-44db-b19c-81d259b07856</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201844</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by rocks2010</title>
      <description>&lt;p&gt;Our Will writing service is a fast, cost-effective and quality service. We provide our expert bespoke Will writing service at highly competitive prices.
&lt;a href="http://www.mothers-day--flowers.com" rel="nofollow"&gt;Mother&amp;#8217;s Day Flowers&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sat, 04 Feb 2012 16:16:06 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:cd95a08c-b3d4-4022-bc24-56bec8bfb48b</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201749</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Versicherungsb&#252;ro</title>
      <description>&lt;p&gt;After reading this article, I am going to recommend others to read it as well, since I know they will enjoy it as much as I did.&lt;/p&gt;</description>
      <pubDate>Sat, 04 Feb 2012 15:39:46 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:0b488f7f-d17c-482c-ad4e-8bd0c678ed1f</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201747</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by hekwerken</title>
      <description>&lt;p&gt;Luchthaven Schiphol parkeren? Vergelijk parkeren schiphol en parkeer voordelig. Goedkoop parkeren Schiphol. Zie ook lang parkeren Schiphol aanbieders.&lt;/p&gt;</description>
      <pubDate>Sat, 04 Feb 2012 00:07:59 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:2a89caaf-d888-4c94-a222-72b829065da6</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201679</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Rumah</title>
      <description>&lt;p&gt;I always looking for these kind of sites..This site gives me lots of unique information which i exactly want..&lt;/p&gt;</description>
      <pubDate>Fri, 03 Feb 2012 01:28:14 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:97d9feb0-9b52-455b-9106-1357152cf99d</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-201430</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Print Flyers</title>
      <description>&lt;p&gt;I always follows this site on tweeter..This site is one of best informative site..!&lt;/p&gt;</description>
      <pubDate>Wed, 01 Feb 2012 23:59:50 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:45cdb7a9-5bbb-4ad3-82f8-65c0fccbe6f4</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200625</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Will Writers Hull</title>
      <description>&lt;p&gt;Our Will writing service is a fast, cost-effective and quality service. We provide our expert bespoke Will writing service at highly competitive prices.&lt;/p&gt;</description>
      <pubDate>Wed, 01 Feb 2012 12:28:09 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:3f6d2c50-242a-42dc-bdaf-6d5a8e32ce37</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200575</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by flowers</title>
      <description>&lt;p&gt;Wow! I really loved reading your blog. It was very well written and simple to understand. Unlike additional blog. I have read.&lt;/p&gt;</description>
      <pubDate>Wed, 01 Feb 2012 09:44:52 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6c0dcc29-2e35-455e-b19e-1fa022a1ab4c</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200563</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by g&#252;nstig Urlaub machen</title>
      <description>&lt;p&gt;I will really appreciate the writer&amp;#8217;s selection for choosing this great article.Here is deep description about the article&amp;#8217;s tittle.&lt;/p&gt;</description>
      <pubDate>Wed, 01 Feb 2012 06:27:19 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:d348a8a6-ad18-4590-956f-5b8773105966</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200541</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by ljubavni stihovi</title>
      <description>&lt;p&gt;Excellent post is written here. I want to thank you for this informative read. I will bookmark this site and visit again..&lt;/p&gt;</description>
      <pubDate>Wed, 01 Feb 2012 05:35:40 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:fa655068-3c62-4c63-9ee9-aae7d2f7339f</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200532</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by bank career</title>
      <description>&lt;p&gt;This article gives the light in which we can observe the reality. 
This is very nice one and gives indepth information. Thanks for this nice article.&lt;/p&gt;</description>
      <pubDate>Tue, 31 Jan 2012 23:53:20 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:ee5f99e2-e533-418f-9a35-278c2b335923</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200434</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Carl</title>
      <description>&lt;p&gt;Thanks for taking the time to discuss this matter. I&amp;#8217;ve read some excellent stuff here, great site.  &lt;a href="http://www.starstreet.de" rel="nofollow"&gt;cd aufnehmen&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 31 Jan 2012 16:52:38 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:34349812-29ad-4a6f-bd17-2810f0b628ea</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200415</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Smart Repair</title>
      <description>&lt;p&gt;With all the sites out there with almost useless information it&amp;#8217;s nice to find a blog whose admin takes the time to create good material&lt;/p&gt;</description>
      <pubDate>Tue, 31 Jan 2012 14:26:51 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:094c5d25-c5c6-4bfb-b623-18403d399dbb</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200402</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by hunza</title>
      <description>&lt;p&gt;When virtue and modesty enlighten her charms, the lustre of a beautiful woman is brighter than the stars of heaven, and the influence of her power it is in vain to resist.
&lt;a href="http://www.clikzy.com" rel="nofollow"&gt;web design company new york&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 31 Jan 2012 12:57:15 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:c9af4ade-2f77-4e5e-ace7-96a4803e4208</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200400</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by restaurants in savannah ga</title>
      <description>&lt;p&gt;This series of Clean code is the best one i should suggest!&lt;/p&gt;</description>
      <pubDate>Mon, 30 Jan 2012 12:26:52 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:b6710a89-c3f7-4ce6-bfd9-d9acacb610c2</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200265</link>
    </item>
    <item>
      <title>"Clean Code.  Whew!" by Steve Waters Vancouver</title>
      <description>&lt;p&gt;A random act of kindness!&lt;/p&gt;</description>
      <pubDate>Sun, 29 Jan 2012 21:17:43 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:ebd4ebd4-1481-4784-9591-3e971db98576</guid>
      <link>http://blog.objectmentor.com/articles/2008/04/08/clean-code-whew#comment-200131</link>
    </item>
  </channel>
</rss>

