最近,在项目组里进行了大量的重构,也相互讲解了重构的部分技巧,对于项目处在拐
点,重构还是非常必要的。再好的理论和技巧,如果不能与实际的工作结合起来,就是没有意
义的重构。
对于项目遇到的问题,有点浅陋的认识。现在项目已经升级新的大版本,正处在项目的
拐点处,以后代码还会随着需求的增加而增加,整个项目的代码维护起来有点吃力。吃力的原
因在哪里呢?
第一,项目是由多个开发人员开发的,每个人代码编写的质量不同。现在,每个子系
统都是由一个开发人员负责维护。
第二,需求并不是一成不变的,只要有新增的需求,代码就会往上累加。
第三,代码的结构层次不太清晰,程序逻辑有点混乱。
第四,代码中存在一些多余或者重复的代码,导致代码量太大。
第五,代码的注释,体现不出程序的逻辑性。
第六,代码的性能,还有优化的空间。
项目出现这个情况,是该重构的时候。如果不重构,整个项目代码会非常的硬肿。
在不改变现有软件功能的前提下,把代码重新组织结构。
我们考虑从三个方面,去进行重构:
(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进行了...
通过学习和实践这个项目,你可以深入理解SSM框架的使用,提升Java Web开发技能,并对构建大型网站有更直观的认识。同时,对于毕业设计而言,这样的项目既具有实际应用场景,又能够锻炼综合运用所学知识的能力。
3. **日志与报告**:利用Sybase提供的日志功能记录系统运行情况,定期生成性能报告,以便于追踪历史数据和趋势变化。 #### 五、性能调优策略 1. **SQL查询优化**: - 使用EXPLAIN命令查看查询执行计划,确保选择...
"北京金山WPS软件工程师面试题及答案"这个标题表明这是一个与面试相关的资料,主要针对的是北京金山公司的WPS软件工程师职位。金山WPS是知名的办公软件套件,包括文字处理、表格制作和演示文稿等功能,其二次开发则...
《项目管理器源码分析》 ...通过对源码的逐行阅读、理解和重构,我们可以提高自己的编程技能,同时对项目管理的复杂性有更深刻的认识。无论是为了个人学习还是团队协作,这样的实践都是非常有价值的。
1. **对于一个存在系统性能的系统,说出你的诊断处理思路** - **性能诊断**:使用 AWR 报告分析 CPU 和 I/O 使用情况。 - **问题定位**:通过 V$ 系统视图来追踪资源消耗大的 SQL 语句。 - **优化方案**:针对...
本文针对网络数据爬取技术,以Python语言及其第三方库为核心技术进行了深入研究,并展示了利用这些技术实现对网络数据的高效爬取、解析和重构的过程。 首先,本文阐述了Python语言在数据爬取中的优势和应用。Python...