最近在重构项目里面的一个小功能。
最初的预期是两周时间,到目前为止,已经做了一个月了。虽然说期间也有其他更高优先级的事情打扰,没有全力的投入到重构大业,但是重构的进度和影响的范围也让我震惊了。(几个月前,做这个功能只用了两天的时间……)
目前在重构过程中发现的问题:
1、原来的代码的层级不清晰,会造成一些接口的滥用。而这些滥用的部分。在重构的过程中,必然会被清理出去。然后,就会惊奇的发现,原来现有接口按照规范是无法满足这个业务需求的,需要重新设计或者修改部分接口。
2、项目中的僵尸代码。早就没有人调用这些接口了。但是不知什么原因,这些代码被留了下来。这些代码的清理也是一个不小的工作。
3、不符合规范的接口。这个没得说,只要项目的生命周期变长,肯定会或多或少的存在不符合当前规范的接口。修改这些接口,以及相关app接口调用也是一个不小的时间。
4、重构时引入的新问题。想要尽量保持界面的原有样式,尽可能减少对用户的冲击。这就给重构的时候带来了很大的限制。为了保持样式不变,不得不多写很多无聊的逻辑和限制。
重构时关注的问题:
1、规范性。重构后的代码必须符合当前的规范。
2、文档的充分性。为自己积德吧……
3、考虑未来项目的发展。我这里主要是在js的层面开放了和数据相关的接口,提供了一个简单的模版。小的变化基本修改html和js就能完成了。
4、考虑未来因为项目压力引入的黑魔法。有些时候项目要求xx时间之前上线,这时硬编码就算黑魔法里面最简单的部分了。我在代码里面提高了指定的位置用来写脏代码。就一个地方脏,总比到处都脏,跟捉迷藏一样要容易处理。提供的方式是给数据加了一个filter,目前filter是空的,未来就往这里写脏代码。
综上,我真的为我自己提出这次重构而深深的自责……
PS:希望各位也说说关于重构的经验,诸如如何预估重构所需要花费的时间,限制自己在重构的时候看到不爽的地方就想改的冲动等。
最初的预期是两周时间,到目前为止,已经做了一个月了。虽然说期间也有其他更高优先级的事情打扰,没有全力的投入到重构大业,但是重构的进度和影响的范围也让我震惊了。(几个月前,做这个功能只用了两天的时间……)
目前在重构过程中发现的问题:
1、原来的代码的层级不清晰,会造成一些接口的滥用。而这些滥用的部分。在重构的过程中,必然会被清理出去。然后,就会惊奇的发现,原来现有接口按照规范是无法满足这个业务需求的,需要重新设计或者修改部分接口。
2、项目中的僵尸代码。早就没有人调用这些接口了。但是不知什么原因,这些代码被留了下来。这些代码的清理也是一个不小的工作。
3、不符合规范的接口。这个没得说,只要项目的生命周期变长,肯定会或多或少的存在不符合当前规范的接口。修改这些接口,以及相关app接口调用也是一个不小的时间。
4、重构时引入的新问题。想要尽量保持界面的原有样式,尽可能减少对用户的冲击。这就给重构的时候带来了很大的限制。为了保持样式不变,不得不多写很多无聊的逻辑和限制。
重构时关注的问题:
1、规范性。重构后的代码必须符合当前的规范。
2、文档的充分性。为自己积德吧……
3、考虑未来项目的发展。我这里主要是在js的层面开放了和数据相关的接口,提供了一个简单的模版。小的变化基本修改html和js就能完成了。
4、考虑未来因为项目压力引入的黑魔法。有些时候项目要求xx时间之前上线,这时硬编码就算黑魔法里面最简单的部分了。我在代码里面提高了指定的位置用来写脏代码。就一个地方脏,总比到处都脏,跟捉迷藏一样要容易处理。提供的方式是给数据加了一个filter,目前filter是空的,未来就往这里写脏代码。
综上,我真的为我自己提出这次重构而深深的自责……
PS:希望各位也说说关于重构的经验,诸如如何预估重构所需要花费的时间,限制自己在重构的时候看到不爽的地方就想改的冲动等。