`

感觉重构成了笑话

 
阅读更多
       从开始编程到现在,呆过的公司,呆过的每个项目组,几十上百行的函数都比比皆是。以此为美的还不在少数,认为这是“紧凑”;变量太多也不认为是问题,统统提到函数开头就行了,认为这样“更易读”;变量命名也很简短,一个字母的,两个字母的大行其道,也不认为是问题,可能认为这样并不影响阅读,相反还使得代码更简短。代码嵌套太深也不认为是问题,反对分拆函数,认为不是公用的代码就不用分拆,是否分拆与函数长度基本没有关系。
      我已经不相信国内有严格践行重构的公司了,觉得多数公司的代码都是这样写的。
       尽管阅读了《重构》一书,并自认为初窥门径,但仍无法说服同事们,除非他们也读过并认同。在认为重构就是伤筋动骨,是每隔一段时间就进行一次的大修的同学面前,直接向他们灌输书上的做法确实不行。我说变量应该紧贴逻辑块,就近原则,全部提到顶部不容易阅读,且相当于全局变量,应该限制作用域;但他们认为放在顶部就是更容易阅读。在怎么样更容易阅读方面起了争执,而且没有办法解释清楚。因为以我目前的功力和表达能力,我确实没有办法解释盐为什么是咸的,醋为什么是酸的。
0
3
分享到:
评论
19 楼 hyj1254 2013-12-16  
Shen.Yiyang 写道
如果你的团队没有建立完善的细粒度的单元测试,对依赖没有良好的管理,我想你也不要说服任何人重构了,一来成本肯定很大,二来这种质量的团队和项目不值得浪费生命。。。

此言差矣,如果做的事情同事和领导不认可,那就很严重了。而且,这种质量的团队,我现在认为是绝大多数。
18 楼 ygyz03 2013-12-14  
zqb666kkk 写道
重构 代表这 设计初始阶段 的失败  重构只是为了用一个错误去弥补另外一个错误,如果项目很烂  要么 废弃重做 要么  ,就是一烂再烂  看你如何选择


很多公司以为重构是在做一件有意义的事情 ,我只想说 我去年买了个表

前两个月,接了一个项目,交给我维护,烂的都没法看,索性自己重写了一个!烂东西越改越烂,注重重构的公司至始至终必定对项目有严格的要求,人家做重构是顺理成章的。不像大多数公司,前期着急赶进度,又没有统一的编码规范,到最后了,才想起来重构...那不就是那些2B项目经理挂在嘴边ZB用的么!
17 楼 ygyz03 2013-12-14  
white_crucifix 写道
我和楼主一样也是一个重构爱好者,不过我其实深深的理解楼主说的那些同事。因为重构这件事情,必然是以兴趣为驱动的,当一个人完全对这个系统没兴趣的时候,他是不会打从心底想去做优化重构的。你愿意重构的系统必然是你喜欢的,想要做的更好,写出完美优雅的代码,这其实是出于一种兴趣驱动,你重构时充满着激情。有些人不喜欢大动干戈,因为本身对系统也不报太多的激情,需求频繁的修改,前期都无所谓的功能后期都要赶工做出来,界面粗糙,重构完领导也不一定让你提交,等等等等。总而言之因为这个系统不是你的,没把它当作自己的心血,以后提到这个系统的时候也不会兴奋,“哦,以前我做个这个,大概是这个样子的”。我们看到很多开源项目,代码写得很好,人家不一定是大牛,但代码都是经过精心雕琢的,因为这是属于某人或某团队自己的东西,有激情。所以,什么样的系统值得你去重构,什么样的系统不值得你花时间去重构,了解清楚了自己就不怎么会生气了吧~

说出了我的心声,确实得有兴趣驱动才行。我自己有一些代码洁癖,看到那些乱七八糟的代码,唉...我这边连最基本的代码缩进都不讲究,废弃的代码直接注释掉,程序里都是System.out.println("aaa");之类的调试语句。每一个业务都是一坨代码的堆积,if else能嵌套10多层,而他们还以自己用一千多行代码实现了一个复杂的业务无比自豪。当你维护这些代码,基本上就是在滚鼠标的滚轮,都是一些老员工,说都没法说,沉闷!
16 楼 xjjaid13 2013-12-14  
white_crucifix 写道
我和楼主一样也是一个重构爱好者,不过我其实深深的理解楼主说的那些同事。因为重构这件事情,必然是以兴趣为驱动的,当一个人完全对这个系统没兴趣的时候,他是不会打从心底想去做优化重构的。你愿意重构的系统必然是你喜欢的,想要做的更好,写出完美优雅的代码,这其实是出于一种兴趣驱动,你重构时充满着激情。有些人不喜欢大动干戈,因为本身对系统也不报太多的激情,需求频繁的修改,前期都无所谓的功能后期都要赶工做出来,界面粗糙,重构完领导也不一定让你提交,等等等等。总而言之因为这个系统不是你的,没把它当作自己的心血,以后提到这个系统的时候也不会兴奋,“哦,以前我做个这个,大概是这个样子的”。我们看到很多开源项目,代码写得很好,人家不一定是大牛,但代码都是经过精心雕琢的,因为这是属于某人或某团队自己的东西,有激情。所以,什么样的系统值得你去重构,什么样的系统不值得你花时间去重构,了解清楚了自己就不怎么会生气了吧~

15 楼 BuN_Ny 2013-12-14  
谢继雷 写道
这没什么奇怪,奇怪的是彩票既然是负收益,但还是有这么多人会买,奇怪的是明知吸烟有害健康,还是有这么多人在大庭广众之下吸啊吸,奇怪的是明明居住在中国,却还要办暂住证。

14 楼 white_crucifix 2013-12-14  
zqb666kkk 写道
重构 代表这 设计初始阶段 的失败  重构只是为了用一个错误去弥补另外一个错误,如果项目很烂  要么 废弃重做 要么  ,就是一烂再烂  看你如何选择


很多公司以为重构是在做一件有意义的事情 ,我只想说 我去年买了个表



大言不惭

你以为世界上那些著名的开源软件都是一次性写好就不作修改的吗?
13 楼 zqb666kkk 2013-12-13  
重构 代表这 设计初始阶段 的失败  重构只是为了用一个错误去弥补另外一个错误,如果项目很烂  要么 废弃重做 要么  ,就是一烂再烂  看你如何选择


很多公司以为重构是在做一件有意义的事情 ,我只想说 我去年买了个表

12 楼 谢继雷 2013-12-13  
这没什么奇怪,奇怪的是彩票既然是负收益,但还是有这么多人会买,奇怪的是明知吸烟有害健康,还是有这么多人在大庭广众之下吸啊吸,奇怪的是明明居住在中国,却还要办暂住证。
11 楼 minimu 2013-12-13  
成本优先是现在大多数公司的策略;尽管到最好,成本很难hold住
10 楼 dwangel 2013-12-13  
我总觉得refactoring翻译成重构其实不好。

我觉得那本书 讲的是 小步长 代码调整 来降低总代码的熵值。
9 楼 lgm277531070 2013-12-13  
white_crucifix 写道
我和楼主一样也是一个重构爱好者,不过我其实深深的理解楼主说的那些同事。因为重构这件事情,必然是以兴趣为驱动的,当一个人完全对这个系统没兴趣的时候,他是不会打从心底想去做优化重构的。你愿意重构的系统必然是你喜欢的,想要做的更好,写出完美优雅的代码,这其实是出于一种兴趣驱动,你重构时充满着激情。有些人不喜欢大动干戈,因为本身对系统也不报太多的激情,需求频繁的修改,前期都无所谓的功能后期都要赶工做出来,界面粗糙,重构完领导也不一定让你提交,等等等等。总而言之因为这个系统不是你的,没把它当作自己的心血,以后提到这个系统的时候也不会兴奋,“哦,以前我做个这个,大概是这个样子的”。我们看到很多开源项目,代码写得很好,人家不一定是大牛,但代码都是经过精心雕琢的,因为这是属于某人或某团队自己的东西,有激情。所以,什么样的系统值得你去重构,什么样的系统不值得你花时间去重构,了解清楚了自己就不怎么会生气了吧~

赞成
8 楼 Shen.Yiyang 2013-12-13  
如果你的团队没有建立完善的细粒度的单元测试,对依赖没有良好的管理,我想你也不要说服任何人重构了,一来成本肯定很大,二来这种质量的团队和项目不值得浪费生命。。。
7 楼 white_crucifix 2013-12-13  
我和楼主一样也是一个重构爱好者,不过我其实深深的理解楼主说的那些同事。因为重构这件事情,必然是以兴趣为驱动的,当一个人完全对这个系统没兴趣的时候,他是不会打从心底想去做优化重构的。你愿意重构的系统必然是你喜欢的,想要做的更好,写出完美优雅的代码,这其实是出于一种兴趣驱动,你重构时充满着激情。有些人不喜欢大动干戈,因为本身对系统也不报太多的激情,需求频繁的修改,前期都无所谓的功能后期都要赶工做出来,界面粗糙,重构完领导也不一定让你提交,等等等等。总而言之因为这个系统不是你的,没把它当作自己的心血,以后提到这个系统的时候也不会兴奋,“哦,以前我做个这个,大概是这个样子的”。我们看到很多开源项目,代码写得很好,人家不一定是大牛,但代码都是经过精心雕琢的,因为这是属于某人或某团队自己的东西,有激情。所以,什么样的系统值得你去重构,什么样的系统不值得你花时间去重构,了解清楚了自己就不怎么会生气了吧~
6 楼 kmkim 2013-12-13  
我觉得是他们没看过那本书
5 楼 hq2999 2013-12-13  
LZ究竟是为代码不能被重构而苦恼还是为不能说服同事而苦恼。
前者:重构你自己代码足矣
后者:人生苦短,与其彼此说服,不如分头赶路
4 楼 kuaileqingfeng 2013-12-13  
其实在《重构》一书中,作者提到过,重构不应该是专门花时间做的事情,应该是开发过程中同时做的事情,也就是说,在开发过程中就进行重构。例如,想要获取用户的部门主管,如果需要通过查询表等方式来实现的话,那么应该单独写个方法来做这件事情,然后将结果返回。如果开发团队中实行code review的话,也会使开发人员养成不断重构代码的习惯。
3 楼 houxinyou 2013-12-13  
abingpow 写道
首先要知道一点,重构是一件费时费力却没有收益的事情,公司不会愿意做,程序员也不会给自己没事找事,所以,你愿意花力气是你的事,不能要求别人一样无聊

同意
而且重构是有风险存在的,一般重构是建立在强大 的单元测试基础上的,没有足够的测试,谁会冒险去做一件没有直接经济收益还可能会出错的事,在没有领导的支持的情况下,这完全就是受累不讨好的事

2 楼 至尊宝_唯一 2013-12-13  
abingpow 写道
首先要知道一点,重构是一件费时费力却没有收益的事情,公司不会愿意做,程序员也不会给自己没事找事,所以,你愿意花力气是你的事,不能要求别人一样无聊

你说没有收益应该指的是直接经济收益吧?
1 楼 abingpow 2013-12-13  
首先要知道一点,重构是一件费时费力却没有收益的事情,公司不会愿意做,程序员也不会给自己没事找事,所以,你愿意花力气是你的事,不能要求别人一样无聊

相关推荐

    新课标2020中考生物复习方案单元训练04试题新人教版202006081120

    6. 泌尿系统:尿液的形成过程被详细阐述,包括肾单位的构成(肾小球、肾小囊和肾小管),过滤作用(a)和重吸收作用(b)的概念,以及异常情况(如糖尿病可能与尿糖的检测结果有关)。 7. 内分泌系统:生长激素的...

    创业导论与创业精神.pdf

    资源的获取与满足欲望有关,快乐的本质是当人的欲望被资源满足时产生的感觉(正确答案A)。资源与快乐之间存在层次关系,低级资源满足低级欲望产生低级快乐,高级资源满足高级欲望产生高级快乐(正确答案ABC)。追求...

    英语母亲节祝福语.doc

    3. 英语祝福语:文档内容主要由英文构成,展示了一些常见的英语母亲节祝福语句,可用于写贺卡或在母亲节当天向母亲表达情感。 4. 感恩与爱意表达:祝福语中包含了对母爱的赞美和感激,如"the best mom that a son ...

    八年级英语上册用所给单词的适当形式填空专题练习新版牛津版202005051138

    4. 用seeming,与系动词seems连用,构成seem to do结构。 5. 用名词meaning,询问DIY的意义。 6. 用名词swimmer的复数形式swimmers,指她是游泳队里最好的游泳者之一。 7. 用序数词twentieth,表示她的弟弟在家里过...

    优秀资料(2021-2022年收藏)小学三年级语文单元作文18单元学校.doc

    2. **叙事技巧**:文中提到的课余生活,比如跳绳比赛和讲笑话,展示了如何通过细节描述来增强故事的生动性。学生应学会如何设置场景、引入人物、描述动作和情绪,使读者能够感受到故事的氛围。 3. **人物描写**:...

    八年级上册英语期中考试复习PPT学习教案.pptx

    2. 反义疑问句:第二题考查的是反义疑问句的构成,遵循 "前肯后否" 或 "前否后肯" 的原则。原句 "You hardly know him" 含有否定词 "hardly",所以疑问部分应用肯定形式 "do you"。 3. 不定式与动名词:第三题考察...

Global site tag (gtag.js) - Google Analytics