敏捷开发的几大技巧:

原创 2007年09月21日 14:36:00
敏捷开发的几大技巧:
1、移动重复代码;
2、将注解转换为代码:将注释转换为代码,让代码足够清楚到可以表示注释,如将一部分代码重构成方法,用方法名来

表达注释的意思。
3:除去代码异味:
   第一种异味:代码用了类别代码(type code)如final int TYPERECTANGLE = 1;
   第二种异味:Shape 这个类有很多属性有时候是不用的;
   第三种异味:我们想给p1,p2 取个好一点的变量名都做不到,因为不同的情况下,它们有不同的含义:
   第四种异味:drawShapes这个方法里面,有个switch表达式。当我们用到switch(或者一大串的if-then-else-

if)时,小心了。switch表达式经常是跟类别代码(type code)同时出现的。
    消除代码异味方法:
    针对第一种,大多数情况下,要想去掉一个类别代码,我们会为每一种类别建立一个子类.再使用就要用

instanceof来判断对象。
    要移动一些类别代码和switch表达式,有两种方法:
    a.用基于同一父类的不同子类来代替不同的类别。
    b.用一个类的不同对象来代替不同的类别。
    
4.保持代码简洁
要判断一个类是否需要修整,一个比较主观的方法是:当在读一个类的代码时,看看我们会不会觉得这个类
“太长了”,“太复杂了”,或者讲的概念“太多了”?如果会这样觉得的话,我们就认定,这个类需要修整.
单一职责原则(The Single Responsibility Principle)认为:每个类都应该只为一个理由而修改.
5.慎用继承:
当我们想要让一个类继承自另一个类时,我们一定要再三的检查:子类会不会继承了一些它不需要的功能(属性或

者方法)?如果是的话,我们就得认真再想想:它们之间有没有真正的继承关系?如果没有的话,就用代理。如果

有的话,将这些不用的功能从基类转移到另外一个合适的地方去。
如果一个父类描述的东西不是所有的子类共有的,那这个父类的设计肯定不是一个好的设计。

里斯科夫替换原则(LSP)表述:Subtype must be substitutable for their base types. 子类应该能够代替父类的
功能。或者直接点说,我们应该做到,将所有使用父类的地方改成使用子类后,对结果一点影响都没有。或者更
直白一点吧,请尽量不要用重载,重载(类中可以相同的方法名不同的参数)是个很坏很坏的主意。

6处理不合适的依赖
  怎么判断是“不合适的依赖”
  方法1:
一个简单的方法就是:我们先看一下这段代码里面有没有一些互相循环的引用。比如,ZipMainFrame引用了
ZipEngine这个类,而ZipEngine又引用了ZipMainFrame。我们管这样的类叫“互相依赖”。互相依赖也是一种代
码异味,我们就认定这样的代码,是“不合适的依赖”。
  方法2:
另一个方法比较主观:在检查代码的时候,我们问自己:对于它已经引用的这些类,是它真正需要引用的吗?
  方法3:
第3 种方法也很主观:在设计类的时候,我们先预测一个以后可能会重用这个类的系统。然后再判断,在那
样的系统中,这个类能不能被重用?如果你自己都觉得以后的系统不能重用这个类的话,你就断定,这个类包含
“不合适的依赖”了。
   方法4
第4 个方法比较简单而且客观了。当我们想在一个新系统中重用这个类,却发现重用不了时,我们就判断,
这个类包含了“不合适的依赖”。
解决方法:除掉其中的依赖类,利用接口来处理。
依赖反转原则(Dependency Inversion Principle )表述:抽象不应该依赖于具体,高层的比较抽象的类不应该
依赖于低层的比较具体的类。当这种问题出现的时候,我们应该抽取出更抽象的一个概念,然后让这两个类依赖
于这个抽取出来的概念
7、 将数据库访问,UI和域逻辑分离
  先抽取出数据库访问层,然后将领域逻辑将表示层也分离。
8、以用户例事管理项目  (也就通常我们所说的用例)
   一件用户通过系统完成他一个有价值的目标(买一罐饮料)的事。这样的过程就叫“用户案例(user case)”或

者“用户例事(user story)”。也就是说,上面我们的客户所说的话,就是在描述一个用户例事(user story)。
9、 用CRC卡协助设计
    写上了类名,它的职责,以及它的协作关系,我们管这样的卡片叫“CRC卡”。CRC就是Class,Responsibility

和Collaboration的简称
10、 验收测试
11、 对UI进行验收测试
12、 单元测试
13、 测试驱动编程
14、 结对编程
      结对编程的好处:
    联合两人的知识去对付一个难题。
    知识互相传递。
    更有效的查错跟纠错。
    程序员都很开心。
    减少员工离职的损失。
     结对编程需要的一些技能:
    用代码解释已有的设计结构。
    用例子来解释。
    用图表来解释设计思路。
    如果你无法把你的设计思路表达清楚,把代码写出来。
    让比较迷惑的搭档来写代码,这样他就可以较好的融入你的概念。
    经常的休息。
    经常的更换搭档

相关文章推荐

成为高效程序员的几大搜索技巧

对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码。即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案。 ...
  • cyjch
  • cyjch
  • 2016年05月25日 15:43
  • 238

写文章的几大技巧

    对于很大一部分站长朋友们,做网站优化,最大的难题就是在于文章原创内容。虽然都知道原创的重要性,但有些朋友却偏偏写不出,写原创文章的难度是不言而喻的。文章写作新手,一般都以仿写开始。今天笔者为大...

江西SEO:软文推广需要掌握的几大技巧

所谓:“磨刀不误砍柴工”,做好事先准备有利于提高我们的做事效率,以便取得更好的成果,如今互联网时代,软文已经成为大家所钟爱的一种推广方式,而软文代发也越来越受大家的欢迎,在我们进行软文推广以及软文代发...

香港第一金Henry:黄金投资的几大关键技巧

香港第一金Henry:黄金投资的几大关键技巧 黄金交易时间长(24小时)波动大,但不代表我们一定要操作24小时,我们可以挑选几个“黄金时间”来做,相对获取利润的空间比较大。在下单时,需要考虑以下...

几大原型软件开发对比

  • 2012年02月20日 19:24
  • 19KB
  • 下载

几大移动平台的纯C/C++开发调查

转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=891 随着移动平台软硬件的发展,越来越多游戏可以用于移动平台上。比如Unreal...

嵌入式开发管理的几大特点

作者:彭蕾 嵌入式开发多用于一些对软件质量要求高、过程复杂的行业,如电子、通信、医疗、航空/航天等领域。与普通的软件研发相比,嵌入式开发管理有一些显著的特点,如团队规模大、人员多,参与团队多,对产品质...

几大移动应用开发框架的对比

最近在研究移动应用的开发框架,框架有很多,80%以上是使用html+css+javascript+ajax的web框架,我把方向也专注与此,因为phonegap可以轻松的把由html+javascri...

HTML5移动开发的几大特性

HTML5移动开发的出现让移动平台的竞争由系统平台转向了浏览器之间:移动端的IE、Chrome、FireFox、Safari,亦或是新出现的浏览器,谁能达到在移动端对HTML5更好的支持,谁就能在以后...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:敏捷开发的几大技巧:
举报原因:
原因补充:

(最多只允许输入30个字)