项目从初次开发到现在,已经快3年了。期间,有N个工程师参与过。
需求方面:增加减少,反反复复,无数次;人力方面:增加减少,不稳定;时间方面:功能开发着急上线,Bug开发紧急修复。
因此,代码臃肿,问题颇多。
自从毕业加入到项目,深感代码质量问题对项目开发效率的影响,因此经常会对项目进行“重构”和“优化”。
主要经历了2次大的重构和无数次小的改进。
今天,特别整理下,希望今后可以做得更好。
重构事项
1.统一标准。
包、类、方法、字段等命名按照Java标准规范那样,统一命名。
2.重新组织代码。
a.将项目代码,按照业务逻辑等原则,重新组织到不同的包中。
b. 按照一定的原则,调整类中的方法。
比如对于数据访问层Dao的方法,严格按照查询、增加、修改、删除这样的顺序组织。
而且,使用和修改频率高的代码,放在靠前的位置。
3.增加必要的注释。
对于那些业务比较复杂,容易混淆的代码,加上清晰简洁的注释。
4.删除无用的代码。
将废弃的功能代码,无用的注释,先用@Deprecated标记,过段时间,然后彻底删除。
5.提高代码复用。
Dao层:编写一个实现了常用CRUD功能的BaseDao。
工具层:对常用的工具代码,进行整理,统一到工具库中。
6.清理数据库。
a.将数据库中没有用到的表、字段全部删除。
b.优化表的数据类型。比如将longtext的字段,修改为varchar(20)。
c.规范化表和字段的命名。比如用户表用User,用户地址用userAddress表示。
同时,Java代码和实体配置文件,尽可能与数据库表相统一。
参考建议
更多重构和优化事项,不再赘述。
有兴趣的同学,可以看看《代码大全》、《重构》、《编写可读代码的艺术》这3本书。
重构有助于性能优化么
我只能说,有一定的帮助。
a.重复代码比较少,注释清晰,命名合理的代码,看起来“赏心悦目”。
本质上,不太可能提高系统性能,但是算得上是性能优化的准备工作。
项目重构后,开发更有效率,Bug更少,这样才可能有更多的时间去做性能优化。
b.去掉数据库表中无用的字段,这还是有点作用的。
至少,在SQL查询的时候,比如select *,会少查询一些字段。
见仁见智
重构是否有助于性能优化,是一个见仁见智的问题。
根据我有限的重构和优化经验,我只能说,“重构有助于优化性能,但作用有限”。
打个比喻,当你学画画,想要画一个苹果的时候,“把苹果洗干净”是否有助于你画出一个逼真的苹果呢?
“把苹果洗干净”就是代码重构的过程。
“画出一个逼真的苹果”就是性能优化的过程。
你是怎么看待这个问题的呢?愿闻其详...
相关阅读
一个Web报表项目的性能分析和优化实践
原文参见:http://FansUnion.cn/articles/3109 (小雷网-FansUnion.cn)
分享到:
相关推荐
这是专门讲解 前端重构实践(一):性能优化
1. 重构的目的:为什么重构(why) 2. 重构的对象:重构什么(what) 3. 重构的时机:什么时候重构(when) 4. 重构的方法:如何重构(how)
人民邮电(图灵)-CSS重构:样式表性能调优.201711.epub 人民邮电(图灵)-CSS重构:样式表性能调优
vue3Vue 3是Vue.js框架的下一代版本,它在Vue 2的基础上进行了重构和优化,带来了全新的性能和效率。Vue 3的核心功能包括响应式系统、Composition API、Tree Shaking和组件设计。这些功能使得Vue 3成为了一个更加...
10基于Web的可重构制造资源优化配置平台研究10基于Web的可重构制造资源优化配置平台研究
本文在可重构平台上针对128位密钥长度AES算法的流水线性能优化技术进行了研究,通过对基本运算优化、循环展开、轮内流水线、轮间流水线、混合多级流水线结构优化等方法的讨论和实现,对比不同优化方法的优缺点及适用...
本人看过了,所以上传上来希望对大家有帮助
CSS重构:样式表性能调优 CSS重构:样式表性能调优 CSS重构:样式表性能调优
BH银行个人贷款业务项目流程优化与重构.pptx
资源名称:CSS重构:样式表性能调优内容简介:CSS对于现代网站的用户体验至关重要,其地位不亚于决定着网站外形的HTML和让网站动起来的Javascript。本书作为CSS代码重构指南,不仅展示了如何编写结构合理的CSS...
你曾去想重构一个很老的模块,但是你只看了一眼你就恶心极了。文档,奇怪的函数和类的命名,等等,整个模块就像一个带着脚镣的衣衫褴褛的人,虽然能走,但是其已经让人感到很不舒服。面对这种情况,真正的程序员会是...
《重构:改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式, 并给出了何时以及何地应该开始挖掘代码以求改善。 书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换...
而有了重构,使用单元测试、共享代码以及更可靠的无BUG的代码这些最佳实践就显得简单多了。 《31天重构速成》该系列文章通过31个示例介绍了31个重构条目。其中大多数重构都可以在Refactoring.com中找到,有一些...
项目重构方案模板、项目重构方案模板ppt,项目重构方案计划模板
该项目探讨了使用指向信息作为重构逻辑基础的可能性。 主要项目: jsparser:具有有用ASTJavaScript解析器 jscontrolflow:JavaScript的控制流图 jspointers:JavaScript的指针分析 jsrefactoring:重构逻辑 辅助...
web标准与网站重构,web标准与网站重构web标准与网站重构web标准与网站重构web标准与网站重构
农村电商3.0:重构一个鲜活的新乡村.pdf
本书从一个新的角度审视模式,提出了反模式的概念,介绍了在软件开发中常常出现的问题——将设计模式错误应用于不适当的上下文环境。首先,定义了软件开发参考模型和文档模板来说明这些反模式。然后,从开发人员角度...
《重构:改善既有代码的设计》(中文版)的核心是一份完整的重构名录(catalog of refactoring),其中每一项都介绍一种经过实证的代码变换手法(code transformation)的动机和技术。某些项目如Extract Method和Move ...