谈谈技术管理中的架构师角色(一)

在RRR技术管理框架中,我提到技术经理可能会有四种角色(具体有哪些角色要依据团队具体情况来定):

  • 组长:团队管理方向
  • 架构师:技术方向
  • 项目经理:项目管理方向
  • 产品经理:业务方向

本文主要结合一个具体经历,谈谈我对架构师角色的看法。

大约十年前,我在腾讯带技术团队做公司首款自主研发的网页游戏《烽火战国》。当时的网页游戏前端大多是用html+js,还没流行flash;后端大多还是采用web的做法,例如用php短连接实现业务逻辑。

我们在技术上做了些创新,前端用html+flash,flash用来实现网络通讯和游戏中的主城,效果更炫,前端逻辑还是用js,那时flash as3还没开始普及。更大胆的是后端,我选择在网页游戏里用端游架构做后端,采用flash与后端保持长连接,设计目标是单区支持1万PCU(最高同时在线数)。以当时的游戏环境和腾讯用户量,单区1万PCU挺正常。

为了支撑1万PCU,我们在后端用单进程单线程。为了简化异步逻辑的开发难度,我们用setjmp系列函数实现一套简单的协程库,做出来后使用时发现有协程正在使用的数据可能被其他协程改变的情况,要么加锁,要么把数据副本一份。但这两种都不是我想要的。

带着这个疑问,我去请教互娱研发中心的大神steve,他提出来的关键思路是数据准备。即在异步逻辑真正执行之前,把需要的数据准备好,然后业务逻辑一次性同步执行完毕,中间没有异步中断。这个思路完美解决了数据加锁和数据副本的问题,极大简化了异步业务逻辑的开发难度。

由此,我总结有:

  1. 好的架构师能对技术选型和方案设计提供强力支持,减少走弯路;
  2. 要成为好的架构师,需要对自己业务领域的技术足够精通;
  3. 架构师还需要随业务发展不断更新自己的技术。

第3点以游戏开发技术为例补充说说。页游和手游的前端技术经历了html、flash、cocos2d-x、unity3d、h5,后端技术从c++到erlang、lua、go百花齐放。如果把AI、大数据实时计算和游戏结合,那么还需要熟悉这块的技术;如果过几年VR技术成熟,那么VR对游戏开发又是一个新时代。

你可能感兴趣的:(谈谈技术管理中的架构师角色(一))