关于项目重构,知道真相的程序员眼泪笑了出来

本文授权转载,作者:非著名程序员(公众号:smart_android)

其实过完年回来,我们的项目也一直在强调重构,在实践重构中,但是到目前为止,基本没啥进度。关于项目的重构,我说:基本上大部分都是骗人的。你们信不信?那你可能会问:为什么一开始不把代码写的更好一些,逻辑更严密一些呢?那欢迎大家看我写的这篇文章《代码质量差,bug多?我们都是被逼的 》,看完你会深有同感的。

关于项目重构的问题,为什么一直做不完呢?直到我在浏览微博时,看到了一个非常好玩的对话,可谓是:感同身受,深有同感。知道真相的我,眼泪都快笑出来了,估计看到下面的对话,你们也会感同身受的,身临其境都有可能。对话如下:

A:重构80%都会失败,因为业务线的需求永远都不会停,资源有限,所以不花大代价,轻易不重构,宁可开发的慢一点,写好。B:其实以业界大部分产品经理的水平99%的项目都活不到重构的那天,所以业务量上来再重构更省资源。对话内容来自于@Easy的微博

看到第一句话A说的,一看就是深受其害的程序员说的,是不是说到你心坎里了。中招的同学请举手,作为我们有责任的程序员只能仰天长啸:有心写码,无力高效。bug其多,痛哉痛哉!下次你们老板和产品经理再催你赶进度,你就大喊:时间不够,代码瞎凑,毁了软件,完了项目。上线以后,如果用户体验不好,老板来找你谈话或者训你,你就说:这个锅我们程序员不背。B说的话,眼光很长远,要这么说的话,确实更省资源。要是产品经理和老板看到的话,估计不开森了。

其实项目重构是一个非常锻炼程序员能力的活,而且重构是一个不断优化和学习的过程。项目重构的重要性更不用说了,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。可能你会问:为什么不一开始就把项目做好,代码质量写的更好呢?话虽说可能是时间问题引起的代码质量差,程序员为了赶工期,但是即使是给程序员充足的时间,他也不可能预见未来的需求的变化, 可扩展性和可维护性就无从谈起,今天你想好了代码这些,明天估计需求就又变化了。所以一个持久的好的项目也不可能避免重构的发生,写代码的高手和大神也一样,都得经历这个阶段。

那何时才能触发重构呢?答案其实很简单,你是在忍受不了混乱的代码的时候或者感觉可读性很差的时候。你的忍耐力决定重构的时机。当然如果你写的程序一直在崩溃的话,估计你得被迫去重构和优化了。其实代码重构的出发条件应该是一下几点:

  • 牵一发而动全身的修改
  • 代码中存在过多的重复代码
  • 过渡的耦合
  • 过长的方法和类(过长的代码,逻辑复杂,bug可能几率上升)
  • 太多代码无注释,你已看不明白

如果中了上述几条,你该想想代码重构了。不要被动的去重构,主动去重构还是非常有必要的,可以避免很多问题的发生。

代码重构其实最重要,最应该注意的两点,也是应该达到的目的就是:代码的简洁,逻辑严密和性能的优化。这就是重构的意义所在和内涵。

写到这里,你们可能会问我:那该如何重构呢?是啊,我一本正经的写了这么多,你们肯定想知道这个问题的答案,到底该如何重构?那我就一本正经的告诉你们答案:如果老板和产品经理不好好对待程序员,你们基本到不了项目重构的那一天。A和B说的就是真理,你们服不服?

如果不服的话,我怕你们打我,我还是再一本正经的说两句吧,如何重构:在不改变软件系统外部行为的前提下,改善它的内部结构即可。也可以借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方

请大家把这篇文章转发到朋友圈,让你们的老板和产品经理看看吧,让他们认识到问题的严重性,给自己争取更多的开发时间。下次如果产品经理再催你们进度,你们一定要记着一起大喊:时间不够,代码瞎凑,毁了软件,完了项目。

时间: 2024-11-08 22:41:49

关于项目重构,知道真相的程序员眼泪笑了出来的相关文章

切身体会,从项目中小结出 前端程序员容易忽视的一些基础知识

基础数据结构与算法 现在有两个不同的JSON,比较复杂,可以参考这里的DEMO中返回的JSON.要比较它们的差异,除了用现成的工具如beyond compare以外,如果我们的机器上没有安装这个工具,能如何较快解决?作为一个程序员,一个个对比是不可行的,对比完也不会有什么收获.我会把之放进Excel中(如果你机器连这个都没有,那忽视我),先排序,再用二分法去快速定位找到有差异的JSON属性,即使是1024个字段的大数据,也最多10次的定位即可找到.其实算法这东西,并不是给你一道题目然后把死记下来

我与项目的化学反应 ——读《程序员修炼之道》有感

