腾讯后台开发工程师徐晓鑫谈—什么是后台开发?(文末彩蛋 有!赠!书!)

徐晓鑫: 听到“ 后台开发 ”这个词,估计很多人心中都会有一些自己的感性认识,这种认识具体到每个人可能有一些差别,但估计大部分人都有这么一种看法:“后台开发”是编写一些用户看不见的程序,也就是 非界面的 ,既不是网页,也不是App,更不是桌面程序,因为这些都是用户看得见的(被称为“ 前台开发 ”)


这种感性认识在一定程度上是正确的,但是它不够具体,也不够全面


我所理解的“后台开发”的确是用户“看不见”的部分,但是还有很多界面性的程序是给企业内部人员使用的,这些虽然是界面程序,但是对于最终用户来说也是“看不到”的


举个例子,开发一个电子商务的网站,提供给客户进行商品购买的网页是用户看得见的,不属于“后台”,但是电商网站内部员工使用的“用户管理系统”,“订单管理系统”等,也是用户看不见的,但它们不属于本书中所指的“后台”


在有些场合,或者一些人的习惯中,这些内部使用的系统也叫“后台”,这样并没有错,希望读者在听到的时候,知道说话人指的是什么


在BAT这类成熟的、大型的、技术分工明确的互联网公司里,一般提到“后台开发”,指的是“ 服务端的网络程序开发 ”,从功能上可以具体描述成这样: 服务器收到客户端发来的请求数据,解析请求数据,然后进行处理,最后把结果返回 ,如下图所示


“SERVER” 这里的 “SERVER” 就是后台开发程序员需要用尽毕生精力去耕耘的“后台程序”,或者“服务器”


SERVER接收请求的方式既可以是通过 TCP请求包 ,也可以是 HTTP请求包 (其实也是 TCP连接)


如果是HTTP方式的请求,请求包的格式一般是 JSON或者XML ,或者 自定义 的 ASCII文本 ;如果是TCP请求,二进制的格式会常见一些


解析请求包的方式自然是请求包的格式相对应的,来的是什么格式的包,就用对应的解包库区解析,如果是自定义的格式,就按照自定义的方式去解析


“ 处理请求 ”这一步是后台程序的具体 业务逻辑

很多封装好的后台程序包会把其他三步都做好,但是这一步还是需要开发者自己去实现,因为只有开发者自己清楚,程序是要去做“登陆”还是去做“注册”的事情


“ 输出回复包 ”和“ 接收请求包 ”是对应的,一般来说,收到的是 JSON ,那么回复的也是 JSON ,收到的是 XML ,那么发送的也是 XML ,其他的格式也是一样的


这四个步骤是所有后台程序都会有的,无论使用什么语言去实现,都可以看到这四个步骤的影子


“CLIENT” “CLIENT”指的是向“ SERVER”发起请求,并接收“SERVER”回复的一方,就是通常称的“客户端”


既然后台程序是通过 TCP或者HTTP 接收和回复消息的,那么只要是能够发起 TCP或者HTTP 连接的都可以作为客户端,可以是浏览器, PC端的程序,安卓应用,IOS应用,等等


当然,这只是“后台开发”最基本的概念认识,也是像BAT这类成熟的大型互联网公司对“后台开发”这个岗位的工作范围定位


具体到实际的工作中,后台开发工程师需要涉及的技术层面很多, 接入层、逻辑层、数据层等 、需要考虑的问题也很多,个人认为最重要的几个就是 高可用性(availabilty)、可扩展性(scalability),健壮性(robustness)


也许以后咱们可以一起仔细聊一聊这些话题
48小时 内留言点赞最多的 5名 小伙伴将获得赠书一本


发表回复