官术网_书友最值得收藏!

第11章 從開發者到架構師

軟件開發和架構之間的界線很詭異。有些人會告訴你這個界線并不存在,架構就是由開發者負責的設計流程的延伸。另一些人則說這是一個巨大的深淵,只有志向遠大的開發者才能跨過,他們堅信必須盡可能地抽象,而不拘泥于討厭的實現細節。跟往常一樣,這中間有一種務實的平衡,但它也帶來了一個有趣的問題:你如何在兩者之間穿梭?

一些常被用于區分軟件架構和軟件設計的關鍵因素包括規模的擴大、抽象層級的增加、做出正確設計決策的意義等。軟件架構就是總覽全貌,看清“大局”,才能理解軟件系統整體如何工作。

這可能有助于區分軟件設計和架構,然而不一定有助于理解軟件開發者如何轉換到軟件架構的角色。此外,對于辨別誰會成為一個好的軟件架構師,以及要如何招聘到他們,也沒有幫助。

經驗是一個好的評價標準,但你需要看得更深

你需要從軟件架構師身上尋找許多不同的品質,他們過去的經驗往往能很好地評判他們承擔這個角色的能力。既然軟件架構師是一個變化的角色,你就要看得更深,才能理解參與度、影響力、領導力和責任感的水平,這些在多個不同領域都已經論證過。結合我對軟件架構角色的定義,每個部分都能夠且應該單獨評估。畢竟,軟件設計過程看起來相當簡單,要做的就是搞清楚需求,設計一個能滿足它們的系統。但在現實中可不是這么簡單,人們承擔的軟件架構角色可能千差萬別。比如下面這些。

(1) 架構驅動力:捕捉和挑戰一套復雜的非功能需求,還是簡單地假設它們的存在。

(2) 設計軟件:從零開始設計一個軟件系統,還是擴展已有的。

(3) 技術風險:證明你的架構能夠工作,還是盲目樂觀。

(4) 架構演化:持續參與和演化你的架構,還是把它交給“實現團隊”。

(5) 編寫代碼:參與交付的實踐部分,還是袖手旁觀。

(6) 質量保證:保證質量并選擇標準,還是反其道而行之或無所作為。

其中大部分可以歸結為是承擔尋找方案的責任還是推諉問題。

模糊的界線

不管你認為軟件開發與架構之間的界線是捉摸不透還是深淵,人們對于軟件架構角色的經驗水平各不相同。此外,軟件開發和架構之間的界線某種程度上是模糊的。大多數開發者都不會在某個星期一早上醒來之后,突然宣稱自己變成架構師了。我肯定不是的,我通往軟件架構的道路很大程度上也是一個演化的過程。說了這么多,很可能不少軟件開發者已經為承擔部分軟件架構的角色做好了準備,不論他們的頭銜是什么。

跨越界線是我們的責任

給一個軟件系統的架構出力和為之負責之間,有一個很大的差異,那就是構成軟件架構角色所需的,跨越不同領域融會貫通的技能、知識和經驗。能否跨越軟件開發者和架構師的界線,取決于我們自己。作為個人,我們要清楚自己的經驗水平,以及為了提升它我們需要關注什么。

主站蜘蛛池模板: 合山市| 宣化县| 余姚市| 公安县| 定兴县| 嘉兴市| 大渡口区| 扎兰屯市| 赤壁市| 南部县| 尖扎县| 无棣县| 皮山县| 宁晋县| 通河县| 安陆市| 小金县| 陆良县| 石河子市| 额济纳旗| 婺源县| 江北区| 仁怀市| 唐山市| 沧州市| 建平县| 巴彦淖尔市| 金川县| 额尔古纳市| 基隆市| 隆昌县| 枣庄市| 邳州市| 和田市| 诸城市| 河北省| 双牌县| 绥棱县| 翁源县| 探索| 孝感市|