<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.feedsky.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.wwtyler.com" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/wwtyler" type="application/rss+xml"></fs:self_link><lastBuildDate>Sun, 25 Jul 2010 08:04:55 GMT</lastBuildDate><title>Tyler Sky</title><description>A willful man will have his way!</description><link>http://blog.wwtyler.com</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Sat, 21 Aug 2010 05:41:36 GMT</pubDate><item><title>u9 魔兽助手 zip 下载</title><link>http://blog.wwtyler.com/archives/263</link><wfw:commentRss>http://blog.wwtyler.com/archives/263/feed</wfw:commentRss><description>u9 魔兽助手 4.3 zip 下载
u9wsh43.zip
u9 魔兽助手 4.5 zip 下载
u9wsh45.zip&lt;img src=&quot;http://www1.feedsky.com/t1/405218458/wwtyler/feedsky/s.gif?r=http://blog.wwtyler.com/archives/263&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/wwtyler/405218458/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/wwtyler/405218458/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>全部</category><category>game</category><category>dota</category><category>魔兽争霸</category><pubDate>Sun, 25 Jul 2010 16:04:55 +0800</pubDate><author>wangwei</author><comments>http://blog.wwtyler.com/archives/263#comments</comments><guid isPermaLink="false">http://blog.wwtyler.com/?p=263</guid><dc:creator>wangwei</dc:creator><fs:srclink>http://blog.wwtyler.com/archives/263</fs:srclink><fs:srcfeed>http://blog.wwtyler.com/feed</fs:srcfeed><fs:itemid>feedsky/wwtyler/~7239137/405218458/5348577</fs:itemid></item><item><title>魔兽争霸 RPG DOTA 中文版 地图 下载 AI 6.67</title><link>http://blog.wwtyler.com/archives/261</link><wfw:commentRss>http://blog.wwtyler.com/archives/261/feed</wfw:commentRss><description>魔兽争霸 RPG DOTA 中文版 地图 下载 AI 6.67&lt;img src=&quot;http://www1.feedsky.com/t1/405218459/wwtyler/feedsky/s.gif?r=http://blog.wwtyler.com/archives/261&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/wwtyler/405218459/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/wwtyler/405218459/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>game</category><category>兴趣爱好</category><category>dota</category><pubDate>Sun, 25 Jul 2010 15:59:31 +0800</pubDate><author>wangwei</author><comments>http://blog.wwtyler.com/archives/261#comments</comments><guid isPermaLink="false">http://blog.wwtyler.com/?p=261</guid><dc:creator>wangwei</dc:creator><fs:srclink>http://blog.wwtyler.com/archives/261</fs:srclink><fs:srcfeed>http://blog.wwtyler.com/feed</fs:srcfeed><fs:itemid>feedsky/wwtyler/~7239137/405218459/5348577</fs:itemid></item><item><title>《大道至简》读后感</title><link>http://blog.wwtyler.com/archives/256</link><wfw:commentRss>http://blog.wwtyler.com/archives/256/feed</wfw:commentRss><description>我是一个不善写作的人，特别是当描述的问题十分复杂时。然而今天一口气通读《大道至简》这本书后，颇有些感悟，特别是结合最近一段时间自己的工作经验，以及今天进行的Q2 review后。
迫使我突然拜读这本书的原因主要有三个：一是周爱民大牛已经加盟支付宝公司，他的大作我还未阅读过；二是twitter上有人聊到正在阅读此书；三是今天恰好进行Q2的review，下阶段我十分迫切的需要在软件分析和设计上有所提升。
一口气通读下来后，能够留在我短时记忆十分糟糕的大脑里的就只剩下：语言只是工具、boss是“经营者”、软件工程中作者的一些感悟。
先说说语言只是工具吧，作者提到为那些争论语言孰优孰劣的开发人员感到可悲。然而，能够得出这样一个结论之前的人，恰恰之前正在经历这样一个阶段。作为JAVA开发人员来讲，使用何种开发语言的确已经显得不那么重要了，因为任何语言都是可以学习的，他们只是工具，或者说是知识，真正转化为生产力的， 还是需要用语言来实现系统、完成系统需求，让客户满意。不善思考的程序员或许需要很长时间绕出这个圈子，然而最近两三年的软件行业的变化（Ruby，Groovy，Scala，JRuby，Python…），不得不让每个业内的开发人员思考这样一个问题：“需要学习那一种语言才不被淘汰？”这就迫使我们每个人都去思考语言的真正意义。现如今，每种语言都有自己的强项以及局限性，新的语言可能在语法结构、动态性方面有无可比拟的优势，但是它们真正适用使用目前现行的系统吗？它的学习成本值得吗？它能解决所有问题吗？显然答案是否定的，我们需要思考每种语言的试用范围，让“锤子”去解决钉钉子的问题，而不是打开啤酒瓶！
boss是“经营者”，这个论点我是非常赞同的。毕竟开发人员和boss所处的立场不同，角色不同。项目中，甚至公司里的每个成员的职责都是不同，如何很好的协作，是考验每一个一个公司（特别是中型和大型团队）管理和组织水平的。作者提到体制的问题：“体制的内涵是分两个方面的，其一是“体”，即“体系”；其二是“制”，即“制度””，确实给我很大的启发，体制如果分开来看，的确可以解释管理中一些问题。“皮之不存，毛将焉附。没有确定的组织机构，又如何能指望做出来的管理制度“合用”呢？”。 由此我无比感叹那些为了“ISO认证”和“CMMI认证”的企业，只知其一，不知其二，没有找到真正的症结。
软件工程是实践中摸索出来的方法论。每个组织的大小、行业、具体情况都很不一样，更不谈人员组成、企业文化、客户的不同了。这样每个组织都应该找到适合自己发展的软件工程的方法和过程。软件项目需要在时间、资源和功能中找到平衡，如果一个目标本身都是有问题的，软件项目注定着会走向失败。而如果项目进度和工作量评估不靠谱的话，就更是雪上加霜了。目前公司的项目都或多或少的存在着这样的问题，然而我们真的学会了“折中”吗？我们继要应对快速的变化，又需要保证系统的安全可靠和高可用性。这是我们现阶段最需要解决的难题，体制问题和认得问题真的很难严格划分。
OOA和OOD仍然是软件工程根本，OOAD的能力以及每个程序员的立身之本。摈弃对流行语言的追捧，真正去实考OOAD的本质，才是现阶段很多开发人员需要做的（当然包括我）。DDD也只是OOAD中的其中一只罢了。
先学会“Think”（IBM），再去“Think different”（APPLE）！&lt;img src=&quot;http://www1.feedsky.com/t1/405218460/wwtyler/feedsky/s.gif?r=http://blog.wwtyler.com/archives/256&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/wwtyler/405218460/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/wwtyler/405218460/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>读书笔记</category><category>OOAD</category><pubDate>Mon, 27 Jul 2009 20:48:11 +0800</pubDate><author>wangwei</author><comments>http://blog.wwtyler.com/archives/256#comments</comments><guid isPermaLink="false">http://blog.wwtyler.com/archives/256</guid><dc:creator>wangwei</dc:creator><fs:srclink>http://blog.wwtyler.com/archives/256</fs:srclink><fs:srcfeed>http://blog.wwtyler.com/feed</fs:srcfeed><fs:itemid>feedsky/wwtyler/~7239137/405218460/5348577</fs:itemid></item><item><title>单元测试HelloWorld</title><link>http://blog.wwtyler.com/archives/237</link><wfw:commentRss>http://blog.wwtyler.com/archives/237/feed</wfw:commentRss><description>本文通过一个简单的例子说明单元测试的基本方法和jmock的基本技巧。JMOCK的使用请参考JMock使用FAQ，和JMock cookbook.
根据定义单元测试是开发者编写的一小段代码，用于检验被测代码的一个很小的、很明确的功能是否正确。所以我们首先来看看需要测试的类和其接口。
step 1 了解被测试代码
被测试类为HelloUnitTestServiceImpl ,它实现了IHelloUnitTestService接口。接口代码如下：


