对于比较大型的软件项目,如何设计其架构是有一些经验可以学习的。而这里所说的“架构”,其实包含了很多个层面,最需要关注的有两个:
对于“逻辑架构”,有一本经典的书对齐有详细的介绍:《面向模式的软件架构》(POSA),这本书后面好像也有了好几版,加入了一些新的面对互联网和 AI 系统的架构模式总结
关于“逻辑架构”的架构模式,是一种比面向对象的“设计模式”更加高层次的一种抽象经验,所以需要有比较多的面向对象开发经验才能深入理解。为了结合游戏行业的特征进行说明,以前我写过一系列文字:
分层模式是最重要的模式思想,可以说是“模式的模式”,一切后续的架构模式,都基于这个模式的思想。 微核模式在大型可扩展系统中应用很广,最著名的就是 Windows 操作系统,QQ、微信等“超级 APP”也有参考这种思想。 管道与过滤器模式用于各种常见的以处理数据流为核心的系统,譬如编译器、Linux Shell、Web 服务器等,我也见过有用这个模式做游戏的,还是比较方便和经典的“主循环”结构结合 REST 模式属于比较新的模式,对于互联网的互操作有很重要的作用,可惜现在很多“开放平台”和“云”厂商并没有真正的理解 REST 的约束,而是拿它和下面的 SOA 模式搅合到一块了。不过世界本身就是不完美的,虽然丧失了 REST 预定的好处,但是剩下的好处还是足够的。 SOA 模式是现在最流行的所谓“微服务”的理论基础,尽管大多数厂商都会把 SOA 退化成最简单的无状态服务集群用法,但也说明了很多应用场景并不是特别“苛刻”,真正能把 SOA 在高实时性要求的网络游戏服务器领域用起来,才是真的牛逼。
评论区
共 2 条评论热门最新