大家好,我是阿赵。
4年前,我小孩要读小学了,于是我就在小学旁边买了一套二手房子,方便小孩上学。由于当时是疫情期间,小区的进入都是受到严格管控的,装修成为了一个大麻烦,因为装修师傅想要进入小区都要有各种限制。原来房子的房间铺了木地板,由于没有保养好已经有轻微撬起爆开的情况了,但为了省事,我没有在整体装修的时候把地板铲掉重新铺地砖,而是简单的在上面铺了一层薄的简易地板。然而住了4年之后,那层地板又开始烂了。于是我不得不又请装修师傅帮我重新铺地砖。但由于我已经入住几年了,房间里面东西很多,要重新施工就变得困难重重。所以我一直在后悔,如果当初刚买房子的时候,把这些事情全部搞好,就事半功倍了。
我们在做游戏项目的时候,也经常遇到类似的情况。由于游戏公司的项目很多都是从以前的旧项目框架甚至内容上面迭代上来的,所以项目里面会存在很多旧的代码和功能。这些功能说不定会存在一些莫名其妙的问题,但由于暂时还不影响使用,我们会懒得去推翻重新写,而是能用就用。直到某一天,项目做到了大半的时候,甚至上线了之后,才发现某些旧代码的隐患已经爆发出来,到了不可调和的程度。于是,那时候就被逼着一定要改。但由于很多逻辑已经建立于这些旧代码的基础上,甚至上线了的项目如果修改,可能会影响到线上的玩家。所以在这个时候修改,难度实际上是比项目刚开始做的时候就修改是难很多的。
很多项目都有黑代码,大家都是心知肚明的,但却一直不改,因为不改的原因也是多种多样。比如,从老板的角度出发,项目组新项目为了快速成型,同样或者类似的框架和功能,完全是可以从旧项目里面照搬的。新写一个框架,可能需要1个月,但老板是不会给你一个月时间,而是只计算从旧项目搬过来需要1天时间。在这种情况下,作为技术人员,只能硬着头皮直接使用旧代码了。
这种情况普遍存在,作为老板这样的时间计算是合理的。因为他的目的是做一款赚钱的产品,目的是快速的回本并有收益。既然之前的项目代码能用,肯定不可能花时间去做新的。作为技术人员,既然老板只给了这个时间,那么也只能有什么用什么了,很多问题来不及细想,反正只要代码能用,管他原理是什么,都无所谓了。反正到了出问题的时候,再来考虑解决吧,毕竟到了出问题的时候,老板想不给时间解决都不行了。
出现了这种矛盾情况,一般都是一个项目组或者工作室已经经营了一段不短的时间之后的事情了。当然中途很多机会可以扭转,比如游戏公司的团队成员很多都并不固定,几年之后,可能除了老板以外,整个团队都换人了。新的人会带着新的框架和技术进来,在自然迭代的过程中,旧代码就慢慢被淘汰掉了。或者到了一些游戏类型的转型阶段,旧的代码已经不再适用于新类型项目,也会有重新构建的机会。
作为项目的技术负责人,我个人认为,在整个项目周期中,如果能找到稍微空闲的时间,是应该去回顾和检查一下原有的项目代码,把一些明显的问题找出来,或者把一些不清楚原理的旧代码找出来分析。这样就算不能在当前项目立刻修正,也应该记录下来,等下一次有新项目开展的时候,优先的把问题解决掉。我自己这十年来一直都作为游戏前端技术的负责人,实际上包括前端的底层框架和战斗框架,都写过很多套了,毕竟每一年的手机硬件性能变化不小,流行的游戏类型也不同,如果一套框架吃到底,很多时候是会遇到问题的。
由于家里在装修铺地砖,所以我的书房已经被搬空了,电脑也不能用。所以最近这两周都不太能继续写详细的技术内容分享文章了,只能拿着Ipad来写一下这些纯文字的小讨论文章了。希望装修能快点结束吧,那样我就能拥有一个更好的学习和写作的环境。
关于项目迭代的小讨论
![](https://img-home.csdnimg.cn/images/20240711042549.png)