最近,在项目组里进行了大量的重构,也相互讲解了重构的部分技巧,对于项目处在拐
点,重构还是非常必要的。再好的理论和技巧,如果不能与实际的工作结合起来,就是没有意
义的重构。
对于项目遇到的问题,有点浅陋的认识。现在项目已经升级新的大版本,正处在项目的
拐点处,以后代码还会随着需求的增加而增加,整个项目的代码维护起来有点吃力。吃力的原
因在哪里呢?
第一,项目是由多个开发人员开发的,每个人代码编写的质量不同。现在,每个子系
统都是由一个开发人员负责维护。
第二,需求并不是一成不变的,只要有新增的需求,代码就会往上累加。
第三,代码的结构层次不太清晰,程序逻辑有点混乱。
第四,代码中存在一些多余或者重复的代码,导致代码量太大。
第五,代码的注释,体现不出程序的逻辑性。
第六,代码的性能,还有优化的空间。
项目出现这个情况,是该重构的时候。如果不重构,整个项目代码会非常的硬肿。
在不改变现有软件功能的前提下,把代码重新组织结构。
我们考虑从三个方面,去进行重构:
(1)页面代码的重构
(2)后台代码的重构
(3)SQL语句的重构和优化
在重构的过程中,利用了马丁福勒的部分技巧进行了重构,部分功能模块的代码量缩小
了一半。除了代码量缩小外,程序的结构层次更清晰,可读性也提高了不少。
代码的重构,是一个注重细节的过程。把每个小功能模块,都仔细的优化到位,总体的
功能模块质量显而易见会有大的提高。代码质量提高了,后面的开发人员进行代码的扩展时,
理解整个业务都会比较快,开发的效率也会有大的提高。
在重构时,我们往往把旧代码备份一下,避免新旧代码混杂在一起。为什么这样呢?记
得在一次项目重构中,由于旧的代码没有及时清除,导致代码没有及时更新同步,从而带来一
些额外的问题。
对于一个开放人员来说,把重构做精做细,会加深对整个业务的理解和编码水平的提高。
什么是好的编码?我的理解是编写的代码逻辑清晰,注释能体现出逻辑性,别的开放人
员接手代码,能很快的理解和容易的维护代码。编码的水平高低,不是体现在技术是多么高
深,而是在细节方面,做得到位就OK。
做一个优秀的程序员,也不是很难,只要利用现有技术,把软件做精做细,就达到要求了。
分享到:
相关推荐
- **耦合度高**:业务逻辑和日志记录逻辑紧密耦合,不利于代码的扩展和重构。 **解决方案:** - **引入代理模式**:使用 Java 动态代理技术来创建一个代理对象,该对象能够在调用目标方法前后执行额外的操作(如...
【标题】"基于PHP的仿1号店整站源码 for ECSHOP"指的是一个开源的电子商务系统,它是对知名电商平台“1号店”的模仿,采用PHP编程语言开发,并基于ECSHOP这个流行的电商框架。ECSHOP是一款功能强大、易用的网上商店...
CVS中的“签出”操作是指获取工作备份的过程,这是版本控制系统中的一个重要概念。 ### 17. 设计方案关联的界面 在软件开发过程中,与设计方案关联最紧密的是编程界面,它直接关系到代码的编写和实现。 ### 18. ...
数据结构课程设计报告的核心主题是"链表的维护与文件形式的保存...通过这个课程设计,学生能够深入理解链表操作、文件I/O以及数据结构在实际问题中的应用,同时也对字符串比较、循环控制和文件处理有了更深入的认识。
在探讨历史记录的重要性时,我们不得不面对一个不可否认的事实:文字是记录历史的最主要方式,但...通过对物品的深入研究和解读,我们可以更加公正和完整地重构历史,这不仅是一种科学的探索,更是一种诗意的重构过程。
随着网络数据的爆炸性增长,网络管理和安全防护的传统方法已难以满足现代网络的需求,人工智能技术的引入为这一领域带来了新的解决方案和可能。本文将深入探讨人工智能在计算机网络技术中的应用及其重要性,并提出...
1. **压缩感知理论**:压缩感知是信号处理的一个分支,其核心思想是通过较少的采样就能重构高维度信号。传统成像技术需要大量采样点来捕捉图像信息,而压缩感知只需少量非随机采样就能恢复原始信号,这大大降低了...
PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域中占有重要地位。这个压缩包包含了一个全新的哆咪付...通过对源码的阅读、调试和重构,开发者可以提升自己的PHP技能,并对金融类Web应用的开发有更全面的认识。
通过上述内容的介绍,我们对“DevOps on the Microsoft Stack”这一主题有了全面而深入的认识。无论是在理论还是实践层面,DevOps都已经成为了软件开发和运维领域不可或缺的一部分,而微软的技术堆栈则为DevOps的...
【代码之美】这一主题深入探讨了编程中的美学与效率,旨在揭示高质量代码的内在魅力和力量。代码之美并不仅仅体现在视觉上的整洁,更在于逻辑的清晰、可读性、可维护性和性能优化等方面。它是软件工程实践中的一种...
通过这类培训,师生能够对隐性知识有一个全新的认识,并学会如何在实践中捕捉、运用这些难以言传的知识。 为了更好地管理和运用隐性知识,文章建议在高职护理教育中采用情景化教学策略。这种策略主要依靠深度会谈,...
1. 技术应用与实践:实习期间,我了解到理论知识与实际工作之间的差距。在课堂上,我们学习了各种编程语言、数据结构和算法,但真正运用到项目中时,需要根据需求进行灵活调整。例如,我参与了一个软件开发项目,...
通过总结,设计者可以对整个系统有一个全面的认识,同时也能为未来可能进行的系统升级或重构提供宝贵的经验和教训。 综上所述,本文档对电子商务系统的分析和设计进行了系统的描述,从前期的系统分析到后期的系统...
1. **Struts2**:Struts2是一个强大的MVC(Model-View-Controller)框架,用于构建基于Java EE的Web应用程序。它提供了动作类、拦截器和结果类型等机制,帮助开发者管理请求和响应流程。在这个项目中,Struts2可能被...
除了英国方面的文字记载之外,如果想要更全面地理解这一事件,我们必须将目光投向土著人留下的木制盾牌等物品。通过对这些物品的研究,我们可以洞察到文字记录以外的信息,例如当时的土著文化、社会结构以及他们的...
综上所述,西藏林芝市一中所提供的这份高二语文期中试题,不仅是一次对学生语文知识的检验,更是一次思维能力的综合演练。它不仅让学生认识到文字和物品在历史记录中的双重重要性,而且启发学生学会在无言的文物中...
选择A(认识与描述客观系统)是这个阶段最希望得到的协助,因为清晰准确的需求定义是软件项目成功的基础。 2. 软件开发工具的种类:包括分析工具、计划工具、设计工具和软件工作环境。选择C(设计工具)作为数量...
《Pro Apache Hadoop, 2nd Edition》是一本专门介绍Apache Hadoop第二版的专业书籍。Hadoop是一个开源框架,旨在从大型数据集中...通过深入理解Hadoop的工作原理和设计决策,读者还将获得对Java语言新的认识和洞察。
" 这通常表示在尝试运行一个使用ASP.NET Core的IIS应用时,系统无法找到或正确加载aspnetcore.dll这个关键组件。 1. **ASP.NET Core 概述** ASP.NET Core是ASP.NET的下一代版本,它将ASP.NET 4.x和ASP.NET 5进行了...