獨家專訪馮大輝:由“實”及“虛”的架構師學習之旅
原創【51CTO獨家特稿】在過去的一周間,51CTO開發頻道陸續對國內外數位軟件架構師進行了郵件訪談,詢問他們一個程序員要成長為一個架構師需要學習哪些知識和技能,在工作上需要注意哪些問題。其中,王翔先生提到堅持不懈是架構師人生第一課,Fred George先生描述了架構師應該是有藝術追求的使用代碼作畫的大師,而eBay的Randy Shoup先生則主要強調了架構師在項目需求、系統和團隊之間進行權衡取舍的重要能力。
這一次,51CTO開發頻道邀請到了一位有些特別的嘉賓。他的大學專業是生物,畢業后開始從事IT。技術起點是Oracle數據庫,數年的工作經驗也主要圍繞Oracle數據庫的管理與性能優化。而他同時又是個技術雜家,對Oracle/MySQL關系型數據庫、Unix / Linux、網站架構 / 安全、用戶體驗、電子支付都有所涉及。活躍于各個技術社區,是國內IT業界最受歡迎的技術博主之一。自認為是個Evangelist(編者注:這個稱號由于其文化背景和意境,在國外的很多IT從業者都很愿意使用這個稱號。直譯過來應為“技術布道者”)。
他就是支付寶的數據架構師馮大輝先生。
學習篇
數據架構師(DB Architect)主要是從數據庫管理員(DBA)成長而來的,正如軟件架構師原本都是程序員一樣。數據庫管理員的工作是數據庫具體的維護工作,而架構師的工作則在一個更高的抽象層面上。因此大輝也曾說到,自己是從做一些比較“實”的維護工作的DBA轉變到一個相對比較“虛”的DBA崗位上。當然這樣的轉變并不輕松,架構師必須要有看得更遠、更全面的能力,成長的過程需要學習很多知識并積累經驗。對于自己的學習經歷,大輝在此次訪談中是這樣總結的:
“學習主要是通過網絡進行,比如仔細研讀和架構有關的經典論文,訂閱一些技術架構師的BLOG。當然,不可或缺的是線下、線上的積極交流,我自己也會寫一些文章和大家分享,從分享中我也能再次學到很多。”
#T#聽起來是一些挺平常的事情,但是如果你去大輝的博客(dbanotes.net),觀看他幾年間撰寫的博文,看到他那個長長的網志關注列表,你會發現這是個絕佳的建議。互聯網發展到今天的程度,像網志、社區這樣的平臺已經成為技術人自我提高的一個絕好的工具——而且幾乎沒有門檻。無論你是一個程序員還是DBA,維護一個技術博客,與其他博主互相交流,絕對會令你受益良多——無論你是否希望成為一個架構師。
不過另一方面,視野和經驗的積累如果沒有實際的業務是很難獲得的。因此,如果你在一個公司平臺環境之上,那么也要爭取“有意識的開拓技術視野,深入理解公司業務”,因為這些也是不可或缺的。大輝介紹說,數據架構師這個崗位很少有公司設置,很多時候沒有可供參考的案例,更多是摸索、琢磨。
能力篇
一個架構師有哪些必備的素質?在之前的訪談中,幾位架構師談到了在培養一位軟件架構師時最看重其抽象思維的能力,因為這是架構師的工作中最需要的能力,往往也是很多程序員所不具備的。正如Randy Shoup所介紹的那樣,像eBay這樣的大型系統,從項目啟動到最后的維護都有工作要做,但是第一步就是需要將整體需求抽象為垂直的買、賣、搜索、付款,還有水平的數據庫、事件與消息系統、服務基礎設施、展示框架等功能。而想法在落實的過程,也是對架構師抽象思維和邏輯思維能力的最大挑戰。大輝分享自己數據架構師經歷的挫折經驗,大多都是在想法的落實過程中。他說,一個比較新而且“虛”的崗位,一般"落地"會遇到一些問題,需要自己去摸索。這是個很難做到的事情。
同時,大輝也談了談自己對架構師這個群體的整體感受。他覺得他認識的架構師有一個共同點,那就是都“具備出色的交流能力,能夠推動大家就某些方向達成一致”。