我在騰訊和阿里的見聞

水目沾發表於2019-03-30

前言

  前一段時間,在程式設計師朋友圈有一篇比較火的文章《當下(2018 年)騰訊的技術建設是否處於落後同體量公司的狀態?》,很多朋友把連結發給我並詢問我是不是事實,我跟他們說大部分都是事實,朋友們都很覺得不可思議。其實這個問題下的其他高贊回答我很早就看過了,就我所在的騰訊部門來看,大部分回答並非虛構、捏造和抹黑。從騰訊跳槽到阿里也快八個月了,八個月時間不算長,但已經足夠體會騰訊與阿里之間的差異。雖然網上不乏介紹騰訊與阿里不同之處(包括文化、薪資待遇、公司氛圍和技術建設等方面)的文章,但是我還是想寫下自己的感受。所以以下都是我個人的觀點,不免具有一定的片面性,不喜勿噴。

關於騰訊

  騰訊整體上是一家公司,但很多時候各個部門之間各自為政。部門之間的合作更像一個公司與另一個公司之間的合作,在溝通的時候如果不是負責人不能向對方透露任何跟工作有關的細節、進度等。在騰訊某部門的時候由於此還吃過幾次虧,以至於來到阿里之後跨部門間合作總是戰戰兢兢,生怕說錯、做錯了什麼。後來才發現,在阿里大部分情況下都不需要考慮這些。部門之間的合作就是公司內部的合作,就這樣我才慢慢晃過神來。

  微信想必大家都知道,其實當初騰訊做微信這個產品的時候並不是只有廣州微信團隊在做。成都也有團隊在做,當時是誰先做好、誰先推廣就能活下去。最後當然是廣州的微信做成了,另一個類似“微信”的產品就只能死掉了。

  還有之前吃雞遊戲比較火的時候。騰訊一下推出了兩款吃雞手遊:光子工作室的刺激戰場和天美工作室的全軍出擊來進行瓜分市場。這樣的例子還有很多,就我所在的騰訊某部門的一個核心安全產品在公司內都存在競爭對手。可能這就是騰訊的文化,一個個好的產品就這樣被競爭、打磨出來了。都說百度的技術、阿里的運營和騰訊的產品,也不是沒有道理的。

關於阿里

  而阿里就完全不一樣了,來阿里某 BU 的第一個月。師兄帶著我做一款新的產品,產品的功能需要自己去摸索。主管只指定了大的方向,對我們的唯一要求就是不要做別人/別組/別BU已經做過的東西、一定要善於使用公司已有的平臺給自己的產品賦能。可見阿里內部更注重合作和創新,同樣的事絕不做兩遍。

  在騰訊,正是因為隔離和競爭,所以各個部門之間的交流、合作和共享就很少,特別是在技術方面,每個部門閉門造車,沒有或很少有積累,這也是導致騰訊在技術建設方面落後的主因。就我這幾個月的親身體會而言,阿里的技術建設要比騰訊好很多。所以來到阿里後,我常常對那些喊苦的同事說,在阿里上班夠幸福了,只需要專心的寫業務程式碼,不用關心一些雜七雜八的破事。

兩者對比

  騰訊更像是在一家創業公司,一個應用從開始到結束所涉及到的所有流程都需要開發參與,包括申請伺服器、搭建環境、安裝 DB、部署和運維等。也就是說開發要做的事往往包括開發、測試和運維。常常讓人叫苦不迭,給我最大的感受就是很忙,但是不知道在忙什麼。 當然在阿里也是有這些流程的,但很多時候只需要在頁面上點一點就了。這極大的節省了開發的時間、運維的成本和出錯的概率。這主要得益於阿里的技術建設的完善,我舉兩個簡單的例子來說明下騰訊和阿里在技術建設方面的差異就更能直觀感受兩者之間的差異了:

1、統一 DB 管理平臺

  在騰訊某部門的時候,應用要使用 DB 大部分情況下只能在 linux 伺服器上自己搭建 mysql 環境,使用本地 DB。然後很多操作都是在 linux shell中進行 CRUD 操作,非常的原始。最痛苦的是對 DB 的運維,出了問題還得自己背鍋。在阿里某 BU 的時候,新建應用直接上公司內部平臺申請下就好了,而且會自動分配給你兩套(測試和正式)。所有的操作都是在頁面上,DB 也不需要自己去運維了。讀寫都做了很好的許可權控制,根本不怕誤操作。

2、統一配置中心

  很多應用中的變數都需要在配置檔案中進行配置,在騰訊某部門的時候都是以檔案的形式和應用一起部署。配置檔案的讀寫都是應用自己實現的,當然這個已經有封裝好的庫了。但是如果要修改配置檔案呢?得手動修改後重啟應用,其運維成本可想而知。而在阿里有整個公司公用的統一配置中心中介軟體:Diamond,其簡單易用。使用的時候在頁面上修改下,點發布就會自動熱更新到應用下,不用重啟、不容易出錯。

  可以說阿里在開發、測試、運維和部署等流程都已經有著很成熟的方案和平臺了,而騰訊還在使用比較原始的方式。以上兩例只是騰訊與阿里在技術建設差距上的一瞥,其他很多方面不想贅述。至於具體原因,知乎上的回答已經有了很好的闡述。所以說平臺化、流程化和標準化是多麼重要。騰訊每個部門都有自己的一套,各個部門之間很少共享,所以導致很多東西僅限於有而不精。阿里整個公司共用一套,所以慢慢的沉澱出公司級的產品。騰訊可能也已經認識到自己在這方面的不足,不久前剛做了一次組織架構的調整。

總結

  技術建設完善最大的收益者當然是程式設計師了,在騰訊和阿里每天上班工作時間差不多。但是在阿里明顯輕鬆多了,只需要一心專注業務程式碼就好;在騰訊很多時候都在要為環境、運維和部署發愁。寫程式碼的時間很少,還經常被壓榨。

  不過凡事有利有弊,在騰訊由於什麼都需要自己親力親為,所以員工很多東西都懂一些。特別是底層的一些基礎知識、演算法和優化方面,但精不精就不知道了。由於歷史原因騰訊的主要程式語言是 C++,而阿里則是 Java。所以註定了騰訊偏底層應用開發,而阿里偏上層業務開發。個人覺得騰訊員工在底層技術方面可能要強於阿里的,而阿里員工在物件導向、設計模式和業務溝通方面是要強於騰訊員工的。

  當然,對於一個公司來說或許這些都不重要,能不能賺錢才重要。但最近騰訊股價一路下跌,作為股東的我為此也寢食難安吶。怎麼說呢?還是希望老東家越來越好吧,當然也希望自己在新的公司也越來越好!記得關注公眾號哦,記錄著一個 C++ 程式設計師轉 Java 的學習之路。

我在騰訊和阿里的見聞

相關文章