<?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>Thinkathon BLUEs &#187; code</title>
	<atom:link href="http://blog.sepharoo.com/tag/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sepharoo.com</link>
	<description>Walk with Blue</description>
	<lastBuildDate>Wed, 08 Sep 2010 20:39:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Code Refactoring Seminar</title>
		<link>http://blog.sepharoo.com/2009/11/27/code-refactoring-seminar/</link>
		<comments>http://blog.sepharoo.com/2009/11/27/code-refactoring-seminar/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 04:05:59 +0000</pubDate>
		<dc:creator>Seph Buluran</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[refactoring]]></category>

		<guid isPermaLink="false">http://blog.sepharoo.com/?p=84</guid>
		<description><![CDATA[URL: http://code.google.com/p/codeleanrefactoringseminar/downloads/list How should you refactor your code? * Incremental refactoring &#038; the Boy Scout rule * “Leave the campground cleaner than when you found it” * Code quality Code Rot &#038; Technical Debt Code rot – the decay in software that occurs as a result of not updating your software in respect to the [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d41d8cd98f00b204e9800998ecf8427e&amp;default=http://blog.sepharoo.com/star.jpg' alt='No Gravatar' width=40 height=40/><p>URL: http://code.google.com/p/codeleanrefactoringseminar/downloads/list<br />
How should you refactor your code?</p>
<p>    * Incremental refactoring &#038; the Boy Scout rule</p>
<p>    * “Leave the campground cleaner than when you found it”</p>
<p>    * Code quality</p>
<p>Code Rot &#038; Technical Debt<br />
Code rot – the decay in software that occurs as a result of not updating your software in respect to the changing environment in which resides<br />
Technical debt – The situation that occurs when you opt to postpone some development activities in favor of a shorter release date.<br />
“Agile – the power of moving quickly and easily; nimbleness: exercises demanding agility“<br />
Does being agile means that you get your product out the door as fast as possible?</p>
<p>    * Yes..even if its substandard it is still being agile..</p>
<p>Would you deliver a &#8220;squirrel burger&#8221; if it meants that you could make the deadline?<br />
Is having a technical debt a bad thing?</p>
<p>    * Its tactical decision.</p>
<p>True meaning of Agility</p>
<p>    * Agility is measured by the speed of change, not the speed of delivery</p>
<p>How do you know if your code is suffering from code rot?</p>
<p>    * immobile</p>
<p>    * obscure</p>
<p>    * rigidity</p>
<p>    * fragility</p>
<p>    * Dispensible</p>
<p>How do you know if your code is suffering from a code rot?<br />
Code quality – your code base that many bad code smells.<br />
Development effort – it is becoming more and more difficult to understand.<br />
- take more time to work on the same parts of the code in your system.<br />
Productivity – more difficult to change, developers missing deadlines.</p>
<p>Strategies for Code rot</p>
<p>    * automated unit tests</p>
<p>    * code reviews</p>
<p>    * continuous code write</p>
<p>What if theres too much technical debt in your project?</p>
<p>    * Rewrite vs. Refactor</p>
<p>    * Depends on the time</p>
<p>What happends to shops that don’t refactor?</p>
<p>    * The dead sea effect</p>
<p>    * code quality drops</p>
<p>    * senior developers quits. they can no longer maintain program</p>
<p>    * morale in the shop drops. seniors quit.</p>
<p>    * New hires come in, new developers don’t stay because of code quality.</p>
<p>    * The big ball of mud</p>
<p>    * in many case, systems with large technical debts devolve into systems with no discernible architecture or design (aka the “Big Ball of Mud”)</p>
<p>    * common in development shops that suffers from the dead sea effect.</p>
<p>    * prevent your application from becoming a BBOM by continously refactoring your code.</p>
<p>Refactor or Rewrite?</p>
<p>    * rewriting solves the symptom, not the root of the problem</p>
<p>    * the real problem is that there is no refactoring.</p>
<p>    * The BBOM is the symptom of bad development practices.</p>
<p>    * You should only rewrite a system if:</p>
<p>    * The system does not work at all</p>
<p>    * It is cheaper to create a new system than to maintain the exsiting system</p>
<p>Beware of the Second System effect</p>
<p>    * The second system effect is the tendency for developers to redesign a successor system into giant..</p>
<p>The tale of the Squirrel Burger</p>
<p>What would you do?</p>
<p>    * For me, I would do give them the squirrel burger for I am thinking of the sales not the quality of burger we have.</p>
<p>Would you serve it?</p>
<p>Answers:</p>
<p>Reckless/Deliberate</p>
<p>    * We don&#8217;t have time to design?</p>
<p>Prudent</p>
<p>    * we must ship now and deal with consequences</p>
<p>    * Now we now how we should have done it</p>
<p>Inadvertent</p>
<p>    * What&#8217;s layering?</p>
<p>Anatomy of a Software Development &#8220;Squirrel Burger&#8221;</p>
<p>    * No Documentation</p>
<p>    * Nobody understands how the system works.</p>
<p>    * The shop is &#8220;agile&#8221; so they decided to document</p>
<p>    * Low Code Quality</p>
<p>    * Inefficient Development Proccess</p>
<p>If it isn&#8217;t broken, then why should we even fix it?</p>
<p>    * Refactoring as defect prevention</p>
<p>    * refactoring makes code easirer to understand and that makes it easier to find bugs on your code</p>
<p>Why refactor our code if the client doesn&#8217;t pay us to refactor?</p>
<p>    * Refactoring and the story of Louis Pasteur</p>
<p>    * During Pasteur&#8217;s time, the concept of washing your hands before an operation was thought to be rediculous</p>
<p>    * Refactoring is something that clients rarely ask for.</p>
<p>Refactoring Part II</p>
<p>*fizzbuzzzzbaz coding*</p>
<p>The two values of software</p>
<p>    * Function</p>
<p>    * Form</p>
<p>Some Bad Code smell Examples</p>
<p>    * Contived complexity</p>
<p>    * Bad design they want to try out.</p>
<p>Single Responsibility Principle<br />
Many bad code smells inviolate this principle.<br />
Its should do only one and one thing.</p>
<p>Does the following code violate the SRP?<br />
Examples:</p>
<p>    * Statement-level examples</p>
<p>    * Method-level examples</p>
<p>    * Class-level examples</p>
<p>Bad code Smells<br />
The Couplers</p>
<p>    * siamse twins, kill one affects the otherother</p>
<p>The Bloaters</p>
<p>    * Class, that no one undestands it</p>
<p>Object Orrientation Abusers</p>
<p>    * Program code they still writing C. Ugly code structure.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.sepharoo.com/2009/11/27/code-refactoring-seminar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
