??xml version="1.0" encoding="utf-8" standalone="yes"?>九九热线视频只有这里最精品,免费电影网站在线视频观看福利,亚洲深夜福利视频http://www.aygfsteel.com/rain1102/category/37668.html<br/><font color="green" style="font-family: 华文行楷;font-size:16px;">化学l构搜烦(ch)Q化学信息学Q生物信息学Q实验室信息学等 ?lt;/font><br/><font color="#3C1435">以高U技的生物、化学信息技术实现生命科学领域中专业数据的计和理、提高研发能力、增强在U研和成本效率方面的国际竞争力,为生物、化学、医药和学术机构提供一的解决Ҏ(gu)和技术咨询?lt;/font><br/> <br/><font color="green" style="font-family: 华文行楷;font-size:16px;">子曰Q危邦不入,乱邦不居。天下有道则见,无道则隐?lt;/font><font color="#3C1435"></font><br/> zh-cnThu, 11 Aug 2011 12:41:47 GMTThu, 11 Aug 2011 12:41:47 GMT60E序员、设计师、项目经理之间的战争http://www.aygfsteel.com/rain1102/archive/2011/08/11/356300.html周锐周锐Thu, 11 Aug 2011 06:47:00 GMThttp://www.aygfsteel.com/rain1102/archive/2011/08/11/356300.htmlhttp://www.aygfsteel.com/rain1102/comments/356300.htmlhttp://www.aygfsteel.com/rain1102/archive/2011/08/11/356300.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/356300.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/356300.html

周锐 2011-08-11 14:47 发表评论
]]>
28条提高关键字排名的SEO优化Ҏ(gu)【{载?/title><link>http://www.aygfsteel.com/rain1102/archive/2011/06/29/353366.html</link><dc:creator>周锐</dc:creator><author>周锐</author><pubDate>Wed, 29 Jun 2011 07:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2011/06/29/353366.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/353366.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2011/06/29/353366.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/353366.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/353366.html</trackback:ping><description><![CDATA[<span id="wmqeeuq" class="Apple-style-span" style="color: #bbbbbb; font-family: arial; font-size: 13px; line-height: 26px; "><h3 style="outline-width: medium; outline-style: none; outline-color: initial; font-size: 14px; font-weight: bold; color: #cccccc; "><span style="color: #000000; ">关键词位|、密度、处?/span></h3></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">1.URL中出现关键词Q英文)(j)<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">2.|页标题中出现关键词Q?-3个)(j)<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">3.关键词标{中出现关键词(1-3个)(j)<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">4.描述标签中出现关键词Q主关键词重?ơ)(j)<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">5.内容中自然出现关键词<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">6.内容W一D和最后一D出现关键词<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">7.H1QH2标签中出现关键词<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">8.导出链接锚文本中包含关键?br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">9.囄的文件名包含关键?br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">10.ALT属性中出现关键?br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">11.关键词密?-8%<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">12.对关键词加粗或斜?br style="outline-width: medium; outline-style: none; outline-color: initial; " /><h3 style="outline-width: medium; outline-style: none; outline-color: initial; font-size: 14px; font-weight: bold; color: #cccccc; "><span style="color: #000000; ">内容质量、更新频率、相x?/span></h3></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">1.原创的内Ҏ(gu)佻I切忌被多ơ{载的内容<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">2.内容独立性,与其他页面至?0%互异<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">3.1000-2000字,合理分段<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">4.有规律更斎ͼ最好是每天<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">5.内容围绕面关键词展开Q与整站主题相关<br style="outline-width: medium; outline-style: none; outline-color: initial; " /></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; color: #000000; ">6.h评论功能Q评Z出现关键?br style="outline-width: medium; outline-style: none; outline-color: initial; " /><h3 style="outline-width: medium; outline-style: none; outline-color: initial; font-size: 14px; font-weight: bold; color: #cccccc; "><span style="color: #000000; ">导入链接和锚文本</span></h3></span><span id="wmqeeuq" class="Apple-style-span" style="font-family: arial; font-size: 13px; line-height: 26px; "><p style="outline-width: medium; outline-style: none; outline-color: initial; "><span style="color: #000000; ">1.高PR值站点的导入链接</span><br style="outline-width: medium; outline-style: none; outline-color: initial; " /><span style="color: #000000; ">2.内容相关面的导入链?/span><br style="outline-width: medium; outline-style: none; outline-color: initial; " /><span style="color: #000000; ">3.导入链接锚文本中包含面关键?/span><br style="outline-width: medium; outline-style: none; outline-color: initial; " /><span style="color: #000000; ">4.锚文本存在于|页内容?/span><br style="outline-width: medium; outline-style: none; outline-color: initial; " /><span style="color: #000000; ">5.锚文本周围出现相兛_键词</span><br style="outline-width: medium; outline-style: none; outline-color: initial; " /><span style="color: #000000; ">6.导入链接存在3个月以上</span><br style="outline-width: medium; outline-style: none; outline-color: initial; " /><span style="color: #000000; ">7.导入链接所在页面的导出链接于100?/span><br style="outline-width: medium; outline-style: none; outline-color: initial; " /><span style="color: #000000; ">8.导入链接来自不同IP地址</span><br style="outline-width: medium; outline-style: none; outline-color: initial; " /><span style="color: #000000; ">9.导入链接自然增加</span><br style="outline-width: medium; outline-style: none; outline-color: initial; " /><span style="color: #000000; ">10.锚文本多样化Q如QSEO和SEO十万个ؓ(f)什么)(j)<br /></span><span style="color: #000000; ">原文地址Q?div style="display: inline-block; "></div></span></p></span><a ><span style="color: #000000; ">http://www.gbin1.com/technology/seo/28waytoseo/</span></a><img src ="http://www.aygfsteel.com/rain1102/aggbug/353366.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">周锐</a> 2011-06-29 15:44 <a href="http://www.aygfsteel.com/rain1102/archive/2011/06/29/353366.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MapReducehttp://www.aygfsteel.com/rain1102/archive/2009/11/18/302753.html周锐周锐Wed, 18 Nov 2009 01:00:00 GMThttp://www.aygfsteel.com/rain1102/archive/2009/11/18/302753.htmlhttp://www.aygfsteel.com/rain1102/comments/302753.htmlhttp://www.aygfsteel.com/rain1102/archive/2009/11/18/302753.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/302753.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/302753.htmlMapReduce是Google提出的一个Y件架构,用于大规模数据集Q大?TBQ的q行q算。概?MapQ映)(j)"?ReduceQ化Q?Q和他们的主要思想Q都是从函数式编E语a借来的,q有从矢量编E语a借来的特性?/p>

当前的Y件实现是指定一?em>MapQ映)(j)函数Q用来把一l键值对映射成一l新的键值对Q指定ƈ发的ReduceQ化Q?/em>函数Q用来保证所有映的键值对中的每一个共享相同的键组?/p>

映射和化

单说来,一个映函数就是对一些独立元素组成的概念上的列表Q例如,一个测试成l的列表Q的每一个元素进行指定的操作Q比如前面的例子里,有h发现所有学生的成W都被高估了一分,他可以定义一?#8220;减一”的映函敎ͼ用来修正q个错误。)(j)。事实上Q每个元素都是被独立操作的,而原始列表没有被更改Q因里创Z一个新的列表来保存新的{案。这是_(d)Map操作是可以高度ƈ行的Q这寚w性能要求的应用以?qing)ƈ行计领域的需求非常有用?/p>

而化操作指的是对一个列表的元素q行适当的合qӞl箋看前面的例子Q如果有人想知道班的^均分该怎么做?他可以定义一个化函数Q通过让列表中的元素跟自己的相?c)元素相加的方式把列表减半Q如此递归q算直到列表只剩下一个元素,然后用这个元素除以h敎ͼ得Cq_分)(j)。虽然他不如映射函数那么q行Q但是因为化L有一个简单的{案Q大规模的运相对独立,所以化函数在高度ƈ行环境下也很有用?/p>

分布和可靠?/span>

MapReduce通过把对数据集的大规模操作分发给|络上的每个节点实现可靠性;每个节点?x)周期性的把完成的工作和状态的更新报告回来。如果一个节点保持沉默超q一个预讄旉间隔Q主节点Q类同Google档案pȝ中的L务器Q记录下q个节点状态ؓ(f)MQƈ把分配给q个节点的数据发到别的节炏V每个操作用命名文件的原子操作以确保不?x)发生ƈ行线E间的冲H;当文件被改名的时候,pȝ可能?x)把他们复制CQ务名以外的另一个名字上厅R(避免副作用)(j)?/p>

化简操作工作方式很类|但是׃化简操作在ƈ行能力较差,主节点会(x)量把化操作调度在一个节点上Q或者离需要操作的数据可能近的节点上了;q个Ҏ(gu)可以满Google的需求,因ؓ(f)他们有够的带宽Q他们的内部|络没有那么多的机器?/p>

用?/span>

在GoogleQMapReduce用在非常q泛的应用程序中Q包?#8220;分布grepQ分布排序,webq接囑֏转,每台机器的词矢量Qweb讉K日志分析Q反向烦(ch)引构建,文档聚类Q机器学?fn),Zl计的机器翻?#8230;…”值得注意的是QMapReduce实现以后Q它被用来重新生成Google的整个烦(ch)引,q取代老的ad hocE序L新烦(ch)引?/p>

MapReduce?x)生成大量的临时文gQؓ(f)了提高效率,它利用Google档案pȝ来管理和讉Kq些文g?/p>

其他实现

  • Hadoop Q?Apache软g基金?x)的开放源码项目,提供与MapReduce档案pȝcM的功能?