public interface IHelloUnitTestService {
public Object sayHelloToUnitTest(Object argument1,Object argument2);
}

实现类代码如下：


public class HelloUnitTestServiceImpl implements IHelloUnitTestService {
IFirstDependency  firstDependencyObj;
ISecondDependency secondDepedencyObj;

/**
* 需要被测试的方法。该方法有连个参数。实现中依赖到两个对象firstDependencyObj和secondDepedencyObj
*
*/
public Object sayHelloToUnitTest(Object argument1, Object argument2) {
if (argument1 == null) {
throw new IllegalArgumentException(&amp;#34;第一个参数不能为空，否则报错&amp;#34;);
}

//通过第一个依赖的对象对第一个参数进行运算
Object theFirstResult = firstDependencyObj.doSomeThingWith(argument1);
//通过第二个依赖的对象对第二个参数进行运算
Object theSecondResult = secondDepedencyObj.doSomeOtherThingWith(argument2);
//通过自己的私有方法对两个运算结果进行处理
Object sayHelloResult = doSomeThingPrivately(theFirstResult, theSecondResult);

//返回结果
if (sayHelloResult instanceof String)
return sayHelloResult;
else
return &amp;#34;结果不是String,所以我来代替！&amp;#34;;
}

/**
* 该是私有方法对两个参数进行简单的toString相加的运算
* @param theFirstResult
* @param theSecondResult
* @return
*/
private Object [...]&lt;img src=&quot;http://www1.feedsky.com/t1/405218461/wwtyler/feedsky/s.gif?r=http://blog.wwtyler.com/archives/237&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/wwtyler/405218461/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/wwtyler/405218461/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>unit-test</category><category>全部</category><category>开发技术</category><pubDate>Tue, 23 Jun 2009 10:23:24 +0800</pubDate><author>wangwei</author><comments>http://blog.wwtyler.com/archives/237#comments</comments><guid isPermaLink="false">http://blog.wwtyler.com/archives/237</guid><dc:creator>wangwei</dc:creator><fs:srclink>http://blog.wwtyler.com/archives/237</fs:srclink><fs:srcfeed>http://blog.wwtyler.com/feed</fs:srcfeed><fs:itemid>feedsky/wwtyler/~7239137/405218461/5348577</fs:itemid></item><item><title>Test Double 分类</title><link>http://blog.wwtyler.com/archives/224</link><wfw:commentRss>http://blog.wwtyler.com/archives/224/feed</wfw:commentRss><description>• A Dummy Object is a placeholder object that is passed to
the SUT as an argument (or an attribute of an argument) but is never
actually used.
作为对象参数的替身传给SUT，通常没有任何实际作用。
• A Test Stub is an object that replaces a real component on which the
SUT depends so that the test can control the indirect inputs [...]&lt;img src=&quot;http://www1.feedsky.com/t1/405218462/wwtyler/feedsky/s.gif?r=http://blog.wwtyler.com/archives/224&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/wwtyler/405218462/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/wwtyler/405218462/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>unit-test</category><category>全部</category><category>读书笔记</category><pubDate>Tue, 23 Jun 2009 10:12:44 +0800</pubDate><author>wangwei</author><comments>http://blog.wwtyler.com/archives/224#comments</comments><guid isPermaLink="false">http://blog.wwtyler.com/archives/224</guid><dc:creator>wangwei</dc:creator><fs:srclink>http://blog.wwtyler.com/archives/224</fs:srclink><fs:srcfeed>http://blog.wwtyler.com/feed</fs:srcfeed><fs:itemid>feedsky/wwtyler/~7239137/405218462/5348577</fs:itemid></item><item><title>Test Utility Method Location</title><link>http://blog.wwtyler.com/archives/220</link><wfw:commentRss>http://blog.wwtyler.com/archives/220/feed</wfw:commentRss><description>TestUtilityMethodLocation 
&amp;#160;&amp;#160; 由图可知，测试工具方法的位置主要有三个地方：
1. SuperClass，测试父类，通过继承来访问测试工具方法。
2. TestClass，放到测试类自身中，通过this的形式访问 。
3. TestHelper，放到测试帮助类中，通过delegate的形式访问。&lt;img src=&quot;http://www1.feedsky.com/t1/405218463/wwtyler/feedsky/s.gif?r=http://blog.wwtyler.com/archives/220&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/wwtyler/405218463/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/wwtyler/405218463/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>unit-test</category><category>全部</category><category>读书笔记</category><category>开发技术</category><pubDate>Mon, 22 Jun 2009 16:27:45 +0800</pubDate><author>wangwei</author><comments>http://blog.wwtyler.com/archives/220#comments</comments><guid isPermaLink="false">http://blog.wwtyler.com/archives/220</guid><dc:creator>wangwei</dc:creator><fs:srclink>http://blog.wwtyler.com/archives/220</fs:srclink><fs:srcfeed>http://blog.wwtyler.com/feed</fs:srcfeed><fs:itemid>feedsky/wwtyler/~7239137/405218463/5348577</fs:itemid></item></channel></rss>