6.9 重新認識架構師

大家讀本章內容時是否會有點發虛的感覺呢?相信我,你並不孤獨。實際上,本章探討的幾個話題,要想敘述清楚,不僅需要大傢俱備諸多前置條件,如熟悉產品瞭解需求等,而且還要具備一定量的編碼訓練,甚至最好能跟着我們團隊摸爬滾打一段時間,大家才能真正體會。

正因爲這個原因,在本章內容敘述時,我刻意着墨於各種架構理念的演化過程,而非具體技術細節。在我心目中,架構是活的,是長出來的,別人的架構你很難直接拿走。但看到是一種力量,看到別人能迭代出一套優秀的架構,我們大腦中的鏡像神經元就會開始努力工作,幫助我們去“體驗”那種經歷。

鏡像神經元是最近腦科學的研究成果。鏡像神經元的存在,使我們有模仿能力,有同理心,看到別人打針我們會痛,別人打哈氣我們會困,看到別人演奏鋼琴曲,我們內心也會突然冒出學鋼琴的衝動。

大家要努力呵護自己的這種情愫,看到別人的優秀設計理念後,腦袋中不妨天馬行空一番,如將這種設計理念用於自己的產品,會長成什麼樣子,然後儘快的將最終期望的樣子記錄下來。潛移默化的力量是很強大的,你以後的工作中會下意識的用到那麼一點點。相信我,時間會給你驚喜。

◇◇◇

關於架構學習的認識,我曾經走過一些彎路。很久以前,架構是我心目中閃閃發光的詞彙,我在網絡上四處遊蕩,搜到一個頗爲經典的架構:MVC模式。這是一種非常經典的程序架構思想,將程序分割成模型(model)、視圖(view)和控制器(controller)三部分,以達到程序分層和解耦的作用。

我看得懂這個架構設計,也知道自己學過的MFC類庫、qt、網頁開發等都用到了這個架構,但唯獨自己做的產品中用不到。

不僅如此,我後來又閱讀了大名鼎鼎的所謂四人幫撰寫的《設計模式》一書,而且反覆閱讀了多遍,我確信自己看得懂,但在產品中依然用不上。

一開始我懷疑是自己做的產品太low了,所以用不上。後來我發現網絡上有牛人用一個簡單的例子就可以演示好多種設計模式,纔不得不承認是自己太笨了。單純想通過學習就具備架構設計能力這條路走不下去了,哎,算了,我本庸人,何必自擾之,咱敬而遠之總可以吧。

現成的架構設計沒學來,但工作依然要繼續。爲了讓自己的產品代碼複用率更高,我們團隊想出了很多策略,從最初級的分層、接口抽象、回調函數起步,慢慢的經常會冒出很多神來之筆。無意中,當大家再次翻開《設計模式》一書時,發現其中很多設計理念早已用了大半,雖然大多用的不倫不類。此時,再去反思對比,開始有一種豁然開朗的感覺。

此時,大家才意識到,架構很難簡單學來,但如果能有好的抓手,優秀的架構就可以自己長出來。因爲這個經歷,我帶團隊時,一開始僅要求大家囫圇吞棗的快速瞭解各種架構和設計模式,然後先在分層、抽象、緩存、消息隊列等基礎策略方面給予足夠訓練,最後則將精力全部側重於對“抓手”的要求上了。

◇◇◇

多年的工程經驗,我們團隊探索出一些比較好的抓手,分享給大家。

  1. 架構設計首先是用於組織真實產品無數程序模塊的,因此程序靜態架構和動態架構很關鍵,嚴格分層是一個很好的抓手。

  2. 架構不僅用於組織程序模塊,也可用於組織團隊成員。將架構設計圖形化,並內化爲團隊的共識,不僅有助於架構迭代,也有助於團隊建設,額外,統一的目錄結構、工具、配置環境等也有助於團隊成員形成默契。

  3. 要想讓架構持續迭代,複用是一個很好的抓手,如果能嚴格控制基於成熟平臺之上新產品的代碼複用率,會自然迭代出一套可複用的架構(新領域新產品應該適度放開復用這一要求)。

  4. 複雜的軟件模塊,或者多個產品可能用到的模塊,編寫成本比較高,開始構建時就需要充分考慮可複用性。而且,這些較小的模塊是新人成長的階梯,統籌人力資源,讓大家都具備能力提升的機會,有助於整個團隊發展。

  5. 架構設計時視野要寬,不能僅關注產品本身,還要考慮營銷,生產,工程等多個環節。關注這些領域會衍生出很多有趣需求。如我們團隊的設計產品中,非常注重各環節的觀測點,這些觀測點不僅有助於現場快速定位問題,持續提升產品質量,不同廠家產品聯調時也能省去很多口水仗。

  6. 元件化、腳本化、虛擬環境等都是軟件行業迭代出的優秀策略,這些策略不僅加快了產品研發進度,關鍵是可以更快的適應市場的變化,幫助我們在激烈的競爭中活下來。因此,架構師也需要適度關注行業發展趨勢。

  7. 重視架構迭代過程中的積累,這方面我以前介紹過的知識庫是一個很好的工具,如能引入考覈機制效果會更佳。

  8. 將人員培養納入架構設計。實際上架構設計時必須考慮團隊成員的構成,能力水平等多種因素。根本沒有最好的架構一說,只有在約束條件下最適合的架構設計。

這些抓手都是側重技術方面的,額外還有一個更重要的抓手:人性。

架構師到底是什麼,需要組織程序結構、需要安排團隊、需要人員培養、需要和各環節交流等等,但這些都是具體工作。大家試着從老闆或公司的角度思考,架構師是什麼?

在老闆的心目中,架構師就是產品就是金錢。如我是老闆,我只要招進一名優秀的架構師,他就會自己構建並培養團隊、又好又快的做出市場需要的產品,我的公司就可以賺到錢。

因此,一名優秀的架構師是非常稀缺和值錢的。職場多年,我終於明白了一個人的收入與其工作態度、是否加班、工作量等關係都不算太大,最大的影響因素就是“稀缺”,而成爲架構師,會讓你變得稀缺。

朋友們,身在職場,爲了票子,爲了房子,爲了尊嚴,爲了能吸引來漂亮的女孩,哪怕爬,我們也要爬到架構師這個位置。入職——團隊——抽象——架構——複用——質量——標準化,臺階已幫大家搭好,還有諸多抓手,相信自己,你一定會成長爲一名優秀的架構師的。

——————————————

返回目錄

我是小馬兒,一個渴望良知與靈魂的嵌入式軟件工程師,歡迎您的陪伴與同行,如感興趣可加個人微信號nzn_xiaomaer交流,需備註“異維”二字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章