周锐 2009-11-18 09:00 发表评论
]]>
团队制胜:掌握软g目成功d?/title><link>http://www.aygfsteel.com/rain1102/archive/2009/09/14/295076.html</link><dc:creator>周锐</dc:creator><author>周锐</author><pubDate>Mon, 14 Sep 2009 14:15:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2009/09/14/295076.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/295076.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2009/09/14/295076.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/295076.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/295076.html</trackback:ping><description><![CDATA[W一部分 问题I间<br /> W??我们面(f)的巨大挑?br /> 1.1 困难<br /> 1.2 ~Zq见的解x?br /> 1.3 人力因素的脆弱?br /> 1.4 最优方法的真相<br /> 1.5 结<br /> <br /> 文档可以用来传达信息Q但不能用来替代讨论q程。真正能l团队带来h(hun)值的q不是计划本w,而是制定计划的过E?br /> 大量的低效工作、o(h)人难以接手的产品质量、以?qing)低落的员工士气{等Q这些都是在许多公司中司I惯的现象Q即使其中的某些公司从商业的角度来看可以是成功的。他们l艰隑֜行进着Qؓ(f)“_?#8221;讑֮一个很低的标准Qƈ且没有意识到提高工作效率的关键因素其实就在于他们自己?br /> 随着团队规模的增大,共同的认识将于下降Q这是因为团队之间的沟通没有得到充分地理。我们必M断努力改善沟通工作以?qing)促q团队理解?br /> <br /> 在当前组l中Q你要思考那些对你生媄(jing)响或者你正在实施的改q措施。是否盲目地遵@其他人推荐的Ҏ(gu)Q是否盲目的采用了一些工P<br /> <br /> <br /> W??做正的?br /> 2.1 正确地做事与做正的?br /> 2.2 做事的方?br /> 2.3 我们需要掌控成?br /> 2.4 解决Ҏ(gu)框架<br /> 2.5 结<br /> <br /> 软g开发是一U创造性的zdQ是׃hQ有着情A、感情、需求和x{,q些因素是多h的Q而且也是重要的)(j)来完成的?br /> 沟通需要是准确的、公开化的和透明的。不能进行一些秘密的讨论Qƈ且需要更d地进行們֐。在q行讨论之前Q需要进行换为思考。們֐q不只是{待时机来表达我们的不同意见、或者等待适当的时机来说出我们的观炏V或者容忍其他h的异议,們֐的主要目的是了解其他人的观点?br /> 要想实现大目标,需要从的目标做v。你如何与团队q行互动以确保你掌控成功,而不是由于你所面对的问题来指责别hQ?br /> <br /> <br /> W二部分 个h<br /> W??个h的正态度<br /> 3.1 牛仔和无名英?br /> 3.2 合理的自我批?br /> 3.3 情A<br /> 3.4 加快q度<br /> 3.5 我们都是领导?br /> 3.6 结<br /> <br /> 懒惰Q已知的忽视<br /> 忽视Q未知的忽视<br /> 技能缺乏-已知的未?br /> ~Z认识Q未知的未知<br /> 《一分钟l理人?Q《The One-Minute Manager?br /> 在没有彻底领(zhn)优U领导者的特质之前Q不要急于搬进总裁办公室?br /> 如果{到成ؓ(f)负责人时你才注意q些特质Q那么ؓ(f)时已晚?br /> <br /> <br /> W??以质量ؓ(f)中心<br /> 4.1 质量是一U责?br /> 4.2 输出质量理念<br /> 4.3 按照人员、过E、品的序<br /> 4.4 结<br /> <br /> 无论你在公司中的职位是什么,如果你认量根本就是别人的责QQ那么就已经完全忽视了品质量。无Z的职位是什么,你自己都要确保工作不?x)破坏整体品的质量。质量是你的责Q之一?br /> 成功的外包需要在目q移的过E中对h(hun)D和态度q行U极的管理?br /> 如果始终以质量ؓ(f)中心Qƈ且能够有意识地把q种思维传播到团队中Q那么无论在什么地斚w?x)取得成功?br /> 如果真地惌提高产品的质量,那么首先应该提高产品开发团队的质量Q然后才是提高在开发过E中使用的一些过E的质量。只有这些质量都已经得到提高之后Q才能期望品的质量正是你想要的l果。如果没有做到这些,那么所有的承诺都不q是I?br /> <br /> W??面对挑战<br /> 5.1 感受痛苦<br /> 5.2 应对痛苦<br /> 5.3 否定<br /> 5.4 忽视<br /> 5.5 毅力<br /> 5.6 思维定式<br /> 5.7 结<br /> <br /> W??d性成?br /> 6.1 认识你自?br /> 6.2 赌徒与冒险家<br /> 6.3 设计我们的环?br /> 6.4 q行工作<br /> 6.5 决策<br /> 6.6 坚持到底<br /> 6.7 结<br /> <br /> W??可持l?br /> 7.1 什么才是重要的<br /> 7.2 充电(sh)<br /> 7.3 Mȝ瑰的花香<br /> 7.4 内省作ZU商业策?br /> 7.5 生活质量<br /> 7.6 结<br /> <br /> W三部分 体<br /> W??沟?br /> 8.1 表达自己的意?br /> 8.2 舒适的沟?br /> 8.3 全面公开<br /> 8.4 信Q<br /> 8.5 客户满意?br /> 8.6 明确性和共同的理?br /> 8.7 沟通的消极?br /> 8.8 结<br /> <br /> W??动机与期?br /> 9.1 动机驱动行ؓ(f)<br /> 9.2 成ؓ(f)一个激p?br /> 9.3 公开我们的动?br /> 9.4 反思阿喀琉斯之踵<br /> 9.5 期望<br /> 9.6 理我们的期?br /> 9.7 没有消息其实是最坏的消息<br /> 9.8 结<br /> <br /> W?0?合作愉快<br /> 10.1 技术赎?br /> 10.2 游戏<br /> 10.3 工作保障<br /> 10.4 谣言和暗?br /> 10.5 量减少q扰<br /> 10.6 质量圈族?br /> 10.7 像在家里一?br /> 10.8 结<br /> <br /> W四部分 团队<br /> W?1?一致?br /> 11.1 团队保持一?br /> 11.2 团队规模的增?br /> 11.3 与团队保持步调一?br /> 11.4 制订规则<br /> 11.5 有意识的团队契约<br /> 11.6 包容各种观点<br /> 11.7 按比例羃?br /> 11.8 结<br /> <br /> W?2?l织<br /> 12.1 各得其所<br /> 12.2 已定义方法,q是U?yn)?br /> 12.3 q程架构<br /> 12.4 阅读l合Ҏ(gu)说明中的字内容<br /> 12.5 q是一个过E项目吗<br /> 12.6 通过优化提升速度<br /> 12.7 培训<br /> 12.8 当问题出现时<br /> 12.9 但是我们不在?br /> 12.10 有条理的讨论<br /> 12.11 结<br /> <br /> W?3?协调<br /> 13.1 清理路障Q还是阻塞道?br /> 13.2 开诚布公的理<br /> 13.3 只是一名雇员吗<br /> 13.4 (g)出,(g)?br /> 13.5 Ҏ(gu)档化工作的态度<br /> 13.6 不要L地将一切都外包<br /> 13.7 有h情味的^?br /> 13.8 保留上下?br /> 13.9 结<br /> <br /> W?4?指导<br /> 14.1 胡萝卜和大棒<br /> 14.2 可控的多h?br /> 14.3 是懒惰还是创造力<br /> 14.4 捷径<br /> 14.5 q程工效?br /> 14.6 规模q不重要<br /> 14.7 持箋的一致?br /> 14.8 结<br /> <br /> W五部分 利益相关?br /> W?5?客户<br /> 15.1 谁是我们的客?br /> 15.2 l端客户的代?br /> 15.3 真实可靠<br /> 15.4 掌控期望<br /> 15.5 结<br /> <br /> W?6?讑֮目标<br /> 16.1 目标和Q?br /> 16.2 定义成功<br /> 16.3 Ҏ(gu)产品的优势调整优先次?br /> 16.4 是否真正重视产品质量<br /> 16.5 滑坡<br /> 16.6 全局?br /> 16.7 结<br /> <br /> W?7?规范<br /> 17.1 意外的规?br /> 17.2 规范的锥体特?br /> 17.3 保持领先一?br /> 17.4 C么程度才是够的<br /> 17.5 结<br /> <br /> W?8?优先U?br /> 18.1 正确的开?br /> 18.2 在确定优先之前首先制定计划<br /> 18.3 优先U排?br /> 18.4 衡量和确定项目范围的优先U?br /> 18.5 拖g带来的成?br /> 18.6 结<br /> <br /> W?9?变更<br /> 19.1 变动性要求多h?br /> 19.2 偏离预计路线<br /> 19.3 通过配置理来了解我们当时的思?br /> 19.4 只需再多一?br /> 19.5 结<br /> <br /> W?0?q展<br /> 20.1 三个关键角色<br /> 20.2 一U有条理的方?br /> 20.3 解决N<br /> 20.4 有风险的业务<br /> 20.5 关键路径<br /> 20.6 文档{֭的含?br /> 20.7 知道何时退?br /> 20.8 完成<br /> 20.9 结<br /> <br /> W六部分 理清思\<br /> W?1?挑选目?br /> 21.1 正确的过E?br /> 21.2 规则<br /> 21.3 解耦项?br /> 21.4 亡羊补牢<br /> 21.5 结<br /> <br /> W?2?灉|性和严格?br /> 22.1 指导与规?br /> 22.2 (g)查列表与{֭<br /> 22.3 真正的设计问题:(x)多样化和同<br /> 22.4 文档化和公共知识<br /> 22.5 避免发展q程中的复杂?br /> 22.6 张脓(chung)出来<br /> 22.7 结<br /> <br /> W?3?回顾q展<br /> 23.1 量化作Z必要工?br /> 23.2 战术度量和战略度?br /> 23.3 隐性消?br /> 23.4 不能太大Q也不能太小<br /> 23.5 结<br /> <br /> W?4?回顾变更<br /> 24.1 为变更制定计?br /> 24.2 L旧方?br /> 24.3 Ҏ(gu)来的工作分类<br /> 24.4 Z(x)<br /> 24.5 采取的、可量化的步?br /> 24.6 提高认识<br /> 24.7 结<br /> <br /> W?5?始终保持警惕<br /> 25.1 眼罩<br /> 25.2 有哪些伤?br /> 25.3 倒退<br /> 25.4 结<br /> <br /> W七部分 附录<br /> 核心工具<br /><img src ="http://www.aygfsteel.com/rain1102/aggbug/295076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">周锐</a> 2009-09-14 22:15 <a href="http://www.aygfsteel.com/rain1102/archive/2009/09/14/295076.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>目中遇到的性能问题ȝhttp://www.aygfsteel.com/rain1102/archive/2009/08/05/289965.html周锐周锐Wed, 05 Aug 2009 08:27:00 GMThttp://www.aygfsteel.com/rain1102/archive/2009/08/05/289965.htmlhttp://www.aygfsteel.com/rain1102/comments/289965.htmlhttp://www.aygfsteel.com/rain1102/archive/2009/08/05/289965.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/289965.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/289965.html最q一直从事的目中遇C性能问题, 虽然表中的数据数量不是太? 最大也?00万条, 其他基本都是100万左? 但由于存在一个化合物l构信息的数据得数据库特别的大, dmp文gp?G多。而客户对性能要求又比较高。目前遇到问题以?qing)解x?q最x?ȝ如下:

