我在腾讯和阿里的见闻

前言

  前一段时间,在程序员朋友圈有一篇比较火的文章《当下(2018 年)腾讯的技术建设是否处于落后同体量公司的状态?》,不少朋友把连接发给我并询问我是否是事实,我跟他们说大部分都是事实,朋友们都很以为难以想象。其实这个问题下的其余高赞回答我很早就看过了,就我所在的腾讯部门来看,大部分回答并不是虚构、捏造和抹黑。从腾讯跳槽到阿里也快八个月了,八个月时间不算长,但已经足够体会腾讯与阿里之间的差别。虽然网上不乏介绍腾讯与阿里不一样之处(包括文化、薪资待遇、公司氛围和技术建设等方面)的文章,可是我仍是想写下本身的感觉。因此如下都是我我的的观点,难免具备必定的片面性,不喜勿喷。mysql

关于腾讯

  腾讯总体上是一家公司,但不少时候各个部门之间各自为政。部门之间的合做更像一个公司与另外一个公司之间的合做,在沟通的时候若是不是负责人不能向对方透露任何跟工做有关的细节、进度等。在腾讯某部门的时候因为此还吃过几回亏,以致于来到阿里以后跨部门间合做老是战战兢兢,生怕说错、作错了什么。后来才发现,在阿里大部分状况下都不须要考虑这些。部门之间的合做就是公司内部的合做,就这样我才慢慢晃过神来。linux

  微信想必你们都知道,其实当初腾讯作微信这个产品的时候并非只有广州微信团队在作。成都也有团队在作,当时是谁先作好、谁先推广就能活下去。最后固然是广州的微信作成了,另外一个相似“微信”的产品就只能死掉了。程序员

  还有以前吃鸡游戏比较火的时候。腾讯一下推出了两款吃鸡手游:光子工做室的刺激战场和天美工做室的全军出击来进行瓜分市场。这样的例子还有不少,就我所在的腾讯某部门的一个核心安全产品在公司内都存在竞争对手。可能这就是腾讯的文化,一个个好的产品就这样被竞争、打磨出来了。都说百度的技术、阿里的运营和腾讯的产品,也不是没有道理的。算法

关于阿里

  而阿里就彻底不同了,来阿里某 BU 的第一个月。师兄带着我作一款新的产品,产品的功能须要本身去摸索。主管只指定了大的方向,对咱们的惟一要求就是不要作别人/别组/别BU已经作过的东西、必定要善于使用公司已有的平台给本身的产品赋能。可见阿里内部更注重合做和创新,一样的事毫不作两遍。sql

  在腾讯,正是由于隔离和竞争,因此各个部门之间的交流、合做和共享就不多,特别是在技术方面,每一个部门闭门造车,没有或不多有积累,这也是致使腾讯在技术建设方面落后的主因。就我这几个月的亲身体会而言,阿里的技术建设要比腾讯好不少。因此来到阿里后,我经常对那些喊苦的同事说,在阿里上班够幸福了,只须要专心的写业务代码,不用关心一些杂七杂八的破事。shell

二者对比

  腾讯更像是在一家创业公司,一个应用从开始到结束所涉及到的全部流程都须要开发参与,包括申请服务器、搭建环境、安装 DB、部署和运维等。也就是说开发要作的事每每包括开发、测试和运维。经常让人叫苦连天,给我最大的感觉就是很忙,可是不知道在忙什么。 固然在阿里也是有这些流程的,但不少时候只须要在页面上点一点就了。这极大的节省了开发的时间、运维的成本和出错的几率。这主要得益于阿里的技术建设的完善,我举两个简单的例子来讲明下腾讯和阿里在技术建设方面的差别就更能直观感觉二者之间的差别了:编程

一、统一 DB 管理平台

  在腾讯某部门的时候,应用要使用 DB 大部分状况下只能在 linux 服务器上本身搭建 mysql 环境,使用本地 DB。而后不少操做都是在 linux shell中进行 CRUD 操做,很是的原始。最痛苦的是对 DB 的运维,出了问题还得本身背锅。在阿里某 BU 的时候,新建应用直接上公司内部平台申请下就行了,并且会自动分配给你两套(测试和正式)。全部的操做都是在页面上,DB 也不须要本身去运维了。读写都作了很好的权限控制,根本不怕误操做。设计模式

二、统一配置中心

  不少应用中的变量都须要在配置文件中进行配置,在腾讯某部门的时候都是以文件的形式和应用一块儿部署。配置文件的读写都是应用本身实现的,固然这个已经有封装好的库了。可是若是要修改配置文件呢?得手动修改后重启应用,其运维成本可想而知。而在阿里有整个公司公用的统一配置中心中间件:Diamond,其简单易用。使用的时候在页面上修改下,点发布就会自动热更新到应用下,不用重启、不容易出错。安全

  能够说阿里在开发、测试、运维和部署等流程都已经有着很成熟的方案和平台了,而腾讯还在使用比较原始的方式。以上两例只是腾讯与阿里在技术建设差距上的一瞥,其余不少方面不想赘述。至于具体缘由,知乎上的回答已经有了很好的阐述。因此说平台化、流程化和标准化是多么重要。腾讯每一个部门都有本身的一套,各个部门之间不多共享,因此致使不少东西仅限于有而不精。阿里整个公司共用一套,因此慢慢的沉淀出公司级的产品。腾讯可能也已经认识到本身在这方面的不足,不久前刚作了一次组织架构的调整。服务器

总结

  技术建设完善最大的收益者固然是程序员了,在腾讯和阿里天天上班工做时间差很少。可是在阿里明显轻松多了,只须要一心专一业务代码就好;在腾讯不少时候都在要为环境、运维和部署发愁。写代码的时间不多,还常常被压榨。

  不过凡事有利有弊,在腾讯因为什么都须要本身亲力亲为,因此员工不少东西都懂一些。特别是底层的一些基础知识、算法和优化方面,但精不精就不知道了。因为历史缘由腾讯的主要编程语言是 C++,而阿里则是 Java。因此注定了腾讯偏底层应用开发,而阿里偏上层业务开发。我的以为腾讯员工在底层技术方面可能要强于阿里的,而阿里员工在面向对象、设计模式和业务沟通方面是要强于腾讯员工的。

  固然,对于一个公司来讲或许这些都不重要,能不能赚钱才重要。但最近腾讯股价一路下跌,做为股东的我为此也寝食难安呐。怎么说呢?仍是但愿老东家愈来愈好吧,固然也但愿本身在新的公司也愈来愈好!记得关注公众号哦,记录着一个 C++ 程序员转 Java 的学习之路。

相关文章
相关标签/搜索