2017年研究生畢業,我加入阿里巴巴數據庫技術團隊,從事分佈式數據庫研發,現在算來已經有三年時間了,在這期間,我深度參與了雙十一背後的數據庫PolarDB-X從設計到實現的全過程。在這三年的時間裏,於我而言,最大的收穫來自兩方面:數據庫
(1)大型數據庫項目的磨礪。數據庫做爲三大基礎軟件之一,複雜度不言而喻,而分佈式數據庫將這個複雜度又提高了一個層次,所以嘗試這個領域的企業並很少。一畢業就有機會挑戰這個級別的難度,磨礪造就成長。
(2)有幸與一羣實力超羣的小夥伴一塊兒工做,從他們身上能學習到太多東西了。
根據工做經驗和觀察身邊優秀的同事,我發現優良的工做習慣是區別通常工程師和專家工程師的重要素質。想要提高本身,必需要認識到哪些工做習慣會拖延工做效率,提高項目複雜度,增長溝通難度,甚至讓合做夥伴失望,而後改正它們。刻意練習那些被證實有效實用的工做方式,成爲習慣。在阿里的這三年,我積累了這些工做習慣:編程
最基礎也最重要的習慣:想清楚再動手。大模塊和功能,詳細的設計文檔必不可少。小模塊和功能,最好動手以前,在白板或紙上寫畫清楚,並記錄下來,千萬不要靠巧合編程,要理解正在作的事情,並全面考慮各類可能性。架構
設計、編寫正交性好的代碼模塊。這是你們公認的良好編程習慣,但提及來容易,作起來難。工程師可能會圖一時之快,編寫重複、複雜的「麪條代碼」,隨着代碼量膨脹,這無疑會是代碼維護和問題排查的災難。平時最好能刻意練習編寫正交性好的代碼(剛開始可能花時間,但要熟悉這種思惟習慣),學習業界優秀的代碼也是精進的方式。這裏簡單列四點實用技巧:併發
一、不向其它模塊暴露任何沒必要要的信息,也儘可能不依賴其它模塊,隱藏複雜性編輯器
二、儘可能避免編寫類似的函數,讓複用變的容易。分佈式
三、儘可能避免直接使用全局變量。函數
四、編寫獨立的函數,減小函數間的依賴,函數解耦的一些技巧:高併發
(1)只調用對象自身的函數。工具
(2)只調用傳入參數對象的成員函數。佈局
(3)只調用函數內部建立對象的函數。
(4)減小函數的長度。
若是發現代碼中不滿意的地方,早重構、多重構。儘可能不要容忍軟件中的「垃圾」。重構前應該確保:
一、不要在重構的同時加功能;
二、重構前確保擁有良好測試,確保重構對系統重量的影響最小化;
三、採起短小、深思熟慮的重構節奏。
系統裏的每一項知識都是單1、無歧義、權威的,要與全部研發人員達成一致。避免合做者之間由於理解的差別,編寫出語義相悖的代碼。
把低級的知識放在代碼裏,註釋留給高級的說明,糟糕的代碼才須要許多註釋,固然也不能沒有註釋。commit message也要認真寫。
時刻考慮併發對代碼的影響,面向併發設計;時刻考慮空間和時間效率;時刻考慮Corner case。
爲項目制定詳細的編碼規範,並嚴格遵照。精心的爲模塊、文件、變量和函數命名,意義清晰無歧義。合理佈局文件和文件夾。
關於bug排查。
一、遇到bug,不要恐慌,相信本身能解決它。學會評估bug的影響面。
二、bug是你的仍是別人的沒有關係,不要抱怨,問題已經在那了,解決它。
三、若是排除一個bug花費了很長時間,思考可否作點什麼(例如增長日誌、總結文檔、優化代碼等),讓下次排查更容易。
四、Crash early,一旦發生異常,當即崩潰,讓問題第一現場儘早暴露。若是認爲何不可能發生,就用斷言確保它不會發生,不要本身說服和欺騙本身。
五、打印含有跟蹤信息、格式統一規範的日誌,尤爲是異常路徑的。
儘量多、儘量早、儘量全面地測試。讓質量成爲正式的需求。
一、單元測試要覆蓋正向路徑和異常路徑,關注一些邊界條件,而且校驗結果。
二、模塊測試、集成測試、壓力測試、性能測試都應該自動化。
三、不要忽略資源耗盡、故障恢復的測試場景
關於工具使用:
一、選擇一種強大的編輯器,儘量學好它,利用它。
二、儘量多的自動化,讓計算機去作那些重複的工做,顯然它們更擅長。這既避免了出現錯誤,又提升效率。
三、使用配置文件,而不是集成在代碼裏。把抽象放進代碼,把細節放進元數據。
作一個知識輸出者,多寫文章和總結,在本身經常使用的平臺分享,總結和覆盤能加快進步。不要懼怕交流,不要懼怕暴露缺點,有效的交流越多,你就越有影響力。
今天了不得的軟件,比明天完美的軟件更重要。
最後,多運動,保持頭髮和衣着整潔,保護好頸椎,保護好視力...
團隊簡介:
PolarDB-X是阿里巴巴全自研自主可控的分佈式數據庫系統。不一樣於同品牌基於共享存儲架構的數據庫PolarDB,PolarDB-X是一款Share Nothing架構的分佈式數據庫,可支撐千萬級併發規模及百PB級海量存儲,專一解決海量數據存儲、超高併發吞吐、大表瓶頸以及複雜計算效率等數據庫瓶頸問題。
面向人羣:
2021 屆海內外院校應屆畢業生
(畢業時間爲 2020 年 11 月 - 2021 年 10 月)
應聘方式:掃描下方阿里巴巴春招二維碼
或直接將簡歷投遞至dehao.wdh@alibaba-inc.com
3月26日 15:00-16:00邀您一同見證
雲數據庫SQL Server 2019版全國首發
全面提高性價比及數據庫能力
一年享4折
點這裏
預定觀看直播