1. 多表查询时候速度? 之间兌列创建烦(ch)? 只取需要数据?br /> 2. 多条数据扚w更新: 量使用原生SQL, 用Hibernate取了循环再更新?br /> 3. 数据量大查询时候少用upperQlower{类似数据提供的功能函数去{换数据,可以考虑是否在存入数据之前就把所有数据改为大写或者小写,昄时候再按要求格式化内容?br /> 4. 使用Hibernate时候,把关联关pd量设|成延迟加蝲Q然后用时候再用fetch取出?br />
目前先ȝq些Q?遇到再加?img src ="http://www.aygfsteel.com/rain1102/aggbug/289965.html" width = "1" height = "1" />

周锐 2009-08-05 16:27 发表评论
]]>
工作三年之回?/title><link>http://www.aygfsteel.com/rain1102/archive/2009/07/21/287679.html</link><dc:creator>周锐</dc:creator><author>周锐</author><pubDate>Tue, 21 Jul 2009 09:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2009/07/21/287679.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/287679.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2009/07/21/287679.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/287679.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/287679.html</trackback:ping><description><![CDATA[三年了,真不敢相信现实,自己竟然已经毕业三年多了。从实习(fn)到现在已l三q半?br /> 三年前的今天在做什么自己都记得不是太清楚了Q估计还在那里了解公司的主要目架构Q了解里面的主要代码。一个给政府做的门户|站的框架代码,之后也就在这基础上做了昆山市政府的门L(fng)站。记忆最qQ就是ؓ(f)什么每ơ数据库q接的关闭不分装好,而需要自己手动去关闭Q现在应该早解决了吧。虽然短短的十个月,但那里是我步入社?x)的W一个脚华ͼ也是W一ơ参与正式项目。真心希望网q越走越好?br /> 毕业后的W二份工作,也就是现在的Q方正YӞ一个刚成立的公司,开始有很多苛刻让h气愤的规定,到目前ؓ(f)止大部分被取消了Q当然还存在一些恶心的规定。比如公U金按照工资?0%来交Q而税则按照所有钱加v来来交,p吃饭的钱也交E。既然还在这里做Q就安心的工作,做好眼前的事Q这h对得赯q旉。毕竟公怸步一步走到现在也不容易,希望公司早日发展q壮大?br /> 两年半的Ҏ(gu)职业生(dng)虽然没做q什么大的项目,但自׃学习(fn)C不少东西Q包括技术,做hQ管理等{。当然最重要的还是在q里认识了几个好朋友。不以后如何,获得的这些东西对我来说都是很珍贵的,Ҏ(gu)以后的职业以?qing)生z都?x)有很大帮助的?br /> 三年前,感觉遇到三年以上工作l验的h是多么的圣与幸q,现在看来Q原来也那P如果一个h真的厉害真的有?zhn)性,Ҏ(gu)不需?q_(d)可以达到很高的境界Q而如果程序员对程序不来电(sh)Q没有?zhn)性,或者说心思不攑֜代码上,l他三年Q五q_(d)甚至十年也不?x)有多大的突破?br /> 最后,希望以后的\l箋走好Q?img src ="http://www.aygfsteel.com/rain1102/aggbug/287679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">周锐</a> 2009-07-21 17:10 <a href="http://www.aygfsteel.com/rain1102/archive/2009/07/21/287679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用户体验的要?/title><link>http://www.aygfsteel.com/rain1102/archive/2009/05/25/277897.html</link><dc:creator>周锐</dc:creator><author>周锐</author><pubDate>Mon, 25 May 2009 13:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2009/05/25/277897.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/277897.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2009/05/25/277897.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/277897.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/277897.html</trackback:ping><description><![CDATA[<p>从低向上为战略层、范围层?l构层?框架层和表现?br /> <strong>战略?strategy)——网站目标和用户需?/strong><br /> 成功的用户体验,其基是一个被明确表达?#8220;战略”。知道企业与用户双方对网站的期许和目标,有助于确立用户体验各斚w战略的制定。然而回{这些看似简单的问题却不如说h那么Ҏ(gu)?br /> <br /> <strong>范围?scope)——功能规格和内容说明</strong><br /> 带着“我们惌什?#8221;?#8220;我们的用h要什么的”的明认识,我们p弄清楚如何去满所有这些战略的目标。当你把用户需求和|站目标转变成网站应该提供给用户什么样的内容和功能Ӟ战略变成了范围?br /> <br /> <strong>l构?structure)——交互设计与信息架构</strong><br /> 在收集完用户需求ƈ其排列好优先别之后,我们对于最l展品将?x)包括什么特性已l有了清楚的囑փ。然而,q些需求ƈ没有说明如何这些分散的片段l成一个整体。这是范围层的上面一层:(x)为网站创Z个概늻构?br /> <br /> <strong>框架?skeleton)——界面设计、导航设计和信息设计<br /> </strong>在充满概늚l构层中开始Ş成了大量的需求,q些需求都是来自我们的战略目标的需求。在框架层,我们要更q一步地提炼q些l构Q确定很详细的界面外观、导航和信息设计Q这能让色的结构变得更实在?br /> <br /> <strong>表现?surface)——视觉设?/strong><br /> 在这个五层木星的端Q我们把注意力{Ud|站用户?x)先注意到的那些斚wQ视觉设计,q里Q内宏V功能和学汇集Ch产生一个最l设计,q将满其他四个层面的所有目标?/p> <img alt="" src="http://www.aygfsteel.com/images/blogjava_net/rain1102/39818/o_elements.jpg" border="0" /><img src ="http://www.aygfsteel.com/rain1102/aggbug/277897.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">周锐</a> 2009-05-25 21:11 <a href="http://www.aygfsteel.com/rain1102/archive/2009/05/25/277897.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PDCA循环【{载?/title><link>http://www.aygfsteel.com/rain1102/archive/2009/03/09/258676.html</link><dc:creator>周锐</dc:creator><author>周锐</author><pubDate>Mon, 09 Mar 2009 13:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2009/03/09/258676.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/258676.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2009/03/09/258676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/258676.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/258676.html</trackback:ping><description><![CDATA[<div id="wmqeeuq" class="postText">PDCA循环的概忉|早是q?a title="质量理,质量理" target="_blank">质量理</a>专家戴明提出来的Q所以又UCؓ(f)“戴明?#8221;。PDCA四个英文字母?qing)其在PDCA循环中所代表的含义如下:(x)<br />   1?PQPlanQ?-计划Q确定方针和<a title="l织,目标,l织,目标" target="_blank">目标</a>Q确定活动计划;<br />   2?DQDoQ?-执行Q实地去做,实现计划中的内容Q?br />   3?CQCheckQ?-(g)查,ȝ执行计划的结果,注意效果Q找出问题;<br />   4?AQActionQ?-行动Q对ȝ(g)查的l果q行处理Q成功的l验加以肯定q当推广、标准化Q失败的教训加以ȝQ以免重玎ͼ未解决的问题攑ֈ下一个PDCA循环? <p>PDCA循环实际上是有效q行M一工作的合乎逻辑的工作程序。在质量理中,PDCA循环得到了广泛的应用Qƈ取得了很好的效果Q因此有人称PDCA循环是质量管理的基本Ҏ(gu)。之所以将其称之ؓ(f)PDCA循环Q是因ؓ(f)q四个过E不是运行一ơ就完结Q而是要周而复始地q行。一个@环完了,解决了一部分的问题,可能q有其它问题未解决Q或者又出现了新的问题,再进行下一ơ@环,其基本模型如下图1所C?/p> <p><img alt="" src="http://www.globrand.com/UploadFile//2006418182554843.JPG" border="0" /></p> <p>PDCA循环有如下三个特点:(x)</p> <p>1、大环带环。如果把整个企业的工作作Z个大的PDCA循环Q那么各个部门、小l还有各自小的PDCA循环Q就像一个行星轮pMP大环带动环Q一U带一U,有机地构成一个运转的体系?br />    <br />   <img alt="" src="http://www.globrand.com/UploadFile//2006418182555830.JPG" border="0" /></p> <p>2、阶梯式上升。PDCA循环不是在同一水^上@环,每@环一ơ,p决一部分问题Q取得一部分成果Q工作就前进一步,水^提高一步。到了下一ơ@环,又有了新的目标和内容Q更上一层楼。下面图2表示了这个阶梯式上升的过E?/p> <p>3、科学管理方法的l合应用。PDCA循环应用以QC七种工具Z的统计处理方法以?qing)工业工E(IEQ中工作研究的方法,作ؓ(f)q行工作和发现、解决问题的工具。PDCA循环的四个阶D又可细分ؓ(f)八个步骤Q每个步骤的具体内容和所用的Ҏ(gu)如下?所q?br />    ? PDCA循环的步骤和Ҏ(gu)</p> <p><img style="width: 589px; height: 262px" height="262" alt="" src="http://www.globrand.com/UploadFile//2006418182556468.JPG" width="589" border="0" /></p> </div><img src ="http://www.aygfsteel.com/rain1102/aggbug/258676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">周锐</a> 2009-03-09 21:37 <a href="http://www.aygfsteel.com/rain1102/archive/2009/03/09/258676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我和敏捷团队的五个约定[转蝲]http://www.aygfsteel.com/rain1102/archive/2009/03/04/257840.html周锐周锐Wed, 04 Mar 2009 09:36:00 GMThttp://www.aygfsteel.com/rain1102/archive/2009/03/04/257840.htmlhttp://www.aygfsteel.com/rain1102/comments/257840.htmlhttp://www.aygfsteel.com/rain1102/archive/2009/03/04/257840.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/257840.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/257840.html作?覃其?/strong> 发布?2009q???上午12?0?

