`
dongbin
  • 浏览: 244729 次
  • 性别: 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,也不能保证你的实现没有逻辑错误。何来"可偿所愿"? 这也只是一句妄言.

相关推荐

    XP软件开发

    综上所述,XP软件开发方法是一种以客户为中心、强调迭代和灵活应对变化的开发模式。通过结对编程、测试驱动开发和持续集成等实践,XP旨在提高软件质量,缩短开发周期,并促进团队间的协作。在不断变化的IT环境中,XP...

    基于敏捷软件开发方法的基金管理信息系统开发

    在本文中,作者以一个基金管理信息系统的开发为例,详细展示了如何在实践中应用敏捷软件开发方法。 在这个项目中,开发团队采用了XP敏捷过程,并结合了敏捷建模的实践。由于基金管理系统的需求具有高度的不确定性和...

    XP中测试驱动的设计和开发讲义.pptx

    根据提供的文件信息,我们可以深入探讨测试驱动开发(TDD)的概念及其在极限编程(XP)中的应用。测试驱动开发是一种软件开发...在XP框架下,测试驱动开发的实践尤为重要,因为它支持了持续集成、持续交付等核心实践。

    敏捷软件开发:原则、模式与实践(全).pdf

    敏捷软件开发是一种以人为核心、迭代、循序渐进的软件开发方法...《敏捷软件开发:原则、模式与实践》一书为读者提供了深入理解和应用敏捷开发方法的丰富资源,成为软件开发人员和项目经理在实际工作中不可或缺的参考。

    Windows-XP搭建Android开发环境

    【搭建Windows XP上的Android开发环境】是一个涉及到多个步骤的过程,主要涵盖Java环境的配置、集成开发环境Eclipse的安装以及Android开发工具包(ADT)的集成。以下将详细阐述这些步骤: 首先,**Java环境的搭建**是...

    敏捷软件开发实践估算与计划 Mike Cohn

    《敏捷软件开发实践估算与计划》是Mike Cohn的一部著作,由清华大学出版社于2016...这本书详细阐述了如何在敏捷项目中实施这些实践,为软件开发团队提供了一套实用的工具和策略,以实现更高效、更具适应性的开发过程。

    xp框架 基于xp框架hook的DEMO

    通过对"基于XP框架hook的DEMO"的学习和实践,开发者可以掌握在Android环境中使用Hook技术来增强应用功能、改进性能或者进行深度调试的方法。然而,这种技术应当谨慎使用,因为它可能会影响应用的稳定性和用户隐私,...

    XP方法与传统软件工程方法的比较与研究.pdf

    总结来说,XP方法和传统软件工程方法各有优势,选择合适的开发方法是根据项目需求和团队特性来决定的。理解并掌握这两种方法,可以帮助开发者更好地应对各种开发挑战,提升软件开发的效率和质量。

    基于Web的WindowsXP桌面娱乐功能实现

    总的来说,基于Web的Windows XP桌面娱乐功能实现是一个结合了前端技术、用户体验设计和创新思维的挑战。通过JavaScript的动态性、CSS的可视化能力和Web的开放性,我们能够重构经典桌面体验,使之适应现代网络环境,...

    敏捷软件开发:原则、模式与实践(带书签+源码)

    《敏捷软件开发:原则、模式与实践》是一本深度探讨敏捷开发理念和技术的权威著作,由业界知名专家Robert C. Martin(简称Uncle Bob)撰写。这本书不仅提供了丰富的理论知识,还结合实际案例,深入浅出地介绍了如何...

    软件开发方法.pdf(绝对的好书,精通必看)

    - **基于构件的开发**是一种利用预构建的软件组件来构建新应用程序的方法,这种方法可以减少开发时间和成本,并提高软件的可靠性和稳定性。 #### 五、基于体系结构的软件开发 - **基于体系结构的开发**侧重于软件...

    敏捷软件架构、开发方法与开放源码最佳实践

    ### 敏捷软件架构、开发方法与开放源码最佳实践 #### 敏捷软件开发概述 敏捷软件开发是一种强调灵活性和高效协作的软件开发方法论。它的核心理念体现在《敏捷宣言》中:“个体和交互胜过过程和工具;可以工作的...

    硝烟中的Scrum和XP.pdf

    1. **价值观**:XP基于四个核心价值观:沟通、简单、反馈和勇气,这些价值观指导所有实践的选择。 2. **原则**:XP有十二个编程原则,如持续集成、结对编程、重构、单元测试等,它们旨在提高代码质量并快速识别问题...

    DSDM敏捷软件开发方法

    DSDM(动态系统开发方法)是一种敏捷软件开发方法,其核心在于提供了一个结构化、基于平衡敏捷开发实践的框架,其目的是在项目管理及开发过程中采用快速交付的方式,以设计满足客户需求的系统并快速实现商业价值。...

    嵌入式XP操作系统组件开发指南.rar

    嵌入式XP操作系统,全称为eXPerience Platform(xPe),是微软为特定设备和应用领域设计的一种轻量级Windows XP版本。它基于Windows XP Embedded技术,旨在满足那些需要小巧、高效、定制化操作系统的嵌入式系统需求...

    开题报告_基于JAVA的销售管理信息系统的开发与实现.pdf

    总的来说,这个基于JAVA的销售管理信息系统将融合先进的技术和业务实践,旨在为企业提供一个高效、灵活的管理工具,同时也为开发者提供了一个提升技术能力和实践经验的宝贵平台。通过系统的实施,不仅可以提高销售...

Global site tag (gtag.js) - Google Analytics