合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
# (五):重构有助于性能优化么? 项目从初次开发到现在,已经快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 *,会少查询一些字段。 **见仁见智** 重构是否有助于性能优化,是一个见仁见智的问题。 根据我有限的重构和优化经验,我只能说,“重构有助于优化性能,但作用有限”。 打个比喻,当你学画画,想要画一个苹果的时候,“把苹果洗干净”是否有助于你画出一个逼真的苹果呢? “把苹果洗干净”就是代码重构的过程。 “画出一个逼真的苹果”就是性能优化的过程。 你是怎么看待这个问题的呢?愿闻其详...