我——作Z名测试h员——有一个与众不同的?fn)惯Q每当要加入一个新目的时候,我M(x)扑ֈ目中的同伴Q真诚而亲切地_(d)(x)“Z更好地合作,我有5个约定,希望大家能尽量遵?#8221;?/p>

U定1. 业务分析师们Q我们其实是同一个角色的两种面孔Q请叫上我们参加客户需求会(x)?/strong>

我们的团队需要让客户频繁的得到可用的软gQ客L(fng)不断反馈?x)给软g的未来做出最正确的方向指引?/p>

如果我们交付的Y件有很多质量的问题,存在大量的缺P客户?x)被q些~陷的奇怪行为干扎ͼ没有办法把注意力攑֜软g本n的h(hun)值是否符合他们的真正需求上Q?不能l出最有h(hun)值的反馈。所以,我们只有频繁的做试Q在每次交付之前都把质量问题扑և来告诉我们的团队Q问题才能及(qing)时的得到Ҏ(gu)?/p>

而我坚信“prevention is better than cure”Q预防胜于治疗)(j)Q我?x)要把工作的重点攑֜预防~陷上,q样可以节省Dev们很多修复缺L(fng)旉与精力?/p>

Z辑ֈq个目的Q我需要跟你一起参加客户需求会(x)议,早的了解客户需求与使用软g的惯常行为。那么在你完成需求的验收条g的定义的时候,我也基本完成了测试用例的准备?/p>

我们可以赶在开发h员们写代码之前就告诉他们我要什么,让他们减因于乐观而漏掉的一些重要的有破坏性的情况Q减缺L(fng)发生。这是我试的一w要Q务?/p>

如果你们在大部分需求都整理好了再交l我们,我会(x)费掉等待的旉。更重要的是Q开发好的Y仉面已l有很多本来可以不存在的~陷在里面了Q开发h员们可能需要加班加Ҏ(gu)保证在项目最l交付时间之前把它们改好。这样很Ҏ(gu)产生新的~陷的?/p>

所以,误我尽早了解需求,请不要让我到目后期才能开始测试?/p>

U定2. 开发h员们Q虽然你们是~写自动化测试的专家Q但请听听我们意?/strong>

我知道,对于你们Q自动化试不过是利用junit, rspec, seleniumQwatirQuiautomation{等写出?#8220;另一D늨?#8221;而已。而对?0%的QA来说Q编写自动化试q不是一件简单的事情?/p>

不过我仍然相信,有测试h员介入的自动化测试更有h(hun)倹{?/p>

你们用单元测试,集成试来保证代码的质量。然而你们的q些日常试M码更q,Ll用戯点远。很多测试都不是在测软g功能?/p>

你们可以把功能测试写的又快又多,而我们可以指Z么功能测试最有必要加到自动化试中?/p>

你们qx大部分精力都在编码上Q没有太多时间去查都有什么缺陗而我们可以指Z么地方缺陷可能会(x)出现的比较频J,在这些脆q地方加自动化试?/p>

所以请听听我们的意见,我们可以l你们提供这些信息?/p>

U定3. 目l理们,请不要要求我们测试Y件的所有\?

软g试是一个永无止的d。基本上没有什么Y件简单到我们能够试完它的每一个可能的路径的。就q一个看似简单的微Y计算器都有无I尽的\径,无止的输入Q更何况比这个更复杂的商用Y件?/p>

如果你们担心没有试q全部的路径不可靠,疑惑我们怎么敢说q个软g质量是好的还是坏Q都有什么风险。请你们先注意,我们是跟业务分析师一P都了解Y件的价值的。h(hun)值可以帮我们做出判断Q什么时候可以停止测试ƈ对客戯我们的Y件已l满x的要求了Q请攑ֿ使用?/p>

因ؓ(f)我们了解价|我们可以肯定的说哪些软g的用方式是臛_重要的,哪些是不太可能出现的。我们会(x)在全面测试了软g以后Q把主要_֊攑֜价值高的功能点上。合理的利用目有限的时间?/p>

因ؓ(f)我们了解价|我们可以正确的把发现的问题分cR我们可以帮助dev们把_֊攑֜重要的缺陷上Q避免把旉攑֜对于客户微不道却不得不p大量_֊才能修正的问题上?/p>

所以,请不要要求我们无止尽的测试一个Y件。我们了解h(hun)|L(fng)信我们的判断?/p>

U定4. q代l理们,如果对于交付风险有Q何疑问,h询问?

BA和Dev们都是关注一个Y件在什么情冉|可以良好的工作。而我们除了验证这些情况以外,大量的时候都用在L什么样的情况Y件不能正常的q行。所以除 了针对定义好的Y件行行测试,我们q会(x)做很多探索性测试。我们通常可以通过q样的测试发C些没有定义的、不N期的行ؓ(f)。这些行为往往会(x)构成软g 交付的风险?/p>

我们?x)告诉你们现在都发生了什么问题,分别分布在哪里?/p>

我们?x)告诉你们,在什么情况下软g可能?x)有异常行?f)Q是不是?x)牵q到其他的部分,是否可以l过厅R?/p>

我们?x)告诉你们,哪些部分功能比较不稳定,需要更多的留意?/p>

U定5. 试人员们,那些敏捷实践对于我们也是有用的?

l对不是dev们的专利。我不希望总见C们独自坐在自q位置上冥思苦惟뀂走出去Q跟其他队友多多交流Q?/p>

多跟试队友交流Qpair看看设计的测试用例是不是够全面,独自一个h惛_的未必够好。他们会(x)l你诚恳的意见的。对他们Q也请一栯真对待?

如果你发现开发h员们做出的架构决定ɋ试工作变得更困难。那么请大声地告诉他们,design for testabilityQ提高你们设计的可测性)(j)?/p>

如果你发C务分析师写的需求无法验证,定义的客戯Z够具体,一个用h事中包含太多了功能点Q等{,那么也请大声地告诉他QINVESTQ独立,可协商,价|可估,短小Q可)(j)?/p>

也请你们多跟开发h员结对写自动化测试,既可以帮助你们学?fn)怎样更好的编写自动化试Q也能帮助开发h员们l对更多的了解用戯为?/p>

q就是我的五个约定,它们是我在团队中利展开工作的基?/p>

周锐 2009-03-04 17:36 发表评论
]]>
The tao of programminghttp://www.aygfsteel.com/rain1102/archive/2009/02/11/254310.html周锐周锐Wed, 11 Feb 2009 13:40:00 GMThttp://www.aygfsteel.com/rain1102/archive/2009/02/11/254310.htmlhttp://www.aygfsteel.com/rain1102/comments/254310.htmlhttp://www.aygfsteel.com/rain1102/archive/2009/02/11/254310.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/254310.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/254310.html1> When you have learned to snatch the error code from the trap frame, it will be time for you to leave.
2> After three days without programming, life become meaningless.
3> When the program is being tested, it is too late to make design changes.
4> A well-written program is its own heaven; a poorly-written program its own hell.
5> Though a program be but ghree lines long, someday it will have to be maintained.
6> Let the programmers be many and the managers few-then all will be productive.
7> You can demonstrate a program for an executive, but you can't make him computer literate.
8> Without the wind, the grass does not move, wihtout software, hardware is useless.


 



