项目从初次开发到现在,已经快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. fir.im Weekly - 技术人也要苦练“七十二变”
  2. jsp_Scriptlet
  3. proxmox3.2安装FreeBSD或者FreeNAS注意事项
  4. c#集合类的线程安全
  5. python基础===Python性能优化的20条建议
  6. 如何搭建apache服务?
  7. SQL性能优化应该考虑哪些?
  8. laravel 定义翻译字符串
  9. Linux后台命令的使用说明
  10. spring深入学习(四)-----spring aop
  11. 上古神器之Vim编辑器
  12. Python量化库大全
  13. MySQL面试之说明myisam和innodb两种存储引擎的不同之处
  14. 《Android开发艺术探索》图书勘误
  15. MySQL日期时间处理函数
  16. java开发_数字转换汉语中人民币的大写_完整版
  17. Marvell w8782 sdio wifi AP模式设置
  18. 第十二章:Linux中权限控制实例
  19. windows中的进程和线程
  20. Oracle在linux中相关设置操作

热门文章

  1. ASIHTTPRequest 框架的导入
  2. Android jni 二维数组 传递
  3. 搭建Hadoop的全分布模式
  4. HBase框架基础(三)
  5. spring的quartz定时任务
  6. java 8 , merge()
  7. ipad mini2 升级9.0.2后解锁白屏解决
  8. SSD-tensorflow-2 制作自己的数据集
  9. vue的webpack打包
  10. perl JSON模块使用