1.1.2 良好的架构设计有助于避免bug的产生

架构设计也是经验的总结。一般来说,一个成功的商业化游戏服务器项目,它的架构都是由从事游戏服务器开发多年、经验丰富的人设计开发的。通过经验的总结,把容易出错的公共部分使用架构来规避,并且通过严密的测试,最终实现消除隐患。

比如涉及网络通信的问题,有的开发人员在设计的时候,只考虑接收客户端的消息,并且实现正常返回消息即可,而没有考虑到多线程处理消息,导致数据不一致,出现一些莫名其妙的问题。特别是以Web服务作为服务器的时候,因为Web服务底层接收的消息会被放到一个固定大小的线程池中,所以每个HTTP请求在Controller中处理的时候,都可能在不同的线程里面。如果出现并发请求,就有可能导致数据错误。

在架构设计中可以提交预知并解决这个问题。比如给同一个用户请求的消息加锁或者把请求消息分配到固定的消息队列中,由另外的线程按顺序取出消息并处理。这样在处理业务的时候,就不需要担心请求并发问题了,防止开发业务时考虑不周而产生bug。