作爲後端開發,永遠重複着「增刪改查」,這些基礎的操作佔據了自己大部分工作時間,看到其他人成爲技術大牛,而 個人技術水平永遠停在原地 ,也會很迷茫......

需要學習的僅僅如此嗎?當你工作久了是否會發現你的代碼越來越複雜? 文件的上傳下載怎麼提高效率? 消息推送的實時性怎麼保證?同時使用人數過多,服務器爆炸怎麼辦......需要學習的太多了。

希望此文能重燃你的熱情,更好的提升技術能力和判斷力,站在更高的角度去看自己寫的代碼和技術方案,從中看到技術的亮點和價值。

淺談CRUD

從CRUD的定義進行解讀,CRUD是指在做計算處理時的增加(Create)、讀取(Retrieve)、更新(Update)和刪除(Delete)幾個單詞的首字母簡寫,CRUD主要被用在描述軟件系統中數據庫或者持久層的基本操作功能。

從軟件分層架構的角度來看,這一層在業界被定義爲DAO(DataAccessObjects數據存取對象)是指位於業務邏輯和持久化數據之間實現對持久化數據的訪問。

顧名思義,如果把CRUD等同於爲後端開發技術棧內容,那麼就是偷換概念和錯誤總結,從大部分後端工程師日常口頭禪來看:在產品需求不明確或者不是特別有價值的情況下,常常對自己所做的事情或者需求,簡單的定義爲CRUD,這是一種“自我調侃”和“對產品需求的輕視”。

技術持續演進

回看 計算機的發展史 ,從單機到網絡計算機, 從單體應用到分佈式應用 ,從這2篇文章可以看到技術的飛速發展。

從Web時代到移動互聯網時代再到人工智能時代,硬件的加速發展帶來軟件的飛速發展,無論是傳統軟件和互聯網軟件,軟件崗位角色被一步步的細化,譬如前端、客戶端、後端、算法、大數據等細分角色出現,每個角色面臨的技術挑戰和解決的問題域被重新定義和劃分,職責更加清晰,能力範圍更加專注和聚焦,技術棧更加清晰和明確,從這個劃分來看後端除了CRUD,還需要具備什麼?

冰山下的後端領域

軟件應用程序就像冰山一樣,用戶看到的只是應用程序的極小的部分,應用程序的最大部分是看不到的,這就是令人難以捉摸又神祕的“後端領域”。

作爲後端人員,不僅僅停留在用戶端側體驗以及交互形式,更重要的是從用戶的數據模型、業務場景、業務模型、系統架構設計、領域建模、業務流程以及高併發、高可靠、規模化等穩定性角度,去提升產品整體的體驗和價值,解決用戶的訴求。

後端開發即“應用服務器後端”開發,主要涉及軟件系統“後端”支撐。

比如,用於支撐Web網站和App客戶端的服務器,同樣介於後端服務器與瀏覽器以及App之間的應用中間件,它們都屬於後端範疇。

簡單地說,那些你在屏幕上看不到但又被用來爲前端提供支持的數據和服務等基礎服務以及對應的業務系統就是後端開發核心需要思考和解決的範疇。

後端開發職責

作爲後端技術同學,需要針對技術棧進行完備的技能儲備,並且需要從宏觀技術廣度和微觀技術深度進行拓展,基於業務的場景和價值映射技術的方案和策略,從業務擴展性的角度進行架構設計,更好的保證可持續產品交付能力,從需求、產品、研發、質量、運維、運營等進行過程中精細化考量,站在用戶的角度提升用戶的體驗,提升用戶對產品的忠誠度,最終實現產品業務價值。

當下,後端技術發展日新月異,一句話:“永遠不要停止學習”。 

以產品的生命週期作爲研發的目標,從一而終直到產品下線,過程中各種產品的需求和問題,均需要後端開發持續性的投入和解決,以及通過引進新技術或技術創新,給產品帶來進一步的增量價值。

舉個例子,譬如現在非常熱門的電商直播,涉及高清直播能力、人臉識別能力、直播間實物捕獲能力、大規模實時互動能力、大型秒殺購物能力等,都需要前後端深度技術以此帶來情景豐富性和實時互動性。

對於產品來說,需要保障7x24小時高可靠不停機服務,一切以滿足用戶的需求且高質量提供服務爲遵旨,技術帶來業務價值。

後端基礎拆分

縱觀近10年互聯網發展,尤其是移動互聯網開始興起以後,億級DAU用戶產品大量湧現,一個單應用很難再垂直壓榨硬件資源來提升性能,並且單點故障不能滿足“停機不停服務SLA”要求,需要做水平架構擴展支持集羣部署以及單元化異地多活部署。

前臺流量入口需要基於DNS服務做VIP路由負載均衡,並且基於nginx服務器做反向代理;不僅如此,還得考慮登陸狀態session問題和session的一致性。

隨着業務場景和業務流程越來越複雜,我們不得不把某些業務邏輯放到一個集羣上,把另外一部分業務放到另外一個機集羣上,”微服務架構理念”就此產出。

顯然系統的計算能力和處理能力大大增強,但是這些系統之間的通信就變成了頭疼的問題,消息隊列和RPC框架因此出現,爲了提高通信效率,各種序列化的工具等解決數據壓縮和效率問題。

當海量大數據出現的時候,單個數據庫也撐不住了,開始做數據庫的讀寫分離,如果還不行,就做分庫和分表,因爲數據要做跨庫跨表查詢和分佈式事務,爲了解決這個問題,又有各種各樣存儲方案和存儲技術出現。