周锐 2009-02-11 21:40 发表评论
]]>
Mh?/title><link>http://www.aygfsteel.com/rain1102/archive/2009/01/23/252434.html</link><dc:creator>周锐</dc:creator><author>周锐</author><pubDate>Fri, 23 Jan 2009 02:18:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2009/01/23/252434.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/252434.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2009/01/23/252434.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/252434.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/252434.html</trackback:ping><description><![CDATA[<p>早就听闻《h件》和《h月神话》共同被誉ؓ(f)软g界图书中?#8220;两朵最鲜艳的奇?#8221;。h们认为:(x)《h月神话》关?#8220;软g开?#8221;本nQ而《h件》则x软g开发中?#8220;?#8221;。处于好奇原因,前几天从图书馆借了本第二版回来随便M,竟然得以持箋Q花了几天的业余旉Q快速的看了一遍,体会(x)颇深Q即C此?br /> ׃译者离国时间太久原因,译的不是太能让懂,如果中文不是太差的话Q应该还能读下去?br /> 书中的一些思想和观点让我感觉到很震g吃惊Q这也是我ؓ(f)什么能很快的读完全书的原因所在,对于人才和团队的建立Q培d理Q书中可谓是详解独到QIT应以Zؓ(f)本,其他都是其次Q它解释了脑力劳动的独特之处Q用大量的刉业理模式是显然不适合的,更会(x)产生负面影响。两位笔者以风趣而尖锐的W调Q直?yn)L遍存在的理弊端。从适合脑力工作者的工作环境Q到体政治Q再C贴员工,培养ȝ团队Q社区的形成{等?br /> 目前Q多数管理者很体?x)以及(qing)了解脑力劳动者的Ҏ(gu)需求,认ؓ(f)M提升脑力力_者生产力的要求都是公司的支出Q而非投资。空间的压抑Q工作场所的噪C?qing)公司的L奖励政策和措施和防范性管理、官僚体pR物理隔R时间分隔、品质量要求降低、假的截x期、私党的控制{等都扼杀了自q团队Q降低了团队的生产力以及(qing)创造力。作者还分析了CMM以及(qing)q程改进Q强调过E改q是好的Q但q程改进E序未必是好的。下面从书中的六个部分开始分析:(x)<br /> <br /> W一部分Q管理h力资?br /> 作者强调:(x)理者的工作不是命o(h)人去工作Q而是创造条件让己想d作。作者用了做吉士汉堡,卖吉士汉堡来嘲讽了那些按照工厂模式来分配指派E序员工作,做一些所谓的人员储备Q把人看成可换的零gQ只?x)打ȝ序员的士气和创造性?br /> 理要以Zؓ(f)本!<br /> <br /> W二部分Q办公环?br /> 作者强调:(x)避免让脑力工作者处在难以聚_会(x)的工作环境下工作,理者需要提升的是程序员正常工作旉?#8220;?#8221;Q而非廉E序员工作时间的“?#8221;。那样只?x)ɽE序员放弃自q理想与质量,影响E序员的生理健康以及(qing)家庭和谐Q从而导致优U员工的流失?br /> ׃公司理层的片面Zؓ(f)以及(qing)错误的思想Q导致脑力劳动者全部拥挤在一个嘈杂؜q办公场所以及(qing)公司的那些家兯察的来回走动Q从而脑力力_者难以进入顺状态。作者在本部分中多次理者要多考虑工作环境问题Qؓ(f)脑力力_者提供一个安静、宽敞、隐U的工作环境Q这h能够创造一个有创造性、有zd的高生力的团队。程序设计师之间存在 10 ?1 的生产力差异…同样QY件公叔R也存在着 10 ?1 的生产力差异」,而你期待的团队生产力ZQ?br /> <br /> W三部分Q适当人?br /> 作者强调:(x)׃Q何工作的最l成果而言Q由“?#8221;来做L“如何”d的媄(jing)响的q要大。我们不怕问题,只怕处理问题的人。作者道出的成功的重点公式:(x)<br />     扑ֈ适合的h<br />     让他们很高兴在这里而不惌<br />     放手让他们Q意发?br /> 从上面的公式分析如何扑ֈ一个合适的人选,以及(qing)如何留下人才Q让他们很好的发挥各自的才能Q作者还分析了员工ؓ(f)什么会(x)dQ以?qing)员工流动的明显成本Q以?qing)一些隐形的成本?br /> <br /> W四部分Q生产力不断增长的团?br /> 作者首先强调:(x)整体大于部分dQ以?qing)什么是胶冻团队Q团队与个h之间的关pR随着目的日益庞大与复杂Q企业的成功与否主要看你的团队成功与否,理层要多注意团队的培养Q防止出现团队自杀现象Q经理更应该体脓(chung)员工Q创造团队成员之间的交流与合作机?x),提高团队成员之间的默契感和协作能力,使团队Ş成一U强大的亲和力?br /> <br /> W五部分Q应该开心地在这里工?br /> 作者强调如何创造一U愉快的工作氛围Qƈ列出了一些措施:(x)<br />     前导目<br />     竞赛<br />     头脑风暴<br />     培训、旅游、会(x)议、庆和休息<br /> 最后作者鼓׃成ؓ(f)自由人,让自我期?dng)R于管理者对你的期许Q唤醒大家对价值的再造?br /> <br /> W六部分Q《h件》箋?br /> 本部分ؓ(f)两位作者在20q后为第一版所做的补充Q再ơ分析加班的U种弊端Q以?qing)竞争的正反面,关于一些过E改q的谬论和CMM的反省,q程的成熟在降低风险,但是Q如果能让你成熟度别降低的目Q往往?x)是最有h(hun)值的目。本部分q讲了如何去估算评估人力资本Q公怸阶层的组l学?fn),q谈?qing)社区的形成?</p><img src ="http://www.aygfsteel.com/rain1102/aggbug/252434.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">周锐</a> 2009-01-23 10:18 <a href="http://www.aygfsteel.com/rain1102/archive/2009/01/23/252434.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>做吉士汉堡,卖吉士汉堡-Mh?/title><link>http://www.aygfsteel.com/rain1102/archive/2009/01/17/251732.html</link><dc:creator>周锐</dc:creator><author>周锐</author><pubDate>Sat, 17 Jan 2009 14:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2009/01/17/251732.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/251732.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2009/01/17/251732.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/251732.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/251732.html</trackback:ping><description><![CDATA[<strong>错误限额</strong><br /> 对于大多数脑力劳动者来_(d)偶尔犯一个错误是自然的,也是他们工作的一个健L(fng)成部分,但我们却持有q样的态度Q工作中的差错与|过之间几乎有天生的联系Q这是一U特别需要努力去改变的态度。鼓׃h们犯一些错误。你有时候可以询问你的下属走q怎样的死胡同Qƈ且确实让他们理解“没有”q不是最好的{案。当Z犯错误时Q应该祝Z们-那是他们所得到报偿的一部分?br /> <br /> <strong>理Q莽汉定?br /> </strong>理Ҏ(gu)最(zhn)哀之处是它几乎L多余的,你很需要严厉的措施让你的h员一直处于工作状态,他们大多数热pq工作。你甚至应该有时候采取措施让他们做一些工作,从而做更有意义的工作?br /> <br /> <strong>人员储备<br /> </strong>对于那个盲目的从生领域采纳一U管理模式的l理而言Q每个h的工作特性是q箋不断的烦(ch)恹{另一斚wQ天生的Q管理)(j)人的l理意识到独Ҏ(gu)对目的亲和力重要而有效。独Ҏ(gu)是要培ȝ东西?br /> <br /> <strong>一个稳定状态项目就是死胡同<br /> </strong>催化剂是重要的,因ؓ(f)目L处于一U变化的状态之中。能够帮l一个项目凝聚v来的人比得上两个只能做工作的人?br /> <br /> <strong>我们q没有时间来考虑q项工作Q只有时间来做这工?br /> </strong>随着风险的增加,Ҏ(gu)法深思熟虑更加重要。如果真的要做巨大的工作Ӟ我们必须学会(x)花更的旉工作和花更多的时间思考工作本w。工作越艰巨Q团队成员学?x)良好互动ƈ以此Z变得更加重要。一个在不可能的l定旉内要完成的项目,恰恰需要抽出时间来频繁地召开头脑风暴?x),甚至l织一ơ项目组聚餐或者其他诸如此cȝ事情Q以帮组个h融入高效的整体?br /> Q计划,研究新方法,培训Q阅读,评估Q预,安排q度以及(qing)Z安排{等l合zd。)(j)<img src ="http://www.aygfsteel.com/rain1102/aggbug/251732.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">周锐</a> 2009-01-17 22:13 <a href="http://www.aygfsteel.com/rain1102/archive/2009/01/17/251732.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在今天的某个地方Q一个项目正在失败-Mh?/title><link>http://www.aygfsteel.com/rain1102/archive/2009/01/17/251730.html</link><dc:creator>周锐</dc:creator><author>周锐</author><pubDate>Sat, 17 Jan 2009 13:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2009/01/17/251730.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/251730.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2009/01/17/251730.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/251730.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/251730.html</trackback:ping><description><![CDATA[<p>解释一个项目失败的原因Q不仅仅是技术问题?br /> <strong><br /> 问题的实?br /> </strong>本质上,我们工作中的主要问题Q与其说是技术问题,不如说是C会(x)学问题?br /> 在很多项目中Qh员方面遇到的N往往比技术方面遇到的N更多。然而很有人用q样的思想ȝ道工作。他们做理工作Ӟ好像技术是他们兛_的主要事情,他们把自q旉花在解决最费解的额是最有趣的难题上Q这些难题本来是他们下属必须解决的,却仿?jng)是他们自己做这些工作而不是去理它。而他们的职责中最应做的面向h的方面,常常被赋予最低的优先U?br /> <br /> <strong>高科技q觉</strong><br /> 我们們֐于集中精力去做技术方面,而不是h际关pL面的工作的主要原因,不是因ؓ(f)它更重要Q而是因ؓ(f)它更Ҏ(gu)做?br /> 如果你发现自己关注的是技术而不是社?x)方面的问题Q你q当于在一条黑暗的街上丢失了钥匙,却到邻近的另一条街上去L。因?#8220;q条街上的灯比那条街上的灯要亮一?#8221;?/p><img src ="http://www.aygfsteel.com/rain1102/aggbug/251730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">周锐</a> 2009-01-17 21:26 <a href="http://www.aygfsteel.com/rain1102/archive/2009/01/17/251730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>面试游击Q摘自JOEL ON SOFTWAREhttp://www.aygfsteel.com/rain1102/archive/2009/01/14/251346.html周锐周锐Wed, 14 Jan 2009 13:10:00 GMThttp://www.aygfsteel.com/rain1102/archive/2009/01/14/251346.htmlhttp://www.aygfsteel.com/rain1102/comments/251346.htmlhttp://www.aygfsteel.com/rain1102/archive/2009/01/14/251346.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/251346.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/251346.html你如何知道是否去聘用某个人?

