|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-09-11
yiding_he 写道 我觉得楼主无聊、教条而且钻牛角尖。连 gigix 都恼火了。
按照楼主的意思,看来我非得写一个随机生成句子的单元测试出来,楼主才会老老实实地写代码。测试使用来反映需求的。测试不能反映需求,那要来干嘛?光是一个反转“Tdd is a software devolopment technology”这样的需求本身就有问题,只要是开发人员都知道,这样的方法放在项目中一点用都没有,还不如直接写“technology devolopment software a is Tdd”算了。 那你为何不看看需求是什么,再这个问题上我的确钻牛角尖,也许这个例子非常的不好,我只是想表达的是,不要做不该做的事情,没有的需求永远不要去做,你认为应该这样的需求,客户未必会认为这样. TO all: 在以开始我就说来需求,需求不会传入其他字符串,我不知道谁注意到这点没有.诚然,这个需求,很多人一看当然会想着不仅仅只是转这个字符串,而是对所有的任意的句子进行反转,基于这样的想法,这个函数的实现我相信你要有多复杂估计他就会有多复杂. 从所有人的回帖中,我至少可以看的出一点,所有人都不去关心需求,只在那儿按照自己的理解和想法然后去评论。依次类推,我就这么认为了,在你们构建一个系统是,用户提一个需求,你大可以衍生出许许多多的需求.可是这些是客户需要的么? 一开始我就已经说了,不要跟我说需要转换其他句子(如果要说问题,问题应该是出在我应该去引导客户,需求是不是反正任意一个句子,我已经说了这是另外一个问题,和TDD没有任何关系),就是在转换这个句子的情况下,我采用的TDD方式有什么问题?可是就是有那么多人叫我在添加另外更多的测试。 如果需求是转换一个句子,我马上就会想到这些: 1.参数未null 2.参数为空 3. 参数为一个单词 4.参数为两个单词 5.参数未三个单词 6. 参数中含有多个 空格 7.参数为多个单词 8 参数开头和结尾有空格时…… 甚至还有更多的测试. 可是,我现在只是需要的俄式转换那个句子,何别这么麻烦.直接返回这样的“technology devolopment software a is Tdd”也没什么不可. 我重构之后的代码的确多了十几行.如果要说问题就是我的幅度太大,我已经说了,这是我当时想到的当前消除重复的方式,如果其他时候有更好的凡是,我再替换也不迟,况且那也只是一个循环,是要稍微对java熟悉一点的人我想一看也都明白了,也称不上什么复杂的代码. 我不会忘记,任何情况最重要的事情就是满足需求,之后,重构让代码更美,不要做你不需要做的事情. 记得一次在写一个过滤文件的,仅仅需要过滤一种文件,JPG,可是我当时居然花了两个小时写了一个可以过滤多种形式且认为很灵活的文件过滤器(这个类大家可以从我的blog上看到),而事实上,一年多过去了,这部分的需求仍然是当初的那样,只需要过滤jpg,当时我的Leader对我说的:“你有必要花那么多时间写这样的一个过滤器么?除非你的这部分代码需要放到公司的核心代码里面去,本来可以两分钟搞定的,你居然花了两个小时" 这件事情我永远不会忘记,我永远不会忘记那个leader告诉我的:满足需求,不要去做不需要做的事情. 而我问的是针对这个问题,我的TDD方式有什么问题?可是没想到居然引出这么多的问题. 到此为止,谢谢各位,非常感谢. |
|
| 返回顶楼 | |
|
最后更新时间:2007-12-25
引用 我说功能是实现了,可以说完成了,不过还有一步,重构,去除重复代码.TDDer仅仅看了一眼就直摇头,他说“你写这样的代码有什么用,如果我换另外一个字符串呢?你这个还能跑么?",我说"你的需求只是转那个字符串,而且我找你确认过,如果你要换另外一个字符串,那也就是说需求变更,那我调整代码罗,我说TDD不是这样的么?我平时工作中就这么做的。",TDDer只有一个劲的摇头了,而我也知道,这次没戏了.:D 我能说什么呢? 你的例子说明了你与别人沟通有一定的问题。 |
|
| 返回顶楼 | |
|
最后更新时间:2007-09-11
抛出异常的爱 写道 你的例子说明了你与别人沟通有一定的问题。 不错,我已经说过,如果要说问题,问题是出在,我应该去引导客户,看看这个需求到底是不是他想要的,做为开发人员这也是最基本的.而我当时只是找他们确定,并未询问。我在这里挑起这个话题,绝对不是为了问这个,我虽然很菜但也知道这个问题.我问的是再这样的需求下,这样的TDD有什么问题? 我现在基本知道问题所在了。不过我更明白一点,我浪费了大家的时间,在此深表歉意. 如果各位更感兴趣,不妨关注一下junit的newsgroup. Thanks. |
|
| 返回顶楼 | |
|
最后更新时间:2007-09-11
hyysguyang 写道 抛出异常的爱 写道 你的例子说明了你与别人沟通有一定的问题。 不错,我已经说过,如果要说问题,问题是出在,我应该去引导客户,看看这个需求到底是不是他想要的,做为开发人员这也是最基本的.而我当时只是找他们确定,并未询问。我在这里挑起这个话题,绝对不是为了问这个,我虽然很菜但也知道这个问题.我问的是再这样的需求下,这样的TDD有什么问题? 我现在基本知道问题所在了。不过我更明白一点,我浪费了大家的时间,在此深表歉意. 如果各位更感兴趣,不妨关注一下junit的newsgroup. Thanks. 在这样的需求下(my gosh),你根本就不应该创建一个新的class,什么地方需要这个翻过来的字符串就什么地方直接赋值给它好了,还TDD个什么劲。 |
|
| 返回顶楼 | |
|
最后更新时间:2007-09-27
这一帖.......实在是奇观
|
|
| 返回顶楼 | |
|
最后更新时间:2007-09-11
bromon 写道 这一帖.......实在是奇观
对于理解TDD很有益处! 我尚未实践TDD,现处于学习阶段.但希望各位搁置"需求固化和在进一步的争议",共同揭示TDD的真谛! “做最简单的事,不是做最愚蠢的事” (do the simplest thing to make the test pass, not the most stupid thing) 个人认为楼主忽视了"做最简单的事"! |
|
| 返回顶楼 | |
|
最后更新时间:2007-09-11
抛出异常的爱 写道 你的例子说明了你与别人沟通有一定的问题。 自从我看了楼主的第一篇帖子之后,我就想说这句话。到你这楼终于说了,我终于舒坦了。。。 还有一句我憋不住了,先说了:可怜的gigix…… 再来两句成语: 刻舟求剑 对牛弹琴 |
|
| 返回顶楼 | |
|
最后更新时间:2007-09-11
gigix 写道 hyysguyang 写道 抛出异常的爱 写道 你的例子说明了你与别人沟通有一定的问题。 不错,我已经说过,如果要说问题,问题是出在,我应该去引导客户,看看这个需求到底是不是他想要的,做为开发人员这也是最基本的.而我当时只是找他们确定,并未询问。我在这里挑起这个话题,绝对不是为了问这个,我虽然很菜但也知道这个问题.我问的是再这样的需求下,这样的TDD有什么问题? 我现在基本知道问题所在了。不过我更明白一点,我浪费了大家的时间,在此深表歉意. 如果各位更感兴趣,不妨关注一下junit的newsgroup. Thanks. 在这样的需求下(my gosh),你根本就不应该创建一个新的class,什么地方需要这个翻过来的字符串就什么地方直接赋值给它好了,还TDD个什么劲。 对的,这其实也就是我关心的问题,到底值不值得去做.也许根本不别那么做. 引用 抛出异常的爱 写道 你的例子说明了你与别人沟通有一定的问题。 自从我看了楼主的第一篇帖子之后,我就想说这句话。到你这楼终于说了,我终于舒坦了。。。 还有一句我憋不住了,先说了:可怜的gigix…… 再来两句成语: 刻舟求剑 对牛弹琴 我无法想象原来javaeye上有这么多你这样的高人,不过在我看来像你这样的素质的高人多一个不如少几百个几千个。中国的开发人员如果素质都像你这样,那真是中国的悲哀。 我有问题你可以提,你可以批评,你甚至可以不屑一顾,看都可以不用看一样,可是何别出口伤人呢? 我也在经常订阅一些newsgroup(国外的,比如eclipse junit jsunit .....),即便上面的任何人提得任何问题是多么的简单(甚至也许在你看来是弱智),但其他每一个人都会认真解答,争论的再激烈,也不会像你这样出口伤人(其实再本帖像你这样的我看到的已经不仅仅一个).可以肯定的是,你不会做的好,如果继续保持你这样的高素质的话. |
|
| 返回顶楼 | |
|
最后更新时间:2007-09-11
我基本上在这里找到我要的东西:
我更确信:面对面的交流才是最直接最有效的沟通方式. 每个人有自己的开发方式,而实际上每个人的TDD也不一样,何必过分关注那么多细节,其实你们说的步骤我也在做。 谢谢各位,本帖希望到此为止. 非常感谢. |
|
| 返回顶楼 | |
|
最后更新时间:2007-09-12
既然楼主也承认了“这个例子非常的不好”,那我也不就事论事了。到此为止。
|
|
| 返回顶楼 | |