另外,隨着VM技術和Docker/k8s技術出現,大規模部署成爲可能,同樣伴隨單機內存大小限制以及集羣共享內存訴求,緩存從應用集羣剝離出去單獨進行集羣部署提供高質量的分佈式緩存服務,同樣伴隨servicemesh等應用技術飛速發展。

與此同時多媒體技術越來越互動性和豐富性,基於強大的手機終端技術,隨時隨地拍攝照片和視頻上傳到雲端,億級用戶在終端需要更快的下載和觀看體驗,基於CDN邊緣節點緩存加速和OSS雲存儲能力誕生。

隨着互聯網尤其是移動互聯網的快速增長以及海量信息獲取的訴求,搜索引擎高速發展和應用。

近來,人工智能的飛速發展和豐富的應用場景,端到端的智能化進一步降低用戶獲取信息的成本和效率,轉變用戶主動搜索到被動接收穫取有價值的信息,精準推薦幫助用戶做決策。

跟隨3G/4G的飛速發展,端側即時性和實時交互的要求,其中以直播互動以及即時消息IM等應用場景出現,用戶實時交互和實時感知。 基礎設施尤其是網絡通信的發展和終端設備處理能力增強,讓海量的移動設備接入和端邊緣計算接入成爲現實。

從傳統以太網,到無線局域網的WIFI(IEEE 802.11 b/g/n/ac),到不斷發展的廣域網蜂窩網絡(3GPP的GSM、GPRS、UMTS、LTE、LTE-Advanced……),甚至整個廣域網在IoT領域興起以及終端技術的演進(藍牙、NFC),標誌着設備的泛化連接和網絡接入的豐富性爆發式增長,尤其是IoT/5G的時代的到來,技術帶來的新局面和新場景伴隨而生,未來可期。

後端業務拆分

聊完後端的基礎中間件和移動中間件系列,後端面對業務系統應該怎麼建設呢?

從技術視角去看,基礎中間件已經被更多細分化和深度化,從業務視角看,首先需要掌握中間件的基本原理和應用場景,以及各個中間件的特性,針對業務場景進行選擇和應用。

除了技術選型之外,作爲業務後端角色需要重點聚焦在需求分析、系統架構設計、領域模型構建、產品交付質量等,包括近年來比較火的“大中臺,小前臺”架構理念,作爲前臺的一線業務會更敏捷,更快速適應瞬息萬變的市場,中臺將集合整個集團的運營數據能力、產品技術能力,對各前臺業務形成強力支撐。

誠然,基於拆分後的每個子系統,後端同學同樣需要聚焦到應用上下游依賴關係、接口API/SPI的設計、核心性能指標、業務指標和相應的流控策略、安全防控等,基於業務的需求設計出對應的領域模型和業務邏輯以及SOP操作流程等;

包含對設計模式的採用和框架的選型考量,以及對中間件(緩存、存儲、文件、網絡)等依賴選擇,對整個的發佈過程和代碼質量的把控,最終完成發佈上線和後期的運維過程,產品的持續交付和迭代需要進一步作出技術的判斷和演進思考,推動技術演進和產品持續迭代,充分考慮技術ROI投入產出比,在業務需求下作出正確的技術判斷,技術發展日新月異,將來更需要密切把握技術脈搏、又要兼具全局視野,做出關鍵判斷和取捨,給用戶帶來價值。

加油後浪

互聯網技術一直在變化,技術越來越更聚焦,後端的技術發展越來越精細化和分層拆分。

作爲後端的同學,更需要關注業界的動態和方向,包括QCon技術峯會、架構峯會以及github和技術社區。

需要能夠有敏銳的嗅覺和判斷力,通過技術棧的組合和應用,作出正確判斷和技術選型,提升產品能力和推動產品和技術演進,在業務飛速發展下持續交付高質量產品和縮減產品交付迭代週期,快速落地業務和解決用戶需求。

後端開發需要具備全情投入,能夠做到真正地掌握背後技術原理同時做到觸類旁通,能夠把各個技術棧轉化爲自己的理解,再也不會以一句“後端CRUD“作爲簡單定論了。

未來在5G時代,更需要技術的持續革新,新的業務場景和產品必將出現,需要我們做好技術儲備和技術創新,應對新的變化和挑戰,加油,奔湧中的後浪們!

最後,願我們能與時代同行,具備技術前瞻性和創新變革,攜手共進!

淘系 IM 消息平臺

我們負責阿里新零售領域 IM 消息平臺的建設,通過 IM即時通訊產品(push、聊天機器人、單聊、羣聊、消息號和聊天室)構建連接消費者和商家的溝通和觸達渠道,我們每天服務上億消費者和數百萬商家,處理百億級的消費規模,支撐了直播互動、客服服務、商家羣運營、品牌資訊、營銷推送等電商領域 BC 互通的業務場景;同時,我們在消費者的購物體驗上不斷探索創新——直播、AR試用、遊戲互動,爲新的購物玩法提供靈活穩定的基礎設施,實現阿里電商生態重要支點,爲上百家APP 提供安全、穩定、標準化的電商組件SDK。不斷提升消費這的體驗和活躍,提升商家服務的效率和能力,促進商家業務增長。

聯繫電話:18651806651

郵箱:postbox:: [email protected]

鏈接:

1、https://www.zhihu.com/topic/20072566/hot

2、https://zhuanlan.zhihu.com/p/78287637

✿  拓展閱讀

作者| 李歷岷(骨來)

編輯| 橙子君

出品| 阿里巴巴新零售淘系技術部

相關文章