1. 机敏
2. 成事
很机敏但不能成事的h通常拥有博士学位q在大型公司里面供职Q在那里没有人听他们的,因ؓ(f)他们Ҏ(gu)是不切实际的。他们更擅长于从事对某个问题的学术思考,而不是去做一些实际的事情。这Uh与众不同的地Ҏ(gu)他们喜欢指出两个引vq泛分歧的概念之间所h的理论相似性?br /> 能成事但不够聪明的h?x)做愚蠢的事情,好像做事不动脑子一Pq样p其他人在他后面ؓ(f)他擦屁股Q可见,q样的h对公怸点也不可靠?br />
面试要问些什么呢Q?/strong>
1. 介绍
2. 询问应聘人员最q从事的目情况
3. 问一些不可能回答上来的问?br /> 4. E序设计问题
5. 问他自己是否对自己满意吗
6. 让他提问一些问?br />
不问什么?
避免提问非法问题Q?img src ="http://www.aygfsteel.com/rain1102/aggbug/251346.html" width = "1" height = "1" />

周锐 2009-01-14 21:10 发表评论
]]>读JOEL说Y?/title><link>http://www.aygfsteel.com/rain1102/archive/2008/12/19/247266.html</link><dc:creator>周锐</dc:creator><author>周锐</author><pubDate>Fri, 19 Dec 2008 01:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/rain1102/archive/2008/12/19/247266.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/247266.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2008/12/19/247266.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/247266.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/247266.html</trackback:ping><description><![CDATA[                <strong>W一部分 位与字节Q编E实늂?br /> </strong><br /> 一 语言的选择 /2<br /> <br /> ?深入底层 /4<br /> <br /> ?JOEL试Q改q代码的12个步?/14<br />      1. 使用源控制机制吗Q?br />      2. 能一步完成连~吗Q?br />      3. 每天都连~吗Q?br />      4. 有故障信息数据库吗?<br />      5. 在编写新代码之前修复故障吗?<br />      6. 有最新的q度表吗Q?br />      7. 有规D明书吗?<br />      8. E序员拥有安静的工作环境吗?<br />      9. 你用C你资金能力内可买到的最好工具吗Q?br />     10. 有测试h员吗Q?br />     11. 新聘人员在试用期写代码吗Q?br />     12. q行走廊可用性测试吗Q?br /> <br /> ?每一位Y件开发h员必R绝对要臛_具备UNICODE与字W集知识(没有M例外!) /27<br /> <br /> ?L写就功能规格说明?W?节:(x)Z么烦(ch)? /38<br /> <br /> ?L写就功能规格说明?W?节:(x)什么是规格说明? /44<br />     1. 事先声明<br />     2. 作?br />     3. 情节<br />     4. 非构建目?br />     5. 概观<br />     6. l节Q细节,l节<br />     7. 未尽事宜<br />     8. 旁注<br />     9. 规格说明书需要保持时时更新的状?br /> <br /> ?L写就功能规格说明?W?节:(x)但是……如何? /54<br /> <br /> ?L写就功能规格说明?W?节:(x)技?/58<br /> <br /> ?L制订软gq度?/65<br /> <br /> ?每日q编是朋?/75<br /> <br /> 十一 难伺候的故障修复 /81<br /> <br /> 十二 软g开发中?个世?/87<br /> <br /> 十三 E纸原型开?/94<br /> <br /> 十四 不要被太I架构师所吓?/96<br /> <br /> 十五 开火与q动 /100<br /> <br /> 十六 人员技?/一104<br /> <br /> 十七 源于计算机学U的三个错误思想 /109<br /> <br /> 十八 二元文化 /4<br /> <br /> 十九(ji) 自动获取用户故障报表 /120<br /> <br />                <strong> W二部分 开发h员的理<br /> </strong><br /> 二十 面试游击指南 /132<br /> <br /> 二十一 重金Ȁ励害多利?/145<br /> <br /> 二十?不配备测试h员的五个首要(错误)原因 /149<br /> <br /> 二十?d换h有害无益 /156<br /> <br /> 二十?l不d的事情,W一?/160<br /> <br /> 二十?冰川下的U密 /165<br /> <br /> 二十?漏洞抽象定律 /172<br /> <br /> 二十?E序设计界的Lord Palmerston /178<br /> <br /> 二十?评测 /185<br /> <br />                 <strong>W三部分 Joel对常态问题的遐想<br /> </strong><br /> 二十?Rick Chapman解读愚昧 /188<br /> <br /> 三十 在这个国家狗是干什么的? /193<br /> <br /> 三十一 作ؓ(f)哼哈二将Q只去做事 /198<br /> <br /> 三十?两个故事 /204<br /> <br /> 三十?巨无霔R当劳与天才厨师Jamie Olivei /209<br /> <br /> 三十?没有什么像IT看v来那么简?/214<br /> <br /> 三十?提防非自d发综合症 /218<br /> <br /> 三十?{略IQBENQJERRY公司与AMAZON /222<br /> <br /> 三十?{略Ⅱ:(x)鸡与蛋问?/230<br /> <br /> 三十?{略IIIQ让我回? /237<br /> <br /> 三十?{略IVQ大件与80Q?0话 /242<br /> <br /> 四十 {略VQ公开源代码的l济因素 /246<br /> <br /> <br /> 四十一 墨菲法则肆掠的礼?/254<br /> <br /> 四十?微Y公司是如何|北API之战?/258<br /> <br />                 <strong>W四部分 对.NETE多的评?br /> </strong><br /> 四十?微Y_失常?/276<br /> <br /> 四十?我们的.NET对策 /282<br /> <br /> 四十?请问Q我可以使用q接E序?/286<br /> <br />                 <strong>W五部分 附录<br /> </strong><br /> 附录A 很好的问?/290<br /><img src ="http://www.aygfsteel.com/rain1102/aggbug/247266.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">周锐</a> 2008-12-19 09:14 <a href="http://www.aygfsteel.com/rain1102/archive/2008/12/19/247266.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>好的架构师都是善良的独裁者[转蝲]http://www.aygfsteel.com/rain1102/archive/2008/12/17/246897.html周锐周锐Wed, 17 Dec 2008 08:35:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/12/17/246897.htmlhttp://www.aygfsteel.com/rain1102/comments/246897.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/12/17/246897.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/246897.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/246897.html原文地址: http://tech.it168.com/a2008/1209/259/000000259786.shtml
对于M一个Y件开发h员来_(d)架构师都是一个o(h)人向往的角艌Ӏ就q世界首富比?dng)盖茨?000q卸d司CEO的同Ӟ也担M微Y公司的荣誉角?#8220;首席软g架构?#8221;Q可?#8220;架构?#8221;q一U谓的吸引力。架构师是公司的“金领”Q有着非常高的收入Q很需要考虑生存的问题,从而有更多的精力思考关键技术问题,形成“愈?#8221;的良性@环。部分优U的开发h员在工作了一定时间后Q就要开始考虑自己的未来到底向哪个方向发展。如果开发h员的沟通能力强q技术能力,在补充一定的目理知识后,可以向技术管理的方向转型。如果其Ҏ(gu)术一直很感兴,而沟通能力也不弱Q则可以试着q一步加强技术修养,以期向架构师的方向发展,最l?#8220;修成正果”?

        那么Q到底什么是架构师呢Q所谓的架构师,应该是一个技术企业的最高技术决{者。他主要负责公司软g产品或Y仉目的技术\U与技术框架的制订。好的架构师都是善良的独裁者,h很强的技术、良好的写作能力、良好的口头表达能力Q能够在各个层次q行沟通。从开发h员到架构师的成长应该是阶梯式的,一般来讲开发h员在刚刚开始工作时只能开发简单的独立软g模块Q慢慢的随着l验的增长,他开始接触一些相互之间有信息传递的模块Q而后来,他会(x)发现自己接到的开发Q务已l不是一个独立的单体Q这些Q务由一些专门的软g部分l成Q可能包含数据库Q工作流引擎Q消息服务等{各U功能模块,可能分布在不同的服务器上Q所有的部分协同hQ完成Y件功能。而这时候,体系l构的好坏将直接军_了系l的性能和可扩展性,而就在这时候,q名优秀的开发h员也开始思考架构师应该思考的问题了,或者说Q他向成长ؓ(f)架构师的道\q出了一大步?/p>

        什么是架构师最具h(hun)值的技能呢Q就是要了解不同的知识,做一?#8220;杂家”或者说“博学?#8221;。当?dng)如果你的数据库技术非常棒Q或者你在工作流引擎斚wh不可越的专家知识,那也是很不错的。好的架构师有好多都是从专家成长q来的。但是,q不是架构师应该做的事情Q架构师应该做的是了解所有的东西Q既了解技术的宏观面,又了解技术的l节。真正的架构师不仅仅要了解YӞ也要了解gQ在关键的部位用合适的g来取代YӞ可以成倍甚x癑ր的提高整个pȝ的效率。下面我会(x)以互联网行业对的架构师的要求ZQ向大家讲解作ؓ(f)架构师应该具备的知识?/p>

        互联|行业是当前最Ȁ动h心的行业之一Q很多的创新都来自于q个行业Q而每一个大型的|站如GoogleQYahooQMyspace{都需要解决一个非常复杂的问题Q就是网站的分布式向外扩?Scale Out)的问题。解册个问题,需要最优秀的架构师对业务进行剖析,利用软硬件将|站q行重构Q甚x据业务研发相应的分布式技术,解决|站复杂的分布式计算的问题?/p>

        如果你想在这个行业中成ؓ(f)一名架构师的话Q需要至掌握网l知识,gQYӞ|站优化{方斚w面的知识Q?br /> |络知识
        当前的Y件已l绝对不是那U仅仅跑在一台单Z的孤立应用了。不仅仅是在互联|行业,M一个行业的软gQ都要求其具有网l功能。因此,|络知识是架构师必备的知识。我们所说的|络知识Q不仅仅包括TCP/IPQhttp{互联网行业常用的Y件协议,也包括网l规划,甚至更具体的_(d)Ҏ(gu)|站应用所处的地理环境q行|络规划。比如h们常_(d)(x)“q世界上最q的距离不是生与ȝ距离Q而是?sh)信到网通的距离”Q笑Q如果应用是建立在中国的Q就要考虑?sh)信用户和网通用戯问网站的速度应该都比较快才可以。这时候的解决Ҏ(gu)可能有多U,比如采用CDNQContent Delivery Network内容分发|络Q得网站的内容发布到离用户最q的服务器,又可以采用把服务器放在一些所谓的双线机房中,甚至几U方案结合v来用。这些都l统归到|络知识中。做为公司的架构师,要对q些知识都有所了解Q才有助于在遇到问题时找到最佳答案?br /> g知识
        了解g的极限,是架构师的基本功。我见过一些hQ他们的g软gg都是没有极限的,需要资源就甌Q系l性能下降了就买更高的设备。然而,g的性能有很大一部分取决于I/O讑֤。而这些I/O讑֤依靠的都是机械物理运动,q种q动是有极限的。因此当资源讉K量增大到一定的E度Ӟq种物理q动成为瓶颈。比如说Q在开发网站的q程中,记录访客的状态是一件很重要的事情,一般来说可以用HttpSession来记录。而HttpSession的存储问题将是一个很大的挑战Q尤其是多机׃nSessionӞHttpSession存成文gq过多机׃n或网l备份的方式来解军_布式的问题是常用的方案,然而,架构师必考虑到这U方案是有I/O极限限制的,很难扩展到超q一定规模的大型|络。同Ӟ架构师应该了解目前最q的g发展是否对Y件系l会(x)造成一定的影响Q比如在多核的条件下是否对Y件编E有新的要求Q是否会(x)对运行在虚拟机和非虚拟机上的E序有媄(jing)响等{?br /> 软g知识
        软g知识所包含的范围就更加q泛了。对于互联网行业来讲Q架构师要了解操作系l,数据库,应用服务器等各方面的知识。比如说Q如果网站用的操作pȝ是LinuxQ就要了解这个Linux版本的性能与局限性,比如说最多可以存攄单个文g为多大。有的数据库的数据是以单个文件来存放的,虽然我们很少见到数据库中的数据多C能再攑օ一条记录的情况Q但是作为架构师Q请时刻注意Q这U可能性是有的。而且如果你有q在一安速成长的互联|企业中Q而你所负责的应用又没有l过优化的话Q可能你?x)很快见到这U现象。这U现象的发生可能是由于操作系l不支持大文件的原因Q也可能是数据库不支持大文g。不论如何,架构师应该在q种现象发生之前把一切都准备好。对数据库中表的拆分是架构师应该遇到的另外一个困难。一般来说增加应用服务器比较单而增加数据库服务器则是比较复杂的问题Q如果一个站点由多个数据库支持,架构师需要考虑如何在保证数据一致的情况下,让多个数据库分担压力。有些解x案是数据库的读写分开Q得大多数的查询sql不经q核心数据库Q而只是访问数据库的副本,但事实上Q这U方式也只能l护规模不大的网站。对于大型的|站来说Q把业务分散C同的数据库中Q只׃n必要的数据,才是合理的提高网站扩展性的解决Ҏ(gu)?br /> 其他知识
        作ؓ(f)pȝ架构师,可能q需要对分布式系l,负蝲均衡Q网l安全,数据监控{等各方面都有所了解。不仅仅是了解理论知识,也要对相关的产品和业界进展有一定的认识。比如说做负载均衡最好的产品是那U。目前最常用的备份策略是什么,有什么缺炏V如何用缓存,如何做好日志分析{等?br />         刚刚谈到的是架构师需要掌握的知识Q然而,冰冻三尺非一日之寒。这个过E需要我们慢慢的U篏。如果你已经q入到公司进行Y件开发,hd注你所开发Y件的性能与可扩展性,而不仅仅局限在功能上,时刻想着M一个简单的问题Q我开发的模块如果攑֜多hq发的环境下?x)怎样Q慢慢的׃(x)有所心得。如果你q是一个在校学生,不要想着自己L构师q个职位q很遥远。要知道Q成为架构师的修g路是很长的,甚至可以说是ln的,因此早点q入学习(fn)状态,不断修炼自己。在学校期间学好L数学Q数据结构,操作pȝQ编译原理,体系l构Q数据库原理{关键课E,q积极寻找机?x)到外面实?fn)Q增长自q工作l验。如果有Z(x)d一些技术主导的公司中工作,׃定不要放弃这U机?x),慢慢׃?x)成长h。最重要的,你会(x)Lx技术,勤于思考的好习(fn)惯。当有一天你发现自己对Q何技术难题都可以一眼看到其本质Qƈ能够其分解Z个个可轻松解决的模块Q你?x)由L(fng)感觉到知识给你带来的快乐Q或?dng)R一天,你已l是一个架构师了?/p>

