i007.vip

i007.vip

优先队列-降维打击

11.【密】记事

我对框架的一些理解

这篇文章已经写了有几个月了,应该是没发出来,文中观点仅代表个人想法,仅供参考,仅供讨论

 

框架为需求服务,以项目需求为导向,这就决定了每款游戏的框架会不一样,没有必要也不太可能一套框架走遍天下,框架的变化、更新应该成为常事

 

框架是由组件构成的,如果想要框架易于变化,我认为最重要的是要定义好各个组件之间的关系。各个组件之间要尽量的扁平化,层级要尽量少,要尽可能的正交,只有这样重心才会低,依赖才会少,这样各个组件就可以很容易的分别升级,让整个框架不断的进化、升级。

 

相反的,现在的很多组件依赖关系没处理好,Lua组件库依赖网络库,网络库里面包含日志组件和Lua组件,各个组件的角色定义含糊不清,彼此之间互相依赖,很容易打架。结果就是只有设计者自己能够处理好这个关系,别人都不敢动,或者不愿意动,这样的架构可能好多年也不会去更新,现在时代变化这么快,跟不上新需求的框架,怎么会具有竞争力?怎么会有价值?

 

很多框架就是太复杂,太庞大了,耦合紧密,你无法拆开用,要么你使用它的全部组件,要么都不用。

 

所以我理想中的做法是,首先定义好各个组件的功能和它们之间的关系,解除依赖,然后根据项目需求和实际情况用这些组件去组合成框架,如果需求有变更,因为组件之间彼此耦合度低,修改框架会变成一个相对容易的事情,项目组可以自己完成,也可以有我们帮它们完成。我认为项目组一定要有能力自己修改框架,框架才有竞争力,物竞天择,适者生存,很多时候项目组比我们更了解需求

 

发表回复