前一段時間,在程序員朋友圈有一篇比較火的文章《當下(2018 年)騰訊的技術建設是否處於落後同體量公司的狀態?》,不少朋友把連接發給我並詢問我是否是事實,我跟他們說大部分都是事實,朋友們都很以爲難以想象。其實這個問題下的其餘高贊回答我很早就看過了,就我所在的騰訊部門來看,大部分回答並不是虛構、捏造和抹黑。從騰訊跳槽到阿里也快八個月了,八個月時間不算長,但已經足夠體會騰訊與阿里之間的差別。雖然網上不乏介紹騰訊與阿里不一樣之處(包括文化、薪資待遇、公司氛圍和技術建設等方面)的文章,可是我仍是想寫下本身的感覺。因此如下都是我我的的觀點,難免具備必定的片面性,不喜勿噴。mysql
騰訊總體上是一家公司,但不少時候各個部門之間各自爲政。部門之間的合做更像一個公司與另外一個公司之間的合做,在溝通的時候若是不是負責人不能向對方透露任何跟工做有關的細節、進度等。在騰訊某部門的時候因爲此還吃過幾回虧,以致於來到阿里以後跨部門間合做老是戰戰兢兢,生怕說錯、作錯了什麼。後來才發現,在阿里大部分狀況下都不須要考慮這些。部門之間的合做就是公司內部的合做,就這樣我才慢慢晃過神來。linux
微信想必你們都知道,其實當初騰訊作微信這個產品的時候並非只有廣州微信團隊在作。成都也有團隊在作,當時是誰先作好、誰先推廣就能活下去。最後固然是廣州的微信作成了,另外一個相似「微信」的產品就只能死掉了。程序員
還有以前吃雞遊戲比較火的時候。騰訊一下推出了兩款吃雞手遊:光子工做室的刺激戰場和天美工做室的全軍出擊來進行瓜分市場。這樣的例子還有不少,就我所在的騰訊某部門的一個核心安全產品在公司內都存在競爭對手。可能這就是騰訊的文化,一個個好的產品就這樣被競爭、打磨出來了。都說百度的技術、阿里的運營和騰訊的產品,也不是沒有道理的。算法
而阿里就徹底不同了,來阿里某 BU 的第一個月。師兄帶着我作一款新的產品,產品的功能須要本身去摸索。主管只指定了大的方向,對咱們的惟一要求就是不要作別人/別組/別BU已經作過的東西、必定要善於使用公司已有的平臺給本身的產品賦能。可見阿里內部更注重合做和創新,一樣的事毫不作兩遍。sql
在騰訊,正是由於隔離和競爭,因此各個部門之間的交流、合做和共享就不多,特別是在技術方面,每一個部門閉門造車,沒有或不多有積累,這也是致使騰訊在技術建設方面落後的主因。就我這幾個月的親身體會而言,阿里的技術建設要比騰訊好不少。因此來到阿里後,我經常對那些喊苦的同事說,在阿里上班夠幸福了,只須要專心的寫業務代碼,不用關心一些雜七雜八的破事。shell
騰訊更像是在一家創業公司,一個應用從開始到結束所涉及到的全部流程都須要開發參與,包括申請服務器、搭建環境、安裝 DB、部署和運維等。也就是說開發要作的事每每包括開發、測試和運維。經常讓人叫苦連天,給我最大的感覺就是很忙,可是不知道在忙什麼。 固然在阿里也是有這些流程的,但不少時候只須要在頁面上點一點就了。這極大的節省了開發的時間、運維的成本和出錯的機率。這主要得益於阿里的技術建設的完善,我舉兩個簡單的例子來講明下騰訊和阿里在技術建設方面的差別就更能直觀感覺二者之間的差別了:編程
在騰訊某部門的時候,應用要使用 DB 大部分狀況下只能在 linux 服務器上本身搭建 mysql 環境,使用本地 DB。而後不少操做都是在 linux shell中進行 CRUD 操做,很是的原始。最痛苦的是對 DB 的運維,出了問題還得本身背鍋。在阿里某 BU 的時候,新建應用直接上公司內部平臺申請下就行了,並且會自動分配給你兩套(測試和正式)。全部的操做都是在頁面上,DB 也不須要本身去運維了。讀寫都作了很好的權限控制,根本不怕誤操做。設計模式
不少應用中的變量都須要在配置文件中進行配置,在騰訊某部門的時候都是以文件的形式和應用一塊兒部署。配置文件的讀寫都是應用本身實現的,固然這個已經有封裝好的庫了。可是若是要修改配置文件呢?得手動修改後重啓應用,其運維成本可想而知。而在阿里有整個公司公用的統一配置中心中間件:Diamond,其簡單易用。使用的時候在頁面上修改下,點發布就會自動熱更新到應用下,不用重啓、不容易出錯。安全
能夠說阿里在開發、測試、運維和部署等流程都已經有着很成熟的方案和平臺了,而騰訊還在使用比較原始的方式。以上兩例只是騰訊與阿里在技術建設差距上的一瞥,其餘不少方面不想贅述。至於具體緣由,知乎上的回答已經有了很好的闡述。因此說平臺化、流程化和標準化是多麼重要。騰訊每一個部門都有本身的一套,各個部門之間不多共享,因此致使不少東西僅限於有而不精。阿里整個公司共用一套,因此慢慢的沉澱出公司級的產品。騰訊可能也已經認識到本身在這方面的不足,不久前剛作了一次組織架構的調整。服務器
技術建設完善最大的收益者固然是程序員了,在騰訊和阿里天天上班工做時間差很少。可是在阿里明顯輕鬆多了,只須要一心專一業務代碼就好;在騰訊不少時候都在要爲環境、運維和部署發愁。寫代碼的時間不多,還常常被壓榨。
不過凡事有利有弊,在騰訊因爲什麼都須要本身親力親爲,因此員工不少東西都懂一些。特別是底層的一些基礎知識、算法和優化方面,但精不精就不知道了。因爲歷史緣由騰訊的主要編程語言是 C++,而阿里則是 Java。因此註定了騰訊偏底層應用開發,而阿里偏上層業務開發。我的以爲騰訊員工在底層技術方面可能要強於阿里的,而阿里員工在面向對象、設計模式和業務溝通方面是要強於騰訊員工的。
固然,對於一個公司來講或許這些都不重要,能不能賺錢才重要。但最近騰訊股價一路下跌,做爲股東的我爲此也寢食難安吶。怎麼說呢?仍是但願老東家愈來愈好吧,固然也但願本身在新的公司也愈來愈好!記得關注公衆號哦,記錄着一個 C++ 程序員轉 Java 的學習之路。