<?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>梁剑的Blog &#187; 重构</title>
	<atom:link href="http://icomes.net/tag/%e9%87%8d%e6%9e%84/feed/" rel="self" type="application/rss+xml" />
	<link>http://icomes.net</link>
	<description>做有趣的事，做有用的人</description>
	<lastBuildDate>Wed, 23 Jun 2010 16:04:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>关于重构</title>
		<link>http://icomes.net/2009/09/18/%e5%85%b3%e4%ba%8e%e9%87%8d%e6%9e%84/</link>
		<comments>http://icomes.net/2009/09/18/%e5%85%b3%e4%ba%8e%e9%87%8d%e6%9e%84/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 14:18:18 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[工作日志]]></category>
		<category><![CDATA[重构]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=444</guid>
		<description><![CDATA[重构是最近想得比较多的一个词。
星期一去总部培训，其中一门课叫做《边重构边生活》，提到很多关于重构的意识。
对其中一个说法印象尤为深刻：火箭发射式的重构。
火箭发射是一件相当隆重的大事，
需要经过长时间的准备，花费不计其数的人力物力后，
在一个精心选择的时间，所有相关人物齐聚一堂，等待火箭的轰然升空。
最大的问题是，火箭发射可能失败，在付出巨大的努力后，依然失败。
个中的情形与后果，与软件开发中的一次性重构非常相似。
一次性重构是软件开发中一种相当具有冒险精神的活动，
需要实施者有“不成功便成人”的坚毅决心，埋头苦干若干日子，
最后在合十祈祷中，迎来一个充满不确定因素的发布。
用Bison的话来说，是找死。
找死也有两种找法，
一种是终止老版本，不接新需求，专心闭门造车，重写一个新版本；
还有一种是同时维护两个版本，老版本做新需求，等新版本做出来之后，再把新功能合并过去。
前一种伴随着巨大的风险，而后一种则会带来太多额外的复杂性，都不是一个理性程序员的选择。
更好的方式是采用平滑重构，这才是真正意义上的重构。
只要不是病入膏肓，这是最佳选择。
由此想到一个不太恰当的比喻：将编写程序比喻为治理国家。
假如现在的执政党已经日益腐朽，人浮于事，贪污横行。
总之，是到了需要改革（重构）的时候了。
此时有两个选择：革命，或者重新大选。
先不论大选的利弊，单看革命。
另一股势力，利用民众的不满，积极宣称自己的主义可以拯救这个岌岌可危的国家；
由于拥戴者渐多，力量日益强大，终于到了可以和执政者分庭抗礼的程度。
执政者当然不会轻易交出自己手中的权力，
于是经过非常暴力或者不太暴力（没有非暴力这个选择）的斗争，
新势力终于推翻了旧势力，春风得意的上台了。
一时间，气象一新，处处欣欣向荣的美好景象。
经过若干年后，执政党开始日益腐朽，人浮于事，贪污横行。
又一个轮回开始了⋯⋯
这种情形，历史上还少见吗？
软件终究会腐朽的，就像政党一样。
与其暴风骤雨，我宁可润物无声。
]]></description>
			<content:encoded><![CDATA[<p>重构是最近想得比较多的一个词。<br />
星期一去总部培训，其中一门课叫做《边重构边生活》，提到很多关于重构的意识。<br />
对其中一个说法印象尤为深刻：<strong>火箭发射式的重构</strong>。</p>
<p>火箭发射是一件相当隆重的大事，<br />
需要经过长时间的准备，花费不计其数的人力物力后，<br />
在一个精心选择的时间，所有相关人物齐聚一堂，等待火箭的轰然升空。</p>
<p>最大的问题是，火箭发射可能失败，在付出巨大的努力后，依然失败。</p>
<p>个中的情形与后果，与软件开发中的一次性重构非常相似。</p>
<p>一次性重构是软件开发中一种相当具有冒险精神的活动，<br />
需要实施者有“不成功便成人”的坚毅决心，埋头苦干若干日子，<br />
最后在合十祈祷中，迎来一个充满不确定因素的发布。<br />
用Bison的话来说，是找死。</p>
<p>找死也有两种找法，<br />
一种是终止老版本，不接新需求，专心闭门造车，重写一个新版本；<br />
还有一种是同时维护两个版本，老版本做新需求，等新版本做出来之后，再把新功能合并过去。<br />
前一种伴随着巨大的风险，而后一种则会带来太多额外的复杂性，都不是一个理性程序员的选择。</p>
<p>更好的方式是采用平滑重构，这才是真正意义上的重构。<br />
只要不是病入膏肓，这是最佳选择。</p>
<p>由此想到一个不太恰当的比喻：将编写程序比喻为治理国家。</p>
<p>假如现在的执政党已经日益腐朽，人浮于事，贪污横行。<br />
总之，是到了需要改革（重构）的时候了。<br />
此时有两个选择：革命，或者重新大选。<br />
先不论大选的利弊，单看革命。<br />
另一股势力，利用民众的不满，积极宣称自己的主义可以拯救这个岌岌可危的国家；<br />
由于拥戴者渐多，力量日益强大，终于到了可以和执政者分庭抗礼的程度。<br />
执政者当然不会轻易交出自己手中的权力，<br />
于是经过非常暴力或者不太暴力（没有非暴力这个选择）的斗争，<br />
新势力终于推翻了旧势力，春风得意的上台了。<br />
一时间，气象一新，处处欣欣向荣的美好景象。<br />
经过若干年后，执政党开始日益腐朽，人浮于事，贪污横行。<br />
又一个轮回开始了⋯⋯</p>
<p>这种情形，历史上还少见吗？<br />
软件终究会腐朽的，就像政党一样。<br />
<strong>与其暴风骤雨，我宁可润物无声。</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/09/18/%e5%85%b3%e4%ba%8e%e9%87%8d%e6%9e%84/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>边重构边生活</title>
		<link>http://icomes.net/2009/09/14/%e8%be%b9%e9%87%8d%e6%9e%84%e8%be%b9%e7%94%9f%e6%b4%bb/</link>
		<comments>http://icomes.net/2009/09/14/%e8%be%b9%e9%87%8d%e6%9e%84%e8%be%b9%e7%94%9f%e6%b4%bb/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 15:19:02 +0000</pubDate>
		<dc:creator>梁剑</dc:creator>
				<category><![CDATA[技术笔记]]></category>
		<category><![CDATA[重构]]></category>

		<guid isPermaLink="false">http://icomes.net/?p=435</guid>
		<description><![CDATA[到了总部培训，见到很多老同事，中午老大请吃饭：）
培训的题目是《边重构边生活》，讲师Bison，讲得非常不错。
本身对行业和实践有深入的认识，关键是可以将想法有条理的表达出来。
如果可以讲得更加生动，将是一个非常棒的课程。
对“火箭发射”的例子印象深刻。
做了详细的笔记。
其实生活中很多例子都是相通的。
相比较而言，另一门《set模型》讲得就逊色很多。
]]></description>
			<content:encoded><![CDATA[<p>到了总部培训，见到很多老同事，中午老大请吃饭：）</p>
<p>培训的题目是《边重构边生活》，讲师Bison，讲得非常不错。<br />
本身对行业和实践有深入的认识，关键是可以将想法有条理的表达出来。<br />
如果可以讲得更加生动，将是一个非常棒的课程。<br />
对“火箭发射”的例子印象深刻。<br />
做了详细的笔记。<br />
其实生活中很多例子都是相通的。</p>
<p>相比较而言，另一门《set模型》讲得就逊色很多。</p>
]]></content:encoded>
			<wfw:commentRss>http://icomes.net/2009/09/14/%e8%be%b9%e9%87%8d%e6%9e%84%e8%be%b9%e7%94%9f%e6%b4%bb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
