Object Mentor Blog: So... You want your code to be maintainable. http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable en-us 40 So... You want your code to be maintainable. <p>We know that maintenance is 90% of the software lifecycle, and 90% of the cost. We know that our systems need to be flexible, reusable, and maintainable. Indeed, that&#8217;s why we spend so much of our time trying to get the design and architecture just right. Because we all know that good design and architecture is the key to flexibility, reusability, and maintainability&#8230;right?</p> <p>Of course. Good design and architecture is what makes software easy to change. Good design and architecture separates the things that change for one reason from the things that change for another reason (The Single Responsibility Principle). Good design allows us to add new features without changing a lot of old code (Open Closed Principle). Good design makes sure that high level policy does not depend on low level detail (Dependency Inversion Principle), etc. etc.</p> <p>So how do we get good design? Well, that&#8217;s tricky. Oh it&#8217;s not too tricky to get a good design in place at first. The tricky part is to keep the design good. That&#8217;s the problem, you see. It&#8217;s not that the design starts out so bad (although sometimes&#8230;) rather it is that the design degrades over time as the system changes.</p> <p>Systems change. Often they change in ways that thwart the original intent of the design. Unfortunately, changing the design to align to these changes is <em>hard</em>. So we wind up hacking the new features into the system and thwarting the design. And that&#8217;s how even the best designed systems rot.</p> <p>So how do we keep the design from rotting? How do we make sure we can migrate the design as the system changes? Simple. Tests.</p> <p>When you have a suite of tests that covers &gt;90% of the code in the system, you are not afraid to make changes. Every time you make a little change you run those tests, and you <em>know</em> that you have not broken anything. This gives you the confidence to make the next change, and the next, and the next. <em>It gives you the confidence to change the design!</em></p> <p>Nothing makes a system more flexible than a suite of tests. Nothing. Good architecture and design are important; but the affect of a robust suite of tests is an order of magnitude greater. It&#8217;s so much greater because those tests enable you to improve the design.</p> <p>This can&#8217;t be overstated. If you want your systems to be flexible, write tests. If you want your systems to be reusable, write tests. If you want your systems to be maintainable, write tests.</p> <p>And write your tests using the <a href="http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/">Three Laws of <span class="caps">TDD</span></a>.</p> Tue, 24 Jun 2008 23:07:46 -0500 urn:uuid:cb887e07-ff3c-4fe1-af2c-11151049fe41 Uncle Bob http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable Uncle Bob's Blatherings Agile Methods Design Principles Clean Code "So... You want your code to be maintainable." by iPhone contacts backup <p>Yes. Of course, every programmer want to keep the code maintainable so they could be read more easily.</p> Wed, 11 Jan 2012 04:58:18 -0600 urn:uuid:be3ad794-fdac-4ec5-a031-69f60d1751b9 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-196942 "So... You want your code to be maintainable." by Casque Audio Dr Dre <p>Afin d&#8217;exploiter efficacement des beats by dr dre alternatives nouveau marché, vous devez définir exactement ce qu&#8217;il est que vous êtes par exemple selling.For, si vous avez des enchères en ce casque monster cable moment un récepteur stéréo Carver, une paire de vieux beats Dr Dre, un ensemble des orateurs étagères Yamaha, et une collection de casque monster beats pas cher disques vinyles, il ya fort à parier que votre créneau est sur le marché de la production musicale .. Jetez un rapide coup d&#8217;œil les articles disponibles chez votre fournisseur de gros et de ecouteur monster choses dans votre backstock revente, et de décider où vous vous situez . Ce qui suit est une liste des sites de casque by dre revente les plus populaires disponibles pour vous et une courte description de chacun. Lorsque vous trouvez un (ou peut-être plus d&#8217;un) qui travaille pour vous, passez à l&#8217;étape 3. Spécialisée dans les ecouteur monster beats produits faits maison et de démarrage, bat pro est la ressource à consulter pour l&#8217;acheteur à la recherche d&#8217;quelque chose d&#8217;original. Aussi un site produit spécifiquement maison, beat by dr dre est une nouvelle alternative avec une base de consommateurs élégant et bohème. <a href="http://www.hifibeat.com/" rel="nofollow">http://www.hifibeat.com/</a></p> Sat, 31 Dec 2011 02:46:45 -0600 urn:uuid:04b3ee08-93b8-4836-b874-284508dc7780 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-193934 "So... You want your code to be maintainable." by ysbearing <p>Slewing bearing called slewing ring bearings, is a comprehensive load to bear a large bearing, can bear large axial, radial load and overturning moment.</p> Wed, 19 Oct 2011 03:41:36 -0500 urn:uuid:1d48e309-17cd-4fbd-8454-f643a404b3fa http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-159548 "So... You want your code to be maintainable." by ??????????????? <p>?? ??:http://www.toryburchstore.jp/category-7-b0.html Tory Burch???:http://www.toryburchstore.jp/category-7-b0.html ?? ???:http://www.toryburchstore.jp/category-7-b0.html ?????:http://www.toryburchstore.jp/category-8-b0.html ?? ????:http://www.toryburchstore.jp/category-3-b0.html ?? ? ??:http://www.toryburchstore.jp/category-2-b0.html ?? ?:http://www.toryburchstore.jp/category-6-b0.html ?? ?????:http://www.toryburchstore.jp/category-6-b0.html ???????:http://www.toryburchstore.jp/category-2-b0.html ?? ????:http://www.toryburchstore.jp/category-4-b0.html ????:http://www.toryburchstore.jp/category-5-b0.html</p> Mon, 10 Oct 2011 03:04:24 -0500 urn:uuid:4cb466e1-6e2c-46b5-8e47-50fdac3b5358 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-153415 "So... You want your code to be maintainable." by ???? <p>??888?<a href="http://www.shanghaikanpo.com/view/1451.html" rel="nofollow">http://www.shanghaikanpo.com/view/1451.html</a> ???<a href="http://www.shanghaikanpo.com/view/1374.html" rel="nofollow">http://www.shanghaikanpo.com/view/1374.html</a> ????:http://www.shanghaikanpo.com/view/1146.html Cialis?<a href="http://www.shanghaikanpo.com/view/1146.html" rel="nofollow">http://www.shanghaikanpo.com/view/1146.html</a> ???:http://www.shanghaikanpo.com/view/1065.html ? ???<a href="http://www.shanghaikanpo.com/view/1378.html" rel="nofollow">http://www.shanghaikanpo.com/view/1378.html</a> ?????<a href="http://www.shanghaikanpo.com/view/1125.html" rel="nofollow">http://www.shanghaikanpo.com/view/1125.html</a> levitra?<a href="http://www.shanghaikanpo.com/view/1125.html" rel="nofollow">http://www.shanghaikanpo.com/view/1125.html</a></p> Mon, 10 Oct 2011 03:03:15 -0500 urn:uuid:cd619d6c-0717-4843-9028-b0294f531ce4 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-153412 "So... You want your code to be maintainable." by ?????? <p>????????<a href="http://www.oafane.com/" rel="nofollow">??</a>????????<a href="http://www.oafane.com/" rel="nofollow">?? ?</a>???????<a href="http://www.oafane.com/" rel="nofollow">?? ??</a>??????<a href="http://www.oafane.com/" rel="nofollow">?? ?</a>????????????? <a href="http://www.toryburchwallets.jp/boots.html" rel="nofollow">?????</a>,<a href="http://www.toryburchwallets.jp/boots.html" rel="nofollow">?? ?</a>,<a href="http://www.toryburchwallets.jp/handbags.html" rel="nofollow">?? ?</a>,<a href="http://www.toryburchwallets.jp/heels.html" rel="nofollow">?? ? ??</a>,<a href="http://www.go-boots.com/" rel="nofollow">UGG </a>,<a href="http://www.go-boots.com/ugg-classic-mini-boots-store-14.html" rel="nofollow">UGG ???</a>,<a href="http://www.go-boots.com/ugg-jimmy-choo-store-10.html" rel="nofollow">UGG JIMMY CHOO ?</a></p> Tue, 27 Sep 2011 19:36:08 -0500 urn:uuid:77d9f39e-3e41-41d3-adc2-119d6d399829 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-146257 "So... You want your code to be maintainable." by TeraByte HardDrive <p>Visit here if you wanna TeraByte HardDrive</p> Sat, 24 Sep 2011 16:02:38 -0500 urn:uuid:2ce54ed7-aa02-4270-be1a-1fb6610a79d1 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-145101 "So... You want your code to be maintainable." by Air Jordan 10 <p><a href="http://www.realjordanshoessale.com" rel="nofollow">http://www.realjordanshoessale.com</a></p> Wed, 06 Jul 2011 04:15:07 -0500 urn:uuid:bee43424-21ef-43f6-9ab6-c8f918fbb6da http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-115222 "So... You want your code to be maintainable." by christian louboutin shoes on sale <p>Have the <a href="http://www.blacklouboutinshoes.com/pumps-c-2.html" rel="nofollow">christian louboutin patent leather pumps</a> is a happy thing. Here have the most complete kinds of <a href="http://www.blacklouboutinshoes.com/platforms-c-3.html" rel="nofollow">christian louboutin leather platform pumps</a>.</p> Fri, 03 Jun 2011 03:01:52 -0500 urn:uuid:de0824d8-1557-4163-8d9a-086133bb8756 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-107550 "So... You want your code to be maintainable." by Best Phone Lookup <p>I visited this page first time and found it Very Good Job of acknowledgment and a marvelous source of info&#8230;......Thanks Admin!</p> Thu, 02 Jun 2011 23:46:57 -0500 urn:uuid:627540d3-c4c2-496f-9f2c-3732aa9cbccf http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-107445 "So... You want your code to be maintainable." by Monster Beats By Dr. Dre Studio <p>The <a href="http://www.drebeatsstudio.com/beats-by-dr-dre-studio-c-3.html" rel="nofollow">Monster Beats By Dr. Dre Studio Headphones</a> are classic shoes.You will be proud of owning them. Don&#8217;t hesitate!Take <a href="http://www.drebeatsstudio.com/beats-by-dr-dre-pro-c-4.html" rel="nofollow">Monster Beats By Dr. Dre Pro</a> home! Choose our <a href="http://www.drebeatsstudio.com/beats-by-dr-dre-solo-c-5.html" rel="nofollow">Monster Beats By Dr. Dre Solo Headphones</a> will make you have an amazing discovery.</p> Mon, 30 May 2011 02:30:31 -0500 urn:uuid:d3eff254-053d-4c6f-a768-df1bc0683545 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-104811 "So... You want your code to be maintainable." by okey oyunu oyna <p>good source. Thanks</p> <p>internette görüntülü olarak <a href="http://www.okeyoyunu-oyna.com" rel="nofollow">okey oyunu oyna</a>, gerçek kisilerle tanis, turnuva heyecanini yasa.</p> Wed, 27 Apr 2011 13:12:33 -0500 urn:uuid:65ba8055-87e9-446a-b3c0-0548cd4232bf http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-91854 "So... You want your code to be maintainable." by Criminal Records <p>I’ve personally done this before I was a consultant and I’ve seen people do it. It is possible to take advantage of the chaos that exists in many organizations and simply do your job well.</p> Thu, 17 Feb 2011 17:10:39 -0600 urn:uuid:440f404a-aea6-4e6d-b4e1-946c7dba5c70 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-63976 "So... You want your code to be maintainable." by Tenant Screening <p>Systems change. Often they change in ways that thwart the original intent of the design. Unfortunately, changing the design to align to these changes is hard. So we wind up hacking the new features into the system and thwarting the design.</p> Thu, 17 Feb 2011 15:19:50 -0600 urn:uuid:ef4c2a79-93bb-4144-bdd9-58e4c93fab5b http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-63907 "So... You want your code to be maintainable." by Criminal Check <p>If you want your systems to be flexible, write tests.</p> Thu, 27 Jan 2011 17:17:33 -0600 urn:uuid:52ada227-ab9b-4c69-b1d1-af9e2aaacb2f http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-59889 "So... You want your code to be maintainable." by shaded pold motor <p>Thanks for writing this blog post, it was informative, enjoyable, and most importantly &#8211; a good length!</p> Thu, 27 Jan 2011 01:02:25 -0600 urn:uuid:9f5aca7d-66c8-4aed-936f-514dc0c34417 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-59723 "So... You want your code to be maintainable." by electric winch <p>Your site is amazing.I am very impressed to see this,i want to come back for visiting your site.Keep doing Good as well as you can.</p> Mon, 24 Jan 2011 02:00:56 -0600 urn:uuid:109a8201-4738-48ce-b73b-19bee0d31313 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-58933 "So... You want your code to be maintainable." by iPad to mac transfer <p>Thanks for shareing! I agree with you. The artical improve me so much! I will come here frequently. iPad to Mac Transfer lets you transfer music, movie, photo, ePub, PDF, Audiobook, Podcast and TV Show from iPad to Mac or iPad to iTunes.</p> Fri, 21 Jan 2011 21:08:10 -0600 urn:uuid:46613e06-787b-4411-ad92-a43344fcd1e1 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-58472 "So... You want your code to be maintainable." by http://www.blacktowhiteiphone4.com <p>According to a previous source of ours, we have been told that Apple in fact has no plans to release the <a href="http://www.blacktowhiteiphone4.com" rel="nofollow">white model iPhone 4</a>. Our source hypothesizes another &quot;delay&quot; communicated around March leading us into an iPhone 5 release time-frame in June / July.</p> Thu, 23 Dec 2010 00:34:08 -0600 urn:uuid:61b4693a-8d75-46a6-85f2-118277157f0b http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-51227 "So... You want your code to be maintainable." by oxpdffr <p><a href="http://www.oxpdf.fr/excel-to-pdf-converter.html" rel="nofollow"> Excel en PDF Convertisseur</a> s&#8217;installe dans votre ordinateur comme un imprimante virtuelle, il supporte convertir tous les formats imprimable en document PDF, tels que Excel(xls, xlsx), TXT, les images (JPEG, GIF, PNG, BMP, EMF, EWF, TIFF), etc, compatible avec Microsoft Office 2003/2007/2010. Huit formats de sortie : PS, EPS, PDF, PNG, JPEG, BMP, PCX, et TIFF, compatible avec Adobe Acrobat 9.0.<a href="http://www.oxpdf.fr/download/exceltopdfconverter-1_0_0.exe" rel="nofollow">Télécharger</a> gratuitement Excel en PDF Convertisseur et expérimenter ce logiciel.</p> Thu, 04 Nov 2010 01:52:24 -0500 urn:uuid:8a73da21-a7b3-4eb4-bcdf-cb5c06c6bba5 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-37642 "So... You want your code to be maintainable." by authentic nikes <p>I love how you guys always change the mysterious voodoo into common sense</p> <p>tests. Thanks SEOMoz for letting CRE tell your story so we could learn how to</p> <p>think like human beings instead of bots.</p> Wed, 03 Nov 2010 03:54:22 -0500 urn:uuid:24994a45-e11f-4bc4-abed-fb8c4588da54 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-37435 "So... You want your code to be maintainable." by chenyan <p><a href="http://blog.objectmentor.com/articles/2008/06/26/top-refactorings" rel="nofollow">http://blog.objectmentor.com/articles/2008/06/26/top-refactorings</a></p> Tue, 13 Apr 2010 09:47:24 -0500 urn:uuid:63a773c5-84d6-4d57-b55b-27e9dfb22784 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-9871 "So... You want your code to be maintainable." by moncler clearance <p>Very quietly I take my leave.To seek a dream in <a href="http://www.edhardy-buy.com/" rel="nofollow">http://www.edhardy-buy.com/</a> starlight.</p> Thu, 01 Apr 2010 01:24:26 -0500 urn:uuid:d08848d0-35da-46dd-92cb-b195778ee8d9 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-9018 "So... You want your code to be maintainable." by tieTYT <p>Although I agree with the start (about design) and the finish (about tests), I don&#8217;t think tests enforce your design. They just check that your system works correctly. For example, I can have 90% test coverage and still make direct database calls in my view. This is bad design and good tests.</p> Sat, 28 Jun 2008 10:35:38 -0500 urn:uuid:8ba0285d-a44a-4777-876c-f122b540b1db http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-1865 "So... You want your code to be maintainable." by Rich Sharpe <p>&#8220;The tricky part is to keep the design good&#8221;</p> <p>Although I agree this is difficult a large part is Attitude! Both you and Scott Bain, in his book Emergent Design, discuss evolving the Professionalism of our industry. If a developer has the attitude of &#8216;every time I touch the code, I will make it a bit better&#8217; then they are on the path to keep the design good.</p> <p>Of course we do not live in a Utopia and some developers just want to hack code for the pay&#8230;and obviously &#8216;a bit better&#8217; is subjective &#8211; but I think you get the point ;-)</p> Thu, 26 Jun 2008 14:26:00 -0500 urn:uuid:9d0bd59d-8493-4b79-b2d9-03b0b256f7e6 http://blog.objectmentor.com/articles/2008/06/24/so-you-want-your-code-to-be-maintainable#comment-1861