正如书中所说,我曾经产生过自己的项目会失败的感觉,因为自己很迷茫不知道自己该如何去完成自己的团队项目,那种迷茫感在一开始的时候一直围绕着我,直到组长开始逐步把项目分块,一步步细分后,并且要求每个人需要做什么的时候,我心中的那块阴霾瞬间消失了,今天在书中巧合的遇到了自己的情况,于是自己十分好奇的想看看自己到底发生了什么? "完美,不是在没有什么需要添加,而是在没有什么需要去掉时达到的",这句话说得很直白,意思让我很是赞同,但也惹人深思,一样东西排放在你的面前时,你可以说出这样就可以不需要

程序员到项目经理:从内而外的提升

转自:http://www.cnblogs.com/watsonyin/archive/2012/09/10/2679528.html 目录 从程序员到项目经理(一):为什么要当项目经理 从程序员到项目经理(二):升职之辨 从程序员到项目经理(三):认识项目经理 从程序员到项目经理(四):外行可以领导内行吗 从程序员到项目经理(五):程序员加油站,不是人人都懂的学习要点 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑 从程序员到项目经理(七):程序员加油站 — 完美主义也是一种错

从程序员到项目经理

“从程序员到项目经理”,这个标题让我想起了很久以前一本书的名字<从Javascript到Java>.然而,从Javascript到Java充其量只是工具的更新,而从程序员到项目经理,却是一个脱胎换骨的过程.从Javascript到Java,是一个取巧的方法:而从程序员到项目经理,却并无捷径可走,必须从内而外的改变和提升. 一.为什么要当项目经理 1. 问题本质 如果我对一个老程序员说:“有必要转项目经理啦”,很多人第一反应是“为什么一定要当项目经理?!”,反问很给力,基至会让人哑口无言.但反问

从程序员到项目经理(一)

“从程序员到项目经理”,这个标题让我想起了很久以前一本书的名字<从Javascript到Java>.然而,从Javascript到Java充其量只是工具的更新,而从程序员到项目经理,却是一个脱胎换骨的过程.从Javascript到Java,是一个取巧的方法:而从程序员到项目经理,却并无捷径可走,必须从内而外的改变和提升. 一.为什么要当项目经理 1. 问题本质 如果我对一个老程序员说:“有必要转项目经理啦”,很多人第一反应是“为什么一定要当项目经理?!”,反问很给力,基至会让人哑口无言.但反问

【转】从程序员到项目经理--西西吹雪

处男作<程序员第二步—从程序员到项目经理>分娩记之一 也谈谈程序员职业规划的几个问题——我的一些故事 从程序员到项目经理(29):怎样写文档 从程序员到项目经理(28):该死的结果导向(只看结果,不问过程到底行不行?) 从程序员到项目经理(27):怎样给领导汇报工作 从程序员到项目经理(26):项目管理不能浑水摸鱼 从程序员到项目经理(25):对绩效考核的吐槽 从程序员到项目经理(24):慎于问敏于行 - 忠于工作不等于奴性 从程序员到项目经理(23):你真的尽力了吗?--从“月饼税”中我们学

【程序员】项目经理如何调动组员积极性

内容简介 [程序员]项目经理如何调动组员积极性 这个方法应该很适合程序员 都说程序员是比较傲娇,有点小自负(有的是相当,那不叫自负,那是实力的体现好吗),略微呆萌,自尊心偏小强的一类族群.是吗?中招了吗? 作为管理好几个组员,要完成一个大项目的项目经理,如何更好地调动组员的积极性,成了心头一大难题. 如果组员只有几个,那还好办.每天用用Scrum这种敏捷方法,汇报一下进度.假如组员持续增多,管理起来可是麻烦. 小编在新工作中就体会到了一个好工具的强大作用,这个工具就是Gitlab. 为什么Git

程序员在面试时更好的介绍项目经历

在面试时,经过寒暄后,一般面试官会让你介绍项目经验.常见的问法是:“说下你最近的(或最拿得出手的)一个项目”. 根据我的面试经验,发现有不少程序员对此没准备,说起来磕磕巴巴,甚至有人说出项目经验从时间段或技术等方面和简历上的不匹配,这样就会造成如下的后果. 第一印象就不好了,至少会感觉该候选人表述能力不强. 一般来说,面试官会根据程序员介绍的项目背景来提问题.假设面试时会问10个问题,那么至少有5个问题会根据程序员所介绍的项目背景来问,程序员如果没说好,那么就没法很好地引导后继问题了,就相当于把

说我装13?过来,打屎你!(揭秘程序员装13面具)

本文来源中关村在线,文章内容仅为博你一笑,转载仅为研究交流. 程序员一直都是很善良的IT工种,勤勤恳恳不辞辛苦的工作,不过今天的文章不是为了宣扬程序员的伟大.尽管在互联网的发展中,他们贡献了无数的代码,用自己的技术推进了互联网的进程.我们还是要扒一下程序员的装13行为,可能会有很多程序员看了本文会十分的愤慨,但考虑到你们很忙,没有时间黑公园网站,我也就不客气了. 程序员你还说没有装13 写代码离不开各种编程工具,有众多工具供选择便有花样的喜好,对装13的程序员来说,是坚决要抵制IDE的,IDE臃