关于项目重构,知道真相的程序员眼泪笑了出来
本文授权转载,作者:非著名程序员(公众号:smart_android)
其实过完年回来,我们的项目也一直在强调重构,在实践重构中,但是到目前为止,基本没啥进度。关于项目的重构,我说:基本上大部分都是骗人的。你们信不信?那你可能会问:为什么一开始不把代码写的更好一些,逻辑更严密一些呢?那欢迎大家看我写的这篇文章《代码质量差,bug多?我们都是被逼的 》,看完你会深有同感的。
关于项目重构的问题,为什么一直做不完呢?直到我在浏览微博时,看到了一个非常好玩的对话,可谓是:感同身受,深有同感。知道真相的我,眼泪都快笑出来了,估计看到下面的对话,你们也会感同身受的,身临其境都有可能。对话如下:
A:重构80%都会失败,因为业务线的需求永远都不会停,资源有限,所以不花大代价,轻易不重构,宁可开发的慢一点,写好。B:其实以业界大部分产品经理的水平99%的项目都活不到重构的那天,所以业务量上来再重构更省资源。对话内容来自于@Easy的微博
看到第一句话A说的,一看就是深受其害的程序员说的,是不是说到你心坎里了。中招的同学请举手,作为我们有责任的程序员只能仰天长啸:有心写码,无力高效。bug其多,痛哉痛哉!下次你们老板和产品经理再催你赶进度,你就大喊:时间不够,代码瞎凑,毁了软件,完了项目。上线以后,如果用户体验不好,老板来找你谈话或者训你,你就说:这个锅我们程序员不背。B说的话,眼光很长远,要这么说的话,确实更省资源。要是产品经理和老板看到的话,估计不开森了。
其实项目重构是一个非常锻炼程序员能力的活,而且重构是一个不断优化和学习的过程。项目重构的重要性更不用说了,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。可能你会问:为什么不一开始就把项目做好,代码质量写的更好呢?话虽说可能是时间问题引起的代码质量差,程序员为了赶工期,但是即使是给程序员充足的时间,他也不可能预见未来的需求的变化, 可扩展性和可维护性就无从谈起,今天你想好了代码这些,明天估计需求就又变化了。所以一个持久的好的项目也不可能避免重构的发生,写代码的高手和大神也一样,都得经历这个阶段。
那何时才能触发重构呢?答案其实很简单,你是在忍受不了混乱的代码的时候或者感觉可读性很差的时候。你的忍耐力决定重构的时机。当然如果你写的程序一直在崩溃的话,估计你得被迫去重构和优化了。其实代码重构的出发条件应该是一下几点:
牵一发而动全身的修改
代码中存在过多的重复代码
过渡的耦合
过长的方法和类(过长的代码,逻辑复杂,bug可能几率上升)
太多代码无注释,你已看不明白
如果中了上述几条,你该想想代码重构了。不要被动的去重构,主动去重构还是非常有必要的,可以避免很多问题的发生。
代码重构其实最重要,最应该注意的两点,也是应该达到的目的就是:代码的简洁,逻辑严密和性能的优化。这就是重构的意义所在和内涵。
写到这里,你们可能会问我:那该如何重构呢?是啊,我一本正经的写了这么多,你们肯定想知道这个问题的答案,到底该如何重构?那我就一本正经的告诉你们答案:如果老板和产品经理不好好对待程序员,你们基本到不了项目重构的那一天。A和B说的就是真理,你们服不服?
如果不服的话,我怕你们打我,我还是再一本正经的说两句吧,如何重构:在不改变软件系统外部行为的前提下,改善它的内部结构即可。也可以借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。
请大家把这篇文章转发到朋友圈,让你们的老板和产品经理看看吧,让他们认识到问题的严重性,给自己争取更多的开发时间。下次如果产品经理再催你们进度,你们一定要记着一起大喊:时间不够,代码瞎凑,毁了软件,完了项目。
转载于:https://www.cnblogs.com/Amoyios/p/5764392.html
关于项目重构,知道真相的程序员眼泪笑了出来相关推荐
- 全球最厉害最有钱的24位顶尖程序员及其代表项目(公号回复“顶尖程序员”下载PDF资料)
全球最厉害最有钱的24位顶尖程序员及其代表项目(公号回复"顶尖程序员"下载PDF资料) 原创: 秦陇纪 数据简化DataSimp 今天 数据简化DataSimp导读:全球最厉害最有 ...
- 培训班出身需隐瞒经历吗?商业项目经验怎样写?程序员面试准备大盘点
作者 | hsm_computer 责编 | 伍杏玲 出品 | CSDN博客 在<春招妥了!资深技术面试官教你这样准备 Java 面试!>这篇博文后,提到了不少引导的说辞和技巧,如果能把面 ...
- 极客日报第 13 期:因未发项目奖金,一名程序员决定删代码泄愤;2020年最常用密码TOP200出炉,你都用过吗?
文章目录 互联网快讯 程序员专属 Github 每日精选 CSDN 社区优质博文精选 互联网快讯 1.三大运营商或于年底联合宣布 5G 消息商用 据报道,在 2020 中国移动全球合作伙伴大会期间,从 ...
- CSDN日报190301——不笑找我系列 | 程序员爆笑漫画十条
程序人生 | 不笑找我系列 | 程序员爆笑漫画十条 作者:写代码的篮球球痴 点击阅读原文 架构 | 高性能RPC框架--Dubbo一站式快速入门 作者:汤小洋 随着互联网的发展,网站应用的规模不断扩大 ...
- 如何高效利用开源项目增加实战经验?程序员如何做副业?这些你关心的问题一次讲清楚!...
不久前我在朋友圈做了一个调查,"工作1-3年的程序员,你对自身发展有哪些困惑?"得到了五花八门的答案: "我在一家小公司写Java,工作2年了,感觉很迷茫,项目经验也不多 ...
- 因未发项目奖金,一名程序员决定删代码泄愤
长按识别上方二维码,关注公众号:后端面试那些事 回复"报告",获取你的GitHub年度报告! 作者 | 刘琳 来源 | 刘琳 你永远都想不到程序员会因为什么删掉代码. 你可能还记得 ...
- BAT 力捧的 AI 项目再次爆发,这些程序员都受影响!
从2017年起,人工智能大火,几家国际大厂无论是微软 Build.Facebook F8 还是稍后的 Google I/O,莫不把"AI优先"的大旗扯上云霄. 百度 AI 开发者大 ...
- 程序员项目_您如何让程序员加入您的项目?
程序员项目 本月在The Queue上 ,LinuxQuestions.org的josephj问: 我如何让程序员加入我们的项目? 当原始开发人员退出并且没有其他人上前时,我继承了一个用$ progr ...
- 写了8年的代码,做过的项目都下线了,程序员的意义在哪里!
01 起因 前几天项目交付上线,所以闲下来了.忽然想起来,自己业余接的活,有些项目已经不再运营了,所以想清理下域名解析. 上去阿里云一看,总的大概有 15 个解析.这 15 个解析就意味着 15 个项 ...
最新文章
- android switcher控件,Android ViewSwitcher 的功能与用法
- grub-和grub-troubleshootting
- linux下查看当前用户的 三个命令
- Qt Creator Qt Quick用户界面表单ui-forms
- 专门用来显示大量数据的视图:AdapterView(1)
- JavaScript入门(part3)--变量
- MSN、QQ的网页链接代码
- 【链接】 一篇很好的有关卡特兰数的博文
- 【安装配置】克隆方式安装Oracle数据库软件
- 一般试卷的纸张大小是多少_档案产品库纸张整理专家
- python3中文乱码解决方法
- python中的变量的学习
- 八、jdk工具之JvisualVM之四--VisualVM 进行性能分析及调优
- ElementUI之el-pagination样式修改(小三角、“前往”、页码数)
- NR 5G 5G-GUTI解读
- 黑白双轨棋·改编(定子棋,终盘换子,在计算赢子的多少)
- 用公式编辑器将数学公式转为LaTeX代码
- 大数据周周看:百分点集团全资并购极速洞察,精准医疗创企“海普洛斯”获2.1亿元融资
- SwitchHosts——便捷切换hosts
- 译见赋能跨语言大数据渠道生态
热门文章
- nyoj--203--三国志(迪杰斯特拉+背包)
- Android 程序打包及签名
- CSS中的Position属性
- WindowsPhone 7.8 Tiles 1 : WideTile
- 32 | 答疑(四):阻塞、非阻塞 I/O 与同步、异步 I/O 的区别和联系
- drf5 版本和认证组件
- S1 Python 基础
- php curl 句柄 复用,PHP-curl multi批处理CPU负载过高的解决办法
- 参数变化_PDP驱动波形参数分析
- python爬取正确但不出文件_[求助] Python 爬虫爬取豆瓣_请不要害羞,语法没有报错,但是最终没有得到图片,请各位大神帮我看看,到底哪里出现了问题??急求...