高效程序员的45个习惯:敏捷开发修炼之道(选载).doc

高效程序员的45个习惯:敏捷开发修炼之道(选载).doc

ID:55266560

大小:252.50 KB

页数:22页

时间:2020-05-08

高效程序员的45个习惯:敏捷开发修炼之道(选载).doc_第1页
高效程序员的45个习惯:敏捷开发修炼之道(选载).doc_第2页
高效程序员的45个习惯:敏捷开发修炼之道(选载).doc_第3页
高效程序员的45个习惯:敏捷开发修炼之道(选载).doc_第4页
高效程序员的45个习惯:敏捷开发修炼之道(选载).doc_第5页
资源描述:

《高效程序员的45个习惯:敏捷开发修炼之道(选载).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、动态评估取舍——高效程序员的45个习惯之一2009-11-1915:59:37 标签:程序员习惯效率动态   [推送到技术圈]动态评估取舍——高效程序员的45个习惯之一“性能、生产力、优雅、成本以及上市时间,在软件开发过程中都是至关重要的因素。每一项都必须达到最理想状态。” 可能曾经身处这样的团队:管理层和客户将很大一部分注意力都放在应用的界面展示上。也有这样的团队,其客户认为性能表现非常重要。在团队中,你可能会发现,有这样一个开发主管或者架构师,他会强调遵守“正确”的范式比其他任何事情都重要。对任何单个因素如此独断地强

2、调,而不考虑它是否是项目成功的必要因素,必然导致灾难的发生。 强调性能的重要性情有可原,因为恶劣的性能表现会让一个应用在市场上铩羽而归。然而,如果应用的性能已经足够好了,还有必要继续投入精力让其运行得更快一点吗?大概不用了吧。一个应用还有很多其他方面的因素同样重要。与其花费时间去提升千分之一的性能表现,也许减少开发投入,降低成本,并尽快让应用程序上市销售更有价值。 举例来说,考虑一个必须要与远程Windows服务器进行通讯的.NETWindows应用程序。可以选择使用.NETRemoting技术或WebServices来

3、实现这个功能。现在,针对使用WebServices的提议,有些开发者会说:“我们要在Windows之间进行通信,通常此类情况下,推荐使用.NETRemoting。而且,WebServices很慢,我们会遇到性能问题。”嗯,一般来说确实是这样。 然而,在这个例子中,使用WebServices很容易开发。对WebServices的性能测试表明XML文档很小,并且相对应用程序自己的响应时间来讲,花在创建和解析XML上的时间几乎可以忽略不计。使用WebServices不但可以在短期内节省开发时间,且在此后团队被迫使用第三方提供的

4、服务时,WebServices也是个明智的选择。 Andy说。。。过犹不及我曾经遇到这样一个客户,他们坚信可配置性的重要性,致使他们的应用有大概10000个可配置变量。新增代码变得异常艰难,因为要花费大量时间来维护配置应用程序和数据库。但是他们坚信需要这种程度的灵活性,因为每个客户都有不同的需求,需要不同的设置。可实际上,他们只有19个客户,而且预计将来也不会超过50个。他们并没有很好地去权衡。   考虑这样一个应用,从数据库中读取数据,并以表格方式显示。你可以使用一种优雅的、面向对象的方式,从数据库中取数据,创建对象,

5、再将它们返回给UI层。在UI层中,你再从对象中拆分出数据,并组织为表格方式显示。除了看起来优雅之外,这样做还有什么好处吗? 也许你只需要让数据层返回一个dataset或数据集合,然后用表格显示这些数据即可。这样还可以避免对象创建和销毁所耗费的资源。如果需要的只是数据展示,为什么要创建对象去自找麻烦呢?不按书上说的OO方式来做,可以减少投入,同时获得性能上的提升。当然,这种方式有很多缺点,但问题的关键是要多长个心眼儿,而不是总按照习惯的思路去解决问题。 总而言之,要想让应用成功,降低开发成本与缩短上市时间,二者的影响同样重

6、要。由于计算机硬件价格日益便宜,处理速度日益加快,所以可在硬件上多投入以换取性能的提升,并将节省下来的时间放在应用的其他方面。 当然,这也不完全对。如果硬件需求非常庞大,需要一个巨大的计算机网格以及众多的支持人员才能维持其正常运转(比如类似Google那样的需求),那么考虑就要向天平的另一端倾斜了。 但是谁来最终判定性能表现已经足够好,或是应用的展现已经足够“炫”了呢?客户或是利益相关者必须进行评估,并做出相关决定(见第45页中习惯10)。如果团队认为性能上还有提升的空间,或者觉得可以让某些界面看起来更吸引人,那么就去咨

7、询一下利益相关者,让他们决定应将重点放在哪里。 没有适宜所有状况的最佳解决方案。你必须对手上的问题进行评估,并选出最合适的解决方案。每个设计都是针对特定问题的——只有明确地进行评估和权衡,才能得出更好的解决方案。  没有最佳解决方案(Nobestsolution)  动态评估权衡考虑性能、便利性、生产力、成本和上市时间。如果性能表现足够了,就将注意力放在其他因素上。不要为了感觉上的性能提升或者设计的优雅,而将设计复杂化。 切身感受即使不能面面俱到,你也应该觉得已经得到了最重要的东西——客户认为有价值的特性。平衡的艺术·如

8、果现在投入额外的资源和精力,是为了将来可能得到的好处,要确认投入一定要得到回报(大部分情况下,是不会有回报的)。真正的高性能系统,从一开始设计时就在向这个方向努力。·过早的优化是万恶之源。·过去用过的解决方案对当前的问题可能适用,也可能不适用。不要事先预设结论,先看看现在是什么状况。 【连载】优秀程序员的45个习惯之

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。