周锐 2008-12-17 16:35 发表评论
]]>
怎样成ؓ(f)优秀的Y件模型设计者?[转蝲]http://www.aygfsteel.com/rain1102/archive/2008/12/15/246439.html周锐周锐Mon, 15 Dec 2008 08:10:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/12/15/246439.htmlhttp://www.aygfsteel.com/rain1102/comments/246439.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/12/15/246439.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/246439.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/246439.html我们期待自己成ؓ(f)一个优U的Y件模型设计者,但是Q要怎样做,又从哪里开始呢Q?/span>
下列原则应用到你的软g工程中,你会(x)获得立杆见媄(jing)的成果?/span>
1. 比技术重?
你开发Y件是Z供别Z用,没有Z用的软g只是没有意义的数据的集合而已。许多在软g斚w很有成就的行家在他们事业的初期却表现q_^Q因Z们那时侯主要精力都集中在技术上。显?dng)构gQ?/span>componentsQ,EJBQ?/span>Enterprise Java BeansQ和代理Q?/span>agentQ是很有的东西。但是对于用h_(d)如果你设计的软g很难使用或者不能满他们的需求,后台用再好的技术也于事无补。多q旉到Y仉求和设计一个用户能很Ҏ(gu)理解的界面上?/span>
2. 理解你要实现的东?
好的软g设计人员把大多数旉p在徏立系l模型上Q偶?dng)写一些源代码Q但那只不过是ؓ(f)了验证设计过E中所遇到的问题。这他们的设计方案更加可行?/span>
3. 谦虚是必ȝ品格
你不可能知道一切,你甚臌很努力才能获得够用的知识。Y件开发是一复杂而艰巨的工作Q因Y件开发所用到的工具和技术是在不断更新的。而且Q一个h也不可能了解软g开发的所有过E。在日常生活中你每天接触到的新鲜事物可能不会(x)太多。但是对于从事Y件开发的人来_(d)每天可以学习(fn)很多C西(如果愿意的话Q?/span>
4. 需求就是需?/span>
如果你没有Q何需求,你就不要动手开发Q何Y件。成功的软g取决于时_(d)在用戯求的旉内完成)(j)、预和是否满用户的需求。如果你不能切知道用户需要的是什么,或者Y件的需求定义,那么你的工程注定?x)失败?/span>
5. 需求其实很改变,改变的是你对需求的理解
Object ToolSmiths公司Q?/span>www.objecttoolsmiths.comQ的Doug Smith常喜Ƣ说Q?/span>分析是一门科学,设计是一门艺?/span>。他的意思是说在众多?/span>正确分析模型中只存在一个最正确分析模型可以完全满解决某个具体问题的需要(我理解的意思是需求分析需要一丝不苟、精的完成,而设计的时候反而可以发挥创造力和想象力 - 译者注Q?/span>
如果需求经常改动,很可能是你没有作好需求分析,q不是需求真的改变了?/span>
你可以抱怨用户不能告诉你他们惛_C么,但是不要忘记Q收集需求信息是你工作?/span>
你可以说是新来的开发h员把事情搞得一团糟Q但是,你应该确定在工程的第一天就告诉他们应该做什么和怎样d?/span>
如果你觉得公怸让你与用户充分接触,那只能说明公司的理层ƈ不是真正支持你的目?/span>
你可以抱怨公司有兌Y件工E的理制度不合理,但你必须了解大多同行公司是怎么做的?/span>
你可以借口说你们的竞争Ҏ(gu)的成功是因ؓ(f)他们有了一个新的理念,但是Z么你没先惛_呢?
需求真正改变的情况很少Q但是没有做好需求分析工作的理由却很多?/span>
6. l常阅读
在这个每日都在发生变化的产业中,你不可能在已取得的成׃陉太久?/span>
每个月至读2?/span>3本专业杂志或?/span>1本专业书c。保持不落伍需要付出很多的旉和金钱,但会(x)使你成ؓ(f)一个很有实力的竞争者?/span>
7. 降低软g模块间的耦合?/span>
高耦合度的pȝ是很隄护的。一处的修改引v另一处甚x多处的变动?/span>
你可以通过以下Ҏ(gu)降低E序的耦合度:(x)隐藏实现l节Q强制构件接口定义,不用公用数据结构,不让应用E序直接操作数据库(我的l验法则是:(x)当应用程序员在写SQL代码的时候,你的E序的耦合度就已经很高了)(j)?/span>
耦合度低的Y件可以很Ҏ(gu)被重用、维护和扩充?/span>
8. 提高软g的内聚?/span>
如果一个Y件的模块只实C个功能,那么该模块具有高内聚性。高内聚性的软g更容易维护和改进?/span>
判断一个模块是否有高的内聚性,看一看你是否能够用一个简单的句子描述它的功能p了。如果你用了一D话或者你需要用类?/span>?/span>?/span>?/span>{连词,则说明你需要将该模块细化?/span>
只有高内聚性的模块才可能被重用?/span>
9. 考虑软g的移植?/span>
UL是Y件开发中一具体而又实际的工作,不要怿某些软g工具的广告宣传(比如Java 的宣传口?/span>write once run many ? 译者注Q?/span>
即仅仅对Y件进行常规升U,也要把这看得和向另一个操作系l或数据库移植一样重要?/span>
记得?/span>16?/span>WindowsUL?/span>32?/span>windows?/span>乐趣?/span>Q当你用了某个操作pȝ的特性,如它的进E间通信(IPC){略Q或用某数据库专有语a写了存储q程。你的Y件和那个特定的品结合度已l很高了?/span>
好的软g设计者把那些Ҏ(gu)的实现细节打包隐藏v来,所以,当那些特性该变的时候,你的仅仅需要更新那个包可以了?/span>
10. 接受变化
q是一句老话了:(x)唯一不变的只有变化?/span>
你应该将所有系l将可能发生的变化以?qing)潜在需求记录下?/span>,以便来能够实现Q参?/span>“Architecting for Change”Q?/span>Thinking Objectively, May 1999Q?/span>
通过在徏模期间考虑q些假设的情况,你就有可能开发出_强壮且容易维护的软g。设计强壮的软g是你最基本的目标?/span>
11. 不要低估对Y件规模的需?/span>
Internet 带给我们的最大的教训是你必须在Y件开发的最初阶D就考虑软g规模的可扩充性?/span>
今天只有100人的部门使用的应用程序,明天可能?x)被有好几万人的l织使用Q下月,通过因特|可能会(x)有几百万Z用它?/span>
在Y件设计的初期Q根据在用例模型中定义的必须支持的基本事务处理,定软g的基本功能。然后,在徏造系l的时候再逐步加入比较常用的功能?/span>
在设计的开始考虑软g的规模需求,避免在用L(fng)H然增大的情况下Q重写Y件?/span>
12. 性能仅仅是很多设计因素之一
x软g设计中的一个重要因?/span>--性能Q这好象也是用户最兛_的事情。一个性能不佳的Y件将不可避免被重写?/span>
但是你的设计q必d有可靠性,可用性,便携性和可扩展性。你应该在工E开始就应该定义q区分好q些因素Q以便在工作中恰当用。性能可以是,也可以不是优先最高的因素Q我的观Ҏ(gu)Q给每个设计因素应有的考虑?/span>
13. 理接口
“UML User Guide”Q?/span>Grady BoochQ?/span>Ivar Jacobson?/span>Jim Rumbaugh ,Addison Wesley, 1999Q中指出Q你应该在开发阶D늚早期定义Y件模块之间的接口?/span>
q有助于你的开发h员全面理解Y件的设计l构q取得一致意见,让各模块开发小l相对独立的工作。一旦模块的接口定之后Q模块怎样实现׃是很重要了?/span>
从根本上_(d)如果你不能够定义你的模块从外部看上去?x)是什么样?/span>Q你肯定也不清楚模块内要实现什么?/span>
14. 走近路需要更长的旉
在Y件开发中没有捷径可以走?/span>
~短你的在需求分析上q旉Q结果只能是开发出来的软g不能满用户的需求,必须被重写?/span>
在Y件徏模上每节省一周,在将来的~码阶段可能?x)多花几周时_(d)因ؓ(f)你在全面思考之前就动手写程序?/span>
你ؓ(f)了节省一天的试旉而漏掉了一?/span>bugQ在来的维护阶D,可能需要花几周甚至几个月的旉M复。与其如此,q不如重新安排一下项目计划?/span>
避免走捷径,只做一ơ但要做对(do it once by doing it rightQ?/span>
15. 别信赖Q何h
产品和服务销售公怸是你的朋友,你的大部分员工和高层理人员也不是?/span>
大部分品供应商希望把你牢牢l在他们的品上Q可能是操作pȝQ数据库或者某个开发工兗?/span>
大部分的N和承包商只关心你的钱q不是你的工E(停止向他们付?gu)ƾ,看一看他们会(x)在周围呆多长旉Q?/span>
大部分程序员认ؓ(f)他们自己比其他h更优UQ他们可能抛弃你设计的模型而用自己认ؓ(f)更好的?/span>
只有良好的沟通才能解册些问题?/span>
要明的是,不要只依靠一家品或服务提供商,即你的公司Q或l织Q已l在建模、文档和q程{方面向那个公司投入了很多钱?/span>
16. 证明你的设计在实践中可行
在设计的时候应当先建立一个技术原型,或者称?/span>端到?/span>原型。以证明你的设计是能够工作的?/span>
你应该在开发工作的早期做这些事情,因ؓ(f)Q如果Y件的设计Ҏ(gu)是不可行的,在编码实现阶D|论采取什么措施都于事无补。技术原型将证明你的设计的可行性,从而,你的设计更Ҏ(gu)获得支持?/span>
17. 应用已知的模?/span>
目前Q我们有大量现成的分析和设计模式以及(qing)问题的解x案可以用?/span>
一般来_(d)好的模型设计和开发h员,都会(x)避免重新设计已经成熟的ƈ被广泛应用的东西?/span>
http://www.ambysoft.com/processPatternsPage.html
收藏了许多开发模式的信息?/span>
18. 研究每个模型的长处和q
目前有很多种cȝ模型可以使用,如下图所C。用例捕L(fng)是系l行为需求,数据模型则描q支持一个系l运行所需要的数据构成。你可能?x)试囑֜用例中加入实际数据描qͼ但是Q这对开发者不是非常有用。同P数据模型Ҏ(gu)qY仉求来说是无用的。每个模型在你徏模过E中有其相应的位|,但是Q你需要明白在什么地方,什么时候用它们?/span>
19. 在现有Q务中应用多个模型
当你攉需求的时候,考虑使用用例模型Q用L(fng)面模型和领域U的cL型?/span>
当你设计软g的时候,应该考虑制作cL型,序图、状态图、协作图和最l的软g实际物理模型?/span>
E序设计人员应该慢慢意识刎ͼ仅仅使用一个模型而实现的软g要么不能够很好地满用户的需求,要么很难扩展?/span>
20. 教育你的听众
你花了很大力气徏立一个很成熟的系l模型,而你的听众却不能理解它们Q甚xp-qؓ(f)什么要先徏立模型都不知道。那么你的工作是毫无意义的?/span>
教给你开发h员基本的建模知识Q否则,他们?x)只看看你画的漂亮图表,然后l箋~写不规范的E序?/span>
另外Q?/span>你还需要告诉你的用户一些需求徏模的基础知识。给他们解释你的用例(uses case)和用L(fng)面模型,以他们能够明白你要表达Cѝ当每个人都能用一个通用的设计语a的时候(比如UML-译者注Q,你的团队才能实现真正的合作?/span>
21. 带工L(fng)?c)q是?c)?/span>
你给?/span>CAD/CAM工具Q请我设计一座桥。但是,如果那桥徏成的话,我肯定不惛_W一个从桥上q的人,因ؓ(f)我对建筑一H不通?/span>
使用一个很优秀?/span>CASE工具q不能你成Z个徏模专Ӟ只能使你成ؓ(f)一个优UCASE工具的用者。成Z个优U的徏模专安要多q的U篏Q不?x)是一周针Ҏ(gu)个h(hun)值几千美元工L(fng)培训。一个优U?/span>CASE工具是很重要Q但你必d?fn)用它Qƈ能够使用它设计它支持的模型?/span>
22. 理解完整的过E?/span>
好的设计人员应该理解整个软gq程Q尽他们可能不是精通全部实现细节?/span>
软g开发是一个很复杂的过E,q记得?/span>object-oriented software process》第36늚内容吗?除了~程、徏模、测试等你擅长工作外Q还有很多工作要做?/span>
好的设计者需要考虑全局。必M长远考虑如何使Y件满用户需要,如何提供l护和技术支持等?/span>
23. 常做试Q早做测?/span>
如果试对你的Y件来说是无所谓的Q那么你的Y件多半也没什么必要被开发出来?/span>
建立一个技术原型供技术评审用,以检验你的Y件模型?/span>
在Y件生命周期中Q越晚发现的错误难修改Q修Ҏ(gu)本越昂贵。尽可能早的做测试是很值得的?/span>
24. 把你的工作归?/span>
不值得归档的工作往往也不值得做。归档你的设惻I以及(qing)Ҏ(gu)设想做出的决定;归档软g模型中很重要但不很明昄部分?/span>l每个模型一些概要描qC使别人很快明白模型所表达的内宏V?/span>
25. 技术会(x)变,基本原理不会(x)
如果有h?/span>使用某种开发语a、某个工h某某技术,我们׃需要再做需求分析,建模Q编码或试。不要相信,q只说明他还~Zl验。抛开技术和人的因素Q实际上软g开发的基本原理?/span>20世纪70q代以来没有改变过。你必须q定义需求,建模Q编码,试Q配|,面对风险Q发布品,理工作人员{等?/span>
软g建模技术是需要多q的实际工作才能完全掌握的。好在你可以从我的徏议开始,完善你们自己的Y件开发经验?/span>
以鸡汤开始,加入自己的蔬菜。然后,开始n受你自己的丰盛晚吧?/span>


周锐 2008-12-15 16:10 发表评论
]]>
վ֩ģ壺 | | | | | Դ| ¡| ũ| | ¤| | º| ԭ| ־| ƽ| | | Ϫ| բ| | ӱ| | | | Ǭ| ǫ| ɫ| | | | | Ƥɽ| Ȫ| | | Ͽ| Ϊ| | ɽʡ| | ʡ|