`
dongbin
  • 浏览: 240285 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

为什么说XP是基于实践的开发方法

阅读更多
很多软件开发方法都称自己是实践者的方法。

如何辨别方法学是否能够指导实践呢?看这个方法有没有原则性。

度的把握是仁者见仁,智者见智的问题,指导实践的最终结果就是领导意志决定一切。而原则确能明确的指导开发者。

   1. 瀑布方法学在指导每一个阶段的时候,严重强调一定要review保证上一个阶段完成了。如何保证?这是专家的能力,我等草民不可怀疑。只管准备出小山一样的文档就行了。

   2. RUP教育我们,一定要多写单元测试,多做code review。话是没错,但是这种没有原则性的空话,就和“建立和谐社会”一样,对于开发者没有指导性。

   3. XP晴天霹雳:“尔等Test Drive Development, Pair Programming, 便可偿所愿”。

此语一出,高下立判。
分享到:
评论
10 楼 charon 2006-10-27  
换句话说,TDD本身只保证测试用例通过,但不保证代码的质量.因为提升质量是通过重构和某些设计上的改进来做到的,但是在TDD循环中重构的时机和限度以及如何设计都没有明确到可操作的程度,只说了一句:要重构,但很多bad smell是上下文相关的,并没有绝对之说,不同的人/项目团队对不同的重构方式和设计都会有不同的认识.


9 楼 dongbin 2006-10-27  
引用
有些要求是含糊而有点思辨意味的
举个例子行么?
8 楼 charon 2006-10-27  
就是说 Test First是一个可以判断的做法。只要你先写测试再写/修改相应代码,就可以说自己是Test First了。
但是TDD就不一样,它有其他的要求,其中有些要求是含糊而有点思辨意味的,并没有简单的方式来判断一个开发过程是不是符合了TDD
7 楼 dongbin 2006-10-27  
charon 写道
dongbin 写道

刚才有人给我留言,说Test Drive != Test First,让我差点晕倒。

无话好说,就贴一段Kent Beck对TDD的定义:

Test-driven development (TDD) (Beck 2003; Astels 2003), is an evolutionary approach to development which combines test-first development where you write a test before you write just enough production code to fulfill that test and refactoring.

如果有人想给TDD重新定义的话,最好先通知大家一声。


Kent Beck的这段话说得很清楚了,TDD combines了Test First,而不是说TDD就是Test First.
这是一个逻辑问题,Test First只是TDD的一个方面,就好像 A把B当作一个要素 并不可以推出 A=B,因为A还有别的要素.
Test First的涵盖范围要比TDD广得多。


Test Driven != Test First 这句话是想说什么呢?
6 楼 charon 2006-10-27  
dongbin 写道

刚才有人给我留言,说Test Drive != Test First,让我差点晕倒。

无话好说,就贴一段Kent Beck对TDD的定义:

Test-driven development (TDD) (Beck 2003; Astels 2003), is an evolutionary approach to development which combines test-first development where you write a test before you write just enough production code to fulfill that test and refactoring.

如果有人想给TDD重新定义的话,最好先通知大家一声。


Kent Beck的这段话说得很清楚了,TDD combines了Test First,而不是说TDD就是Test First.
这是一个逻辑问题,Test First只是TDD的一个方面,就好像 A把B当作一个要素 并不可以推出 A=B,因为A还有别的要素.
Test First的涵盖范围要比TDD广得多。


5 楼 jack 2006-10-27  
这些都是纯理论的说法,实际操作起来根本是完全不是一码事情。
3 楼 dongbin 2006-10-27  
[url=http://dongbin.iteye.com/blog/30924] Test Drive != Test First ?[/url]
2 楼 抛出异常的爱 2006-10-27  
银弹.....
有了银弹大家回家种地去
1 楼 charon 2006-10-27  
dongbin 写道
很多软件开发方法都称自己是实践者的方法。

如何辨别方法学是否能够指导实践呢?看这个方法有没有原则性。

度的把握是仁者见仁,智者见智的问题,指导实践的最终结果就是领导意志决定一切。而原则确能明确的指导开发者。

   1. 瀑布方法学在指导每一个阶段的时候,严重强调一定要review保证上一个阶段完成了。如何保证?这是专家的能力,我等草民不可怀疑。只管准备出小山一样的文档就行了。

   2. RUP教育我们,一定要多写单元测试,多做code review。话是没错,但是这种没有原则性的空话,就和“建立和谐社会”一样,对于开发者没有指导性。

   3. XP晴天霹雳:“尔等Test Drive Development, Pair Programming, 便可偿所愿”。

此语一出,高下立判。


不知所云。
给个链接,是几年前的一段文字:
http://charon.blogdriver.com/charon/132572.html
即便TDD,即便PP,也不能保证你的实现没有逻辑错误。何来"可偿所愿"? 这也只是一句妄言.

相关推荐

    广工C#实验,实践C#语言基础知识及控制台应用程序开发,

    (2) 实践C#语言基础知识及控制台应用程序开发 (3) 掌握Visual C#.NET类的创建(成员,方法,属性),类的继承,类的多态性及类的方法的重载。 1.3 实验内容 题目: 基于控制台应用程序,设计一个二叉树的实验工具,...

    嵌入式系统开发基础——基于ARM微处理器和Linux操作系统[滕英岩][习题解答]

    嵌入式系统开发基础——基于ARM微处理器和Linux操作系统[滕英岩][习题解答] 目录第1章 嵌入式系统基础知识 1.1 嵌入式系统的特点及分类 1.1.1 嵌入式系统的特点 1.1.2 嵌入式系统的分类 1.2 嵌入式系统的软硬件...

    基于JSP+Ajax+MyEclipse 2015 Java聊天室软件源码+说明文档.zip

    通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,以此来完成Java聊天室的分析、设计、编码、测试等工作。 1.2. 任务 通过认真阅读老师所给的课程设计的...

    基于JAVA设计的现实版的“开心农场”软件源码+说明文档.zip

    通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,在农场里用户通过鼠标操作实现种子购买、作物种植;作物成熟后,可以摘取,可以售卖等基本功能。 1.2. ...

    基于JAVA的电子商务系统分析与设计(共27页).docx

    1.3、操作可行性 本系统共花了四个星期完成,前一个星期主要是以看书以及收集有关系统方面的资料为主,再者就是对系统的分析,功能结构图、数据流程图、数据字典到做数据库的设计,最后两周是上机实践操作,把已经...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...

    基于SOA架构打造敏捷企业的实践

    面向服务架构SOA中的面向服务是分布式计算中的一 种模式。在此种模式下 .软件功能在网络上展现为服务的形式.这些服务可以分布于不同的物理地点.可以彼此发现.互相调用。

    基于AT89S52 单片的频率计

    一般说来,数字系统中运行的电信号,其大小往往并不改变,但在实践分布上 却有着严格的要求,这是数字电路的一个特点。 2 系统的总体设计: 2.1 原理设计 本频率计的设计以AT89S52 单片机为核心,利用它内部的定时/...

    华为HCIP-鲲鹏V1.0培训视频.rar

    3.3.2基于编译型语言的鹏应用开发案例3.3能鹏应用开发xip 3.3.3基于解释型语富的鹏应用开发3.3鹏应用开发,zip 3.3.4代码归一介绍3.3鲲鹏应用开发,zip 4.1.1鹏应用发布流程4.1鹏应用发布流程,zip 4.2,1RPM管理...

    敏捷建模与统一过程.doc

    敏捷建模(Agile Modeling,AM)是一种基于实践的软件过程,它的范围包括描述如何建模以及以一种高效而敏捷的方式编写文档。理想情况下,AM的实践应该用来促进 其它更完整的软件过程,比如极限编程(XP)(Beck, 2000)、...

    java数据库课程设计_新闻发布系统

    本课程设计的目的是通过实践使学生经历一个java与数据库系统开发的全过程并受到一次综合的训练,以便能较全面地理解、掌握和综合运用所学的知识去分析、解决实际问题。 1、操作系统为Windows xp 2、数据库管理系统为...

    java应用模式

    作为首席科学家,福勒先生曾经并将继续努力帮助客户开发和实施依据自己专长所开拓的最佳实践方法、领导思特沃克公司利用最先进的技术在软业开发领域不断创新,并坚持不懈地在软业界的各种会议上推广先进的理论和技术...

    基于J2EE框架的个人博客系统项目毕业设计论...

    本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...

    2008北京奥运场馆信息查询系统分析与设计

    本系统是基于Windows XP平台下,应用JSP网页设计技术和SQL Server2000数据库为开发工具,应用Rational Rose和UML建模语言为系统分析与设计工具,应用软件开发生命周期中的瀑布模型作为开发进度计划,最终建立起以B/S...

    asp.net家政服务网站设计毕业设计

    而导致这些繁琐问题的主要原因是因为缺乏雇主与员工之间的桥梁,由此,长春家政服务网(做为小范围试行项目)营运而生,并在实践中继续完善服务机制,做到“一切从实际出发,理论联系实际,坚持实践是检验真理的标准...

    基于PLC的电子密码锁设计.doc

    在国内这方面发展也较快,不管自己开发或是引进都有,在重要场合应用也比较多.由于电 子密码锁价钱较普通机械锁贵,在国内早几年应用较少,现在越来越普及到平常化,未来 的发展趋势也会是越来越大众化。由于电子密码...

    基于Web的超媒体教学CAI课件系统设计

    为促进基于Web的超媒体课件在高校教学改革中的实际应用,以Windows XP为开发平台,Tomcat为服务器引擎,采用JSP/Servlet作为服务器端执行语言,SQL Server2000为后台数据库作为技术支撑,开发设计并实现了基于...

    基于JAVA的网上图书商城系统设计与实现.zip

    《网上图书商城》模型是典型的网上购物实践中最为普遍的电子商务企业对客户(B2C)模式,主要功能包括: 1、用户模块: (1)用户管理:实现用户的查询,注册,登录,修改密码 (2)分类显示:实现一级分类,二级分类 ...

    Windows编程技术

    本书内容以VC++.net和Windows XP为开发平台,面向具有一定C++基础的读者,由浅入深,系统的讲授了使用C++语言进行Windows程序设计的基本方法。考虑到教学或自学的方便,全书内容共分14章,可安排18个时间单元...

Global site tag (gtag.js) - Google Analytics