郁闷!
花了我四天,重写整个游戏服务器(安慰一下自己的郁闷,看起来很强

)。
代码开始是一个同事写的,写到一半,转交了给我。当时觉得好多接口和我的习惯太不一样(不评论好坏),也不能重写啊,毕竟他努力的结果,贸然重写,一不小心什么地方没注意,搞坏了,还反而不好。
没想到,这次的新功能,我估计了两天时间,结果发现,根本就不可能。原有接口完全无法支持。没办法,全部重写了(害怕,强行添加,只会更麻烦,以后会问题多多)。
自己的痛,做个反面的例子提供给大家。以后,也可以引起注意。
第一:设计底层接口时,一定要尽量考虑通用性;
专门为某一具体问题设计的特定接口,当后期需要加入新的功能或支持时,就不可避免的无法适应了。所以,同时也提提优化,优化应该是保证正确性和可扩充性后才做的事。
第二:设计结构时,一定要自身功能完备,考虑可扩充和可维护;
如果确实无法抽象出公共层,那么就不应该增加这个中间层。要不,又是特殊化了,本来就不是抽象。一定要避免。顺便,功能完备指自身能成为一个整体,做到这个整体功能集是完整的(想了好半天,也不知道怎么表述,自己不是做软件工程的^_^)。
第三:模块结构一定要独立;
要不,是想出错了,搞死人?鬼知道哪里出的错,满世界找。
第四:负责人最好一直负责,要么很强;
由于思想背景、习惯、方法、方式的不同,接手者很难保证原负责人的目的和思想的完备。这样两个人的思维混杂,很容易导致各种问题和遗留。
或者,原设计者很强,确实能够做到自身的结构或接口的功能完毕、全面、独立,易扩充、维护。
好了,如果你那里有架构师,或许就没问题了。出了问题,他吃白饭的啊!^_^
郁闷之中,言词难免有些犀利!见谅见谅了!