这篇就随便聊聊年初重构,或者说是重新写的一个系统模块吧,当时没想到后面因为增加了好些类似的功能导致避免了大量的重复代码以及测试的工作量等。
游戏中,有好些基础代码,在此之上可以构建一系列模块,比如副本组件,通过继承它派生出其他副本组件。然而在目前的代码中,有一个副本基础代码,策划来一个新的副本玩法需求就要重新基于副本组件写一个另外一个副本,而大部分代码都是一样的,按照现在的副本系统,有十五个基础副本玩法,那需要写十五个,想想都可怕。不同之处是存储的字段和入口以及重复的检查逻辑。这部分可以提炼出来。
我给自己提了个功能单,重构副本代码,依据共同点分成了几类,每一类的检查条件不同,且开始,进入,完成的操作数据也不同,所以建立了一个新的表,里面是类型,检查函数等,注册上去。然后客户端请求时带上副本名字和其他参数,我这边可以根据这些去处理,这样就一个基础代码,省下了很多时间。后面增加了其他好几个需求,只在几个接口处加上判断和检查就行了。如果按照原来的做法,要改很多代码而去数据存储比较散不集中。
当时写这个并没有足够考虑将来的扩展,因为考虑越多设计就会越复杂,引入的bug就多,先简单设计,在一些地方写的通用写,保留改动的时候尽量缩小范围,尽量解耦。因为需求会随时变,如果改动一点而引起大范围改动,那就会比较麻烦,又要重新测试。
这周末加了两天班,有点忙,没有时间学习其他的。
网友评论