对于已经上线的网游服务器,更改代码时要把安全性放在第一位,避免引入错误。
添加某个功能或修正某一个错误时,应该将变更的范围尽量控制在最小范围。
尽量不要造成对其他现有功能的影响。
例如,实现某个功能有2种设计方案。
一是调整现有的架构,使新功能能够轻易地添加。
另一种是在现在的架构下,进行特殊化处理来实现新的功能。
第1种方案是正确的设计,改进了原有的架构,不仅新功能添加方便,
同时还增强了系统的灵活性。
但是对于已上线的网游,一般会选择第2种方案。
这种方法就像是贴膏药,哪里需要就贴哪里。
长此以往,代码会像贴了无数层膏药的人,臃肿不堪,难以行动。
优点仅仅是这种方法是最安全的。
对架构调整之后,意味着变更了大量功能,影响太大,几乎需要重新测试所有功能。
无法保证是否会意外地破坏原来的功能。
如果有单元测试,代码变更的胆子可以大些。
最好是有自动的回归测试。无论任何更改,所有功能都会自动重新测试。
但是网游的自动测试很困难。有哪一款网游能够享受自动回归测试呢?
贴膏药是合理的。为避免上线后贴膏药太多,就要在上线前做更灵活的设计。
最佳的情况是,上线后只需更改脚本,无需更改代码。
(金庆的专栏)