最近在分析现有代码,将一部分逻辑抽取出来做服务化,分析的时候才发现里面有很多“坑”。在对相关负责人访谈的时候,发现绝大多数程序员都有这样的习惯:
- 面对一个新的需求,通常的做法是完全沿用现有的设计,完全不考虑现有的设计是否适应新的需求,是否要做改造;
- 想尽一切办法对现有的代码进行修修补补,完成新的功能,以达到修改最小的目的。
- 面对老旧的、无用的代码,很少甚至从来不做删除,以确保风险最低。
然后,用不了多久,代码就变得很难读懂了,只有少数人掌握其中的“真理”。我个人认为,如果是针对某一个特定的应用,规模不大、用户比较少、软件生存周期比较短、需求变更很少的情况下,这样做是可以接受的。 但如果是互联网行业,情况则完全不同:产品周期很长(除非死翘了)、需求频繁变更、业务方向经常变更,这样的做法会让代码很快就变得难以理解(我最近重构的逻辑实际上才过了1年半左右)。 最后导致的结果就是没法维护,重新开发,进入下一次恶性循环。
这种情况以前也经常遇到,绝对不是个案,甚至是普遍的。我开玩笑地对同事说,程序员就是被别人写的代码恶心,再把本来已经很恶心的代码变得更恶心,再用来恶心别人的过程(他离职或者去做其他的系统,别人接替他的工作)。这样对程序员整个的生存环境造成了极大的影响。 维护的工作没人愿意做,但是大多数工作都是维护类型的工作。
为什么不换一种思路来进行呢?
- 首先,收到一个需求,评估需求与现有的架构是否完全吻合,对于不吻合的地方,做少量的调整;
- 确保每次提交的代码,让可读性变好一点点(至少不会变差) (摘自《程序员应该知道的97件事》)
- 架构师或者资深程序员充分参与到项目里面,做好相应的支持;
- 建立较好的单元测试、集成测试、自动构建体系,尽可能减少重构带来的风险。
一些程序员遇到了拆分的问题,比如有个程序员知道底层是不能调用上层逻辑的,但是遇到了底层的一个处理必须要通知上层,又没人告诉他应该怎么做,只好硬性依赖了。对此我只能说IOC几乎每个Java程序员都知道,但是能够深入理解的就不那么多了,如果理解了IOC,就不会不知道如何处理了。
紧张的工期也是一个问题,当然,有些程序员不去动原有的逻辑并不真正的因为是工期的问题,而是以工期为托辞,不愿因做那些费力不讨好的工作。我个人将之归结为职业素养,宁愿晚一点下班,也要把代码写的好一些,这是职业程序员应该遵守的“道德”规范。
相关推荐
看大师如何重构代码(java程序员必看)
设计模式,代码重构设计模式,代码重构设计模式,代码重构设计模式,代码重构设计模式,代码重构
看大师如何重构代码(java程序员必看)
木书是·木重构指南( guide to refacaoring ),为专业程序员而写。我的目的是告诉你如何以一种可控制且高效率的方式进行重构。你将学会这样的重构方式:不引入臭虫〔错误);并且有条不紊地改进程序结构、 按照传统,...
重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt重构ppt
重构真的那么美好吗?强弱类型语言到底哪个更好?敏捷真的靠谱吗?程序员要不要懂数学等。另外,他还谈到了很多大公司的理念,比如亚马逊做平台为什么那么成功等。最后,《程序员的呐喊》还收录了他写的Google面试...
JAVA 代码重构 JAVA 代码重构 JAVA 代码重构 JAVA 代码重构 JAVA 代码重构
重构重构重构重构重构重构重构重构重构重构
r重构r重构r重构r重构r重构r重构r重构r重构r重构
对经验模态分解后的各分量IMF进行重构代码,函数可直接调用。
多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围...
资源名:用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构 资源类型:matlab项目全套源码 源码介绍:用于信号的分解、降噪和重构,实现故障诊断 源码说明: 全部项目源码都是经过...
项目重构方案模板、项目重构方案模板ppt,项目重构方案计划模板
重构——改善既有代码设计,经典文档,架构师必须教程
经典软件重构 经典软件重构 经典软件重构 经典软件重构 经典软件重构
三维重构 可以检测有效的系统缺陷,进行缺陷的定位,缺陷体积的测量等,如何进行三维重构(3D reconstuction)的输入是各种三维以下的数据,比如纯二维的RGB图像(序列)、带有深度信息的RGBD数据等,出来的是三维...
多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围...
《重构 改善既有代码的设计》清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70 多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机...