1天完成1個類別改版,我在58的極限挑戰!
有獎徵集
極限挑戰
前言:
我是前年加入58集團的,當時加入是由於58在進行技術迭代,在嘗試業務線從java轉到php。入職後就立即被召喚到「小黑屋」進行封閉開發。我所在部門為房產事業群,所從事第一份工作就是租房列表頁的服務化改造。所謂服務化:就是從之前的:用戶request->nginx集群->javaWeb業務->底層存儲。大概如下圖(僅僅示例,其實java調用大量的平台和各種繁多的服務)
服務化3.0:
改造成業務層由php實現,java來實現服務化。從老系統中抽取出房產相關業務並與推薦、搜索、架構等部門配合對三端業務重新梳理與抽取進行微服務化,整體架構採用後端java服務,前端php這種模式,服務化中業務進行重新梳理與重構,解決了很多歷史遺留負債,為以後業務迭代輕裝上陣打下基礎。大概的流程變為用戶request->nginx集群->php業務集群->java服務化層->底層存儲。服務化之後的架構圖如下:
遇到困境:
改造過程中,主要困境在於之前58房產沒有php技術團隊,所以初期和java團隊進行服務聯調,介面約定等比較耗時。底層架構搭建起來後,主要的問題就是梳理老的java模板,並用php重新進行模板渲染。老的java模板碎片特別多,尤其是列表頁的篩選項,一個篩選項就是一個模板,而且模板還包含58發展這12年來遺留的,或被廢棄的各種業務代碼。
採用技巧:
如果說你參考之前java模板去梳理,1天時間下來,你連頭部的這批幾十個篩選項都梳理不完,更別說整個模板了。這個時候,我乾脆另闢捷徑,直接通過訪問線上模板,用線上html源代碼進行模板梳理。當然,做服務端的同事都知道 ,這樣做最大的問題就是,你很有可能會導致某些樣式元素標籤內容丟失。因為前端展示的html源代碼在後端其實有邏輯的,不同的邏輯下顯示的源代碼樣式都不一樣。而我的做法是:在線上把所有篩選項每項都進行選擇,通過觀察url的變化,至少保證每個篩選項里選中狀態樣式,某些篩選項互斥等問題。如果不能通過頁面發現規律,就在針對性的翻看java的模板,再局部進行邏輯梳理。另外,在代碼結構,變數命名上也盡量保證每個類別都相同,這樣可實現部分代碼快速複製。甚至底部與java交互的代碼都完全復用,抽象成公共基礎的函數和方法。
如何高效:
眾所周知,php語言的特點就是:業務開發快!而我們想發揮其優勢,必須善其事!這得益於當初php入門時候的快速企業建站,一天一個。也算是把自己所學的web技能發揮到最大化價值。服務化過程中,同事們都是驚嘆我的工作效率之高,因為正常同事1個類別的改版至少要3天。我不但效率高,提測之後bug數也是最少的,別人類別提測少則二三十個,而我的bug數沒超過8個以上。自己開發過程中,就準備了各類case,自測時候就會發現很多差異性和問題。有同事說,你那麼著急做完幹什麼,即使你做完qa也沒排期,資源跟不上還是無法上線啊。而對我而言,這並不是想鶴立雞群,而是我也想藉此機會,對自己極限進行一次挑戰,看看自己的潛能到底有多深。包括後來我負責了房東委託項目,版本迭代從產品需求溝通到正式上線,基本上也保持在3周內。這效率得到了所有領導們對團隊的認可,真正的踐行了程序員的精髓:敏捷。
我的感悟:
說了這麼多,並不是想炫耀自己有多牛逼,而是想告訴大家,無論你在高大上的一線bat公司,還是在命懸一線的創業公司,亦或是在朝九晚五穩定的上市公司,其實公司僅僅是一個平台,你想要啥,你的職業生涯怎麼規劃,你上班時間怎麼分配,都是取決於個人的選擇。沒有哪一家公司會拒絕一個主動要求進步的人,哪怕你的成長和工作並無太大關聯。而工作本沒有高低貴賤之分,任何公司平台都有「臟活累活」,不要眼高手低,覺得自己有能力,不該做這麼簡單低級的業務,即使再低級,那麼你專業性做到了嗎?你把業務追求到極致了嗎?你把性能優化到極限了嗎?我面試別人,聽到最多的就是:「我們公司業務小,簡單,所以沒那麼複雜,沒有搞那些」。殊不知,自己平時不對自己進行磨練,真正機會來了,你也無法勝任,只能遺憾擦肩而過。
關於58:
最後,再談談外界對58的評價。很多技術人提起58,覺得連2線公司都算不上。事實上,58自從合併趕集之後,技術團隊進行了深度融合,之後伴隨著58戰略調整,開始內部改造+外部輸血模式,在內部對那些有能力勤勤懇懇的員工進行提拔,在外面更是不惜成本去挖行業大牛。隨著平台+垂直的戰略方向落地、合併後集團研發人員的快速擴增,58技術決策不僅僅是做淺層次的局部修補,而是要完成對整個技術架構的升級和再造,58內部將其稱之為技術3.0階段。
不過從宏觀角度看,人們的傳統認知里,58或許並不算真正意義上的技術公司,儘管從站點初期小流量發展到超10億量級的綜合化平台,58技術架構經歷了無數次的演進和優化,但行業卻很少將58看作以技術為主要導向的企業。此外,近些年關於58技術的相關曝光也相對較少。
也正是基於此,前年58集團在ArchSummit北京2016大會上設立了58集團專場,目的就是對外放聲和輸出這幾年來58在技術上所累積的經驗和實力,包括分享其在存儲和大數據平台、人工智慧、微服務架構上的創新理念和實際思考。邢宏宇說:「任何技術上的改進,反映到產品或用戶體驗上需要一定過程。或許這種成效不是立竿見影,而是需要一兩年的蟄伏。所以第一步58需要小範圍進行一系列技術分享,或許明年某個結點,我們也會做類似技術的開放日的活動,從而實現更全面的放聲。」
輸入文字
TAG:一葉而不知秋 |