[高性能编程设计]展现设计实现细节

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ccanan/article/details/83068379

在这里插入图片描述

最近在review团队代码的时候,也常常出现提出一些改变让团队同事困惑的地方,就是和一些经典的设计实现方式有些不同。
其实其根本原因就在于,我们在处理引擎开发,尤其是性能相关的部分,都要追求极限性能,这种情况下,会呈现出很多不同的编程风格。
性能偏好的程序设计实现会偏好:

  • 倾向考虑底层,think in hardware
  • 倾向设计实现暴露,而非隐藏,便于使用者了解模块的实现原理,以达到最大化的使用

而超大规模的程序设计,会偏好层次结构清晰,简洁的接口,不要暴露背后的实现细节,甚至要保持实现的灵活性。
这两点一定程度上是有矛盾,但是通过较强的设计实现积累,以及足够的注释,也是可以做到熊掌和鱼兼得。

那么团队应该如何去选择,要不要追求底层和减少封装细节呢?个人看法就是要坚定地朝着“优先保证高层设计的清晰合理,推进底层实现和理解实现细节”,主要原因:

  • 高层设计总是重要的,高层应该优先
  • 高层容易搞定,可以着手底层实现和理解实现细节:高层设计在行业充分发展的今天,大家已经可以很好地搞定了,每一个领域都有非常好设计方案出来,搞定这个并不会牵涉太多精力,好的团队可以说应该很轻松搞定这一点
  • 底层实现和理解实现细节,如同星际争霸和LOL中的微操,在充分竞争下,能做多少做到多好,会成为关键
  • 之前出现的functional programming和ESC多少是这种暴露实现细节的表现

我们以LOL比赛为例,大的战术,在比赛如此繁多的情况下,各种换线,双打野游走,分带等等已经被充分开发,甚至包括应对的策略大家都很熟知,这块很重要,但是不构成大的门槛。
然后微操作和配合,包括timing把握,这种次宏观的操作在很多比赛中带来致胜的关键。

sum:
高层设计合理,优先级最高,但它容易做到。
在底层实现和理解实现细节上,团队能做到多少,决定团队的能开发出多高性能游戏的关键。
如果团队已经走到,可以更多地去暴露实现细节,关注底层实现,那么应该去尽量做,当然在高层设计合理的前提下

猜你喜欢

转载自blog.csdn.net/ccanan/article/details/83068379
今日推荐