`
lingate
  • 浏览: 31774 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

重游BOB大叔的一次编程实践

阅读更多

此文是本人今天在重读BOB大叔的《敏捷软件开发》第六章后的一个小小读后感。

先给大家说说第6章里BOB都做了什么:

首先,BOB先和同伴打个招呼,让这次合作有个愉快的开头。

然后是一个极短的讨论,他们确定需要写一个保龄球计分程序,顺便画了一个简单的类图,把验收测试单也画了出来。

剩下的就是编码,在编码期间,他们在不停的寻找对象和方法的蛛丝马迹,不是靠想,而是靠代码和测试进行尝试。对象总是在测试中创建,测试中修改,相对来说测试的修改就少了不少,不过在思考了实际使用后,测试也会做一些调整,构想对象不同使用方式,使得测试不停的增加,新增加的测试如果无法通过,又促使对象代码的修改,如果对象代码变得冗长,方法变了味道,发现了便重构,重构后往往会带来对象和方法修改的迹象甚至建立新对象和新方法。如此反复直到大家都觉得程序的意思很清楚,测试很全面且正常,代码很美观。在这个过程中他们会为对方的想法喝彩,但他们也会为不同意见而扯皮,但他们对这种问题的解决方法就是,谁有疑义谁写代码证明自己观点。

 

 以上就是这个实践的浓缩,你发现什么了没?不错,在这次实践中,他们把对象和方法的搭建分布在工作的每个角落,他们虽然开始的时候画了一个类图,但是他们从来不认为那就是框架的全部,很快他们用测试推翻了这个设计,并在测试中创建了新的对象和方法。思考、编写、测试、交流贯穿全程。这个鲜活的实例让我感受到敏捷开发人性化的魅力。那么你呢?

分享到:
评论
2 楼 lingate 2006-12-04  
我们和BOB确实存在不少的差距,但是BOB的例子也说明了他们也是走了很多弯路才到的,BOB想说的是即使大家有这样或者那样的问题,但方法正确,终究还是能到达目的地。只是会比BOB用的时间还长一些。
1 楼 daquan198163 2006-12-01  
总结的不错!
用测试来驱动设计,用测试来发现接口,这应该是很高的境界了吧

相关推荐

    Bob 大叔讲解编程基础,点赞转发多了就直接翻译成中文

    Bob 大叔讲解编程基础,点赞转发多了就直接翻译成中文,当然真正的程序员是看的懂的,不管是英语还是汉语,程序员都能看的懂代码的。

    BOB 测试.pptx

    "BOB 测试校准测试" BOB 测试产品部是白红伟Page 2所在的部门,主要负责 BOB 测试产品的生产和测试。BOB 原理示意图 보여주는 RJ 45光纤接口语音芯片交换芯片电话口DC RJ 45RJ 45RJ 45WIFI 芯片PON 接口...

    Bob.app.zip bob: 0.4.0

    这个压缩包包含了一个名为Bob.app的可执行文件,这正是Bob翻译软件的核心部分。Bob不仅是一款常规的翻译工具,它还融合了多种先进功能,如划词翻译和截图翻译,旨在为用户提供更加便捷和高效的翻译体验。 首先,让...

    BOB光指标测试指导和TXRX灵敏度校准指导思路

    在IT行业中,尤其是在通信系统和网络硬件领域,BOB(Baseband Optical Board)是关键的组件之一,它处理光信号的传输与接收。本指导主要针对BOB的光指标测试和TXRX(Transmitter和Receiver)灵敏度校准提供详尽的...

    XP编程实践精华版(Word格式)

    为了演示一下敏捷编程实践,Bob Koss(RSK)和Bob Martin(RCM)将在一个小型的应用程序中使用结对编程(pair programming)的方法,你可以在一边进行观看。在创建该应用程序的过程中,会使用测试驱动开发以及大量的...

    Bob

    "Bob"可能是指一个特定的字体或一款由设计师Bob创作的字体库。在这个场景下,我们主要探讨的是字体的基本概念、种类以及在不同领域的应用。 字体是文字的视觉表现形式,它包括了字形、大小、粗细和风格等特征。在...

    Bob查词软件

    "Bob查词软件"是一款专为Mac用户设计的开源词汇查询工具,其独特之处在于它不仅提供了便捷的查词功能,而且特别优化了对M1芯片的适配,确保在最新的Mac硬件上运行流畅。这款软件的核心优势在于其开源性质,意味着...

    Tarsnap客户端Bob.zip

    **Tarsnap客户端Bob** ...它的开源性质不仅促进了软件的持续改进,也为开发者提供了一个学习和实践的平台。通过使用Bob,用户不仅可以保护自己的数据,还可以参与到开源社区的活动中,体验到技术带来的乐趣和成就感。

    BOB尽致广告BOB的核心方法论PPT课件.pptx

    创始人Bob深信理想主义是抵抗生活虚无的力量,尽管在地产行业中理想主义常被视为贬义,但BOB坚持自己的价值观,将广告视为生活的一部分,而非单纯的工作任务。 BOB的核心价值取向是专注于打造具有独特气质的产品,...

    帮助bob回家

    "帮助Bob回家"是一个典型的算法练习题目,它旨在通过编程解决特定问题,即设计一个算法帮助Bob找到回家的路径。在这个问题中,Bob可能在一个复杂的空间环境中,如一个迷宫或者一个网格地图中,需要找到从起点到终点...

    Bob 截图翻译.app.zip

    《Bob截图翻译.app》是一款基于机器翻译技术的应用程序,它主要功能是帮助用户快速地对屏幕截图进行实时翻译。在日常工作中,无论是处理跨国邮件、阅读外语文档还是学习新的编程语言,这款应用都能提供便捷的语言...

    Staggering Bob

    Staggering Bob

    Bob_Smith_Termination_vs_Proper_Termination

    一份描述网口Bob Smith的电路,对于了解此电路的功能有很大的帮助

    SPICE仿真 - Bob Pease会说No吗?(转)

    Bob Pease是一位著名的模拟电路设计大师,他对SPICE仿真有着独特的看法。尽管他曾经批评SPICE模型可能会削弱工程师对电路工作原理的洞察力,但这一观点并不意味着SPICE一无是处。 首先,我们要认识到SPICE模型的...

    BOB1.0.1靶机渗透攻略.pdf

    靶机 Bob 1.0.1 可以在 VulnHub 上找到,这是一个提供实战环境的网站,允许用户下载靶场并进行渗透测试。 渗透攻击过程首先需要使用 Nmap 工具进行扫描,Nmap 是一款强大的网络扫描工具,可以用来发现网络上的主机...

    Mr bob datasnap 讲义的源代码

    Mr bob datasnap 讲义的源代码 此压缩包包含6个讲义的代码,差不多每个讲义里都有10个datasnap例子源码 有datasnap普通开发的、有进行ios开发的、 有进行.net开发的Delphi Prism、 有 XML, SOAP & Web Services ...

    IIS6Setup_Bob 完整

    IIS6Setup_Bob 完整 安装iis更方便

    bob_and_alice.rar_ALICE_Java Alice bob

    总的来说,"bob_and_alice.rar"压缩包中的程序提供了一个学习和实践Java加密算法的实例,涵盖了从基础的加密概念到复杂的网络安全协议。通过分析和运行这个程序,不仅可以掌握加密算法的使用,还能提高对网络安全的...

    IIS6Setup_Bob

    IIS6Setup_Bob 安装iis更方便

Global site tag (gtag.js) - Google Analytics