论坛首页 海阔天空论坛

目前项目的暴强代码风格 + 把它重构了!

浏览 31852 次
精华帖 (0) :: 良好帖 (31) :: 灌水帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-12-17   最后修改:2008-12-17
wq163 写道
gigix 写道
引用
然后用看程序。大概耗时30分钟。加了注释,

我只想说,你这步就做得很差劲
像这么简单的程序,打开Eclipse或者IDEA就直接开始搞,一边重构一边就能看懂了
重构首先是一个形式化的过程:如果必须把代码看懂了才能重构的话,那么你就会让自己陷入一个悖论,因为最需要重构的代码你是看不懂的
你接着做吧…我只是想告诉你,有时候其实是五十步笑百步而已

你确定你懂形式化吗,形式化是要有严格数学推导的,如果重构是形式化的、不需要理解代码的,那么重构就不需要人来做了,完全可以写个工具去自动完成所有的重构

自己去看Opdyke的论文,或者至少看完Martin Fowler那本书再来说话
你以为Eclipse和IDEA那些重构工具是怎么做出来的?

http://www.laputan.org/pub/papers/opdyke-thesis.pdf,第4章

你看不见火星不代表火星不存在好伐?
1 请登录后投票
   发表时间:2008-12-17  
我同意gigix的观念,你都看懂代码了,那不叫重构,最多算个重新组织代码
0 请登录后投票
   发表时间:2008-12-17  
深秋小雨 写道
doProcessIfParentOfTaskIsTaskNode
要是我来写,这个直接写成processTask,方法里面具体是怎么判断的,打开方法看代码就好了。我觉得没必要把一个方法里判断的条件都用方法名描述出来。

那个isShouldDoProcess改成shouldBeProcessed会不会好些?

错。
还打开文件看代码。
你应该方法注释上写清楚。。。
这个方法是干啥,然后给个调用的示例。。。
0 请登录后投票
   发表时间:2008-12-17  
风花雪月饼 写道
还打开文件看代码。
你应该方法注释上写清楚。。。
这个方法是干啥,然后给个调用的示例。。。

写测试
1 请登录后投票
   发表时间:2008-12-17  
gigix 写道
风花雪月饼 写道
还打开文件看代码。
你应该方法注释上写清楚。。。
这个方法是干啥,然后给个调用的示例。。。

写测试

不是所有人都去tdd的
0 请登录后投票
   发表时间:2008-12-17   最后修改:2008-12-17
jichongchong 写道
gigix 写道
风花雪月饼 写道
还打开文件看代码。
你应该方法注释上写清楚。。。
这个方法是干啥,然后给个调用的示例。。。

写测试

不是所有人都去tdd的

(耸肩)
不是所有人都坚持锻炼的
所以也不是所有人都身体健康的
医生没有义务确保所有人都健康
3 请登录后投票
   发表时间:2008-12-17   最后修改:2008-12-17
gigix 写道
jichongchong 写道
gigix 写道
风花雪月饼 写道
还打开文件看代码。
你应该方法注释上写清楚。。。
这个方法是干啥,然后给个调用的示例。。。

写测试

不是所有人都去tdd的

(耸肩)
不是所有人都坚持锻炼的
所以也不是所有人都身体健康的
医生没有义务确保所有人都健康


(耸肩加摇头)但是tdd我觉得开发成本太大了,难道你是啥东西都是一上来都写个测试用例?只针对复杂的业务逻辑测试足够了好哇?
0 请登录后投票
   发表时间:2008-12-17  
gigix 写道
风花雪月饼 写道
还打开文件看代码。
你应该方法注释上写清楚。。。
这个方法是干啥,然后给个调用的示例。。。

写测试



注释还是要写明白吧。。。
至少我看JDK里那些注释,每个方法怎么用什么结果都写得很清楚了。
所谓有文档,API,就是可以不去看代码,哪怕测试代码吧。
0 请登录后投票
   发表时间:2008-12-17  
下一站,火星 写道
(耸肩加摇头)但是tdd我觉得开发成本太大了,难道你是啥东西都是一上来都写个测试用例?只针对复杂的业务逻辑测试足够了好哇?

是的
你反正要花时间去想自己要做什么
写测试只是把想的过程落实到程序代码,顺便还收获可执行的验证,没有额外的成本,只有额外的收益,何乐而不为
当然很多人写程序之前根本就不想到底要做什么,那就是另一回事了
1 请登录后投票
   发表时间:2008-12-17  
gigix 写道
下一站,火星 写道
(耸肩加摇头)但是tdd我觉得开发成本太大了,难道你是啥东西都是一上来都写个测试用例?只针对复杂的业务逻辑测试足够了好哇?

是的
你反正要花时间去想自己要做什么
写测试只是把想的过程落实到程序代码,顺便还收获可执行的验证,没有额外的成本,只有额外的收益,何乐而不为
当然很多人写程序之前根本就不想到底要做什么,那就是另一回事了


不知道你有没有考虑过测试用例的正确性这个问题,写测试用例肯定不是不用动脑子的,我见过很多的情况是测试用例根本没有覆盖到需求,所以如果这要写好这个测试用例还是需要花一定的成本的。

所以提到tdd我就脸红 ,我只能说,我做测试了,但不是tdd,ddd我看比较靠谱
0 请登录后投票
论坛首页 海阔天空版

跳转论坛:
Global site tag (gtag.js) - Google Analytics