什么是重构?我们在开发中通常所说的重构,通常指的是技术重构。简单来说,就是基于项目在代码层面进行重构。老房子被推倒重建。一定要有钱,才能让自己舒服。程序代码被拆除并重写。倒不是因为这些年代码质量不断迭代,祖传代码越来越难维护,更不是说在此基础上老树开花,开发一些新功能。(代码太烂,留下的坑太多,是程序的扩展和维护不好)那么问题来了,你的项目需要重构吗?考虑到项目重构带来的人力、时间、项目风险等因素,在商业项目中,是一个高风险、低收益、劳动密集型的项目。不是一件很讨人喜欢的事情。而且,推翻之前的项目并重做不一定会导致比以前更好的代码。那为什么我们需要重构呢?或许我们可以从业务和团队分析的角度得到一些答案。从商业角度来说,商业已经转型,基于原有商业的制度自然会成为前朝的遗风。招人已经不是稀罕事了。别说重构了,弃之不用。业务量的变化。原来的技术架构对于100人以下的团队来说可能没有明显的性能瓶颈。但随着业务量的增加,对产品性能、扩展性、稳定性的要求越来越高,这将推动当前从产品迭代和重构需求团队的角度,分析当前技术方案存在的问题:目前方案是否影响团队开发效率,项目技术方案是否比较陈旧难维护,是否存在族结构和依赖包太老的问题。如果你的项目依赖的文件已经不再被别人官方维护,而且官方文档也给出了相关的替代方案,那么你的项目确实应该升级迭代,甚至重构新的技术栈。当前项目代码本身的问题:代码是否按照团队规范和标准进行开发,代码是否具有良好的扩展性、健壮性和可维护性。项目代码迭代了很久,轮换了很多人。没有规范的标准,代码会越来越难维护。一个文件往往有几千、八百行代码,没有驼峰,命名语义清晰,代码注释。分分钟强迫症,这种代码,加一个新的功能,还要把之前的代码翻来覆去,即使改了也可能会报其他奇怪的问题,因为之前的项目代码不健壮足够的。前端开发在项目重构中能做什么?无用的第三方库不碍眼吗?删除它们。有些第三方库只用过一两次,自写函数的成本不是很高。为什么保留它们并删除它们?变量|无用的导入文件删除不用的逻辑,精简拆分一般逻辑拆分大文件,动辄上千行的代码文件,不拆分,后期只会越来越多,后期维护成本会越来越高,重构的成本也越来越高。减少全局样式,使用cssmodules进行样式隔离,避免绞尽脑汁命名,避免与某个组件库样式冲突代码结构重构,优化项目目录结构,项目迭代后会出现大量重复文件和目录结构。应该从项目的整体角度考虑,合理划分目录结构。必须添加代码命名、模块提取和合理的注释。有些没用,当时测试用的console,debugger看到了就删掉,做一些必要的依赖升级。项目依赖包正在升级中。为了项目的长期稳定使用依赖包的一些能力,在重构必要的依赖包升级时需要注意哪些问题?首先,要非常认真的问问自己,问问相关的团队成员,这个项目真的需要重构吗?软件迭代是必要的,但重构真的没必要,必须打破,重新开始,不一定比以前更好。重构的时候,需要对重构的项目有必要的了解,知道这个功能的初衷,才能做到确保重构后的版本不会产生其他不良影响。建议在重构的过程中,多看看之前的逻辑实现,多问当时涉及的人,相关的产品经理,开发,甚至测试,找出注释掉的代码是不是没用。如果真的没用,就扔掉,否则,Onesizefitsall,很有可能为了后面重构的目的而不得不补上。你需要清楚你是在重构一个组件、一个模块,还是整个系统。重建整个系统对任何公司来说都是一件谨慎的事情。更好的做法是逐步将系统重构为相互独立的小块,一点一点迭代,可以作为日常迭代也可以作为专项迭代,具体看业务需求架构的选择,不一定是什么什么是新的,什么是流行的,什么是用什么,你要考虑团队或个人的学习成本。也许这个新技术真的很好,但是现有团队的业务开发任务很重。没有必要踏上天空,折磨自己,折磨别人。最好明确一点,重构的目的是让项目不像旧代码那样臃肿难维护,所以设置一些规范的引用规则是很有必要的,至少要保证长久时间,貌似是我个人在正经项目重构过程中的一些习惯(仅供参考)首先,我将现有的项目代码进行梳理,对比项目页面,对旧项目加一点注释标记,创建项目结构+功能脑图,项目干需要一些东西哪些功能一目了然,后期开发,参考一下,安排进度,预估开发进度,个人觉得标记问题还是蛮有用的,老项目缺少注释,文件结构经常混乱。多问问题是个好习惯。提前记录风险点,可用于评估本次项目重构的结果是否积极参考通用规范,梳理开发标准,如css和js的变量命名,模块抽取等。对于子标准,必须有一个统一的基础技术栈,可以作为开发标准。一个项目中js和ts混用未必好。鉴于目前前端的发展趋势,大方向上使用ts会是未来几年。大势也避免了js弱类型带来的一些负面影响。样式管理,我这里使用less+css模块,这样命名比较清晰,不会造成样式文件相互影响。最后总结一下,鞋子合不合脚,只有脚自己知道,总不能给自己穿小鞋吧?项目重构是不可避免的,但不是必须的。没必要为了炫耀或者OKR做吃力不讨好的事情。
