偉大架構(gòu)師的秘密

字號:

將抽象層次應(yīng)用到 IT 解決方案
    企業(yè)架構(gòu)師正受到其所面臨的大量復雜性的挑戰(zhàn)。開發(fā)一個能夠自動處理企業(yè)任務(wù)的獨立的部門應(yīng)用程序是一回事。而設(shè)計并組成一個支持上萬 IT 使用者的滿是應(yīng)用程序、服務(wù)器和數(shù)據(jù)庫(全都支持多種企業(yè)活動)的 IT 實驗室全球網(wǎng)絡(luò),則完全是另外一回事。要組合這些復雜性,IT 網(wǎng)絡(luò)必須隨時可用、響應(yīng)迅速并保護企業(yè)寶貴的信息資產(chǎn)。除所有這些之外,IT 網(wǎng)絡(luò)還必須足夠靈活以支持企業(yè)永遠變化的需要,并且采用出現(xiàn)的新技術(shù)。
    一些架構(gòu)師在這種復雜性方面明顯非常出色,而且在不斷進步。在我們的職業(yè)生涯中,能與一些真正偉大的分析師和架構(gòu)師并肩工作是非常幸運的。反思這些經(jīng)驗,我們已經(jīng)分析出是什么造就了杰出的架構(gòu)師。
    無一例外,所有偉大的架構(gòu)師都掌握了在截然不同的抽象層次上概念化解決方案的技能。通過將解決方案組織到離散的層次,架構(gòu)師可以將精力集中在解決方案的單個方面而忽略所有剩余的復雜性。他們一旦穩(wěn)定了解決方案的某個部分,接下來就能繼續(xù)處理其他方面,從而不斷地將層次發(fā)展并完善到最終可以被實現(xiàn)的粘合模型中。
    大多數(shù)軟件開發(fā)人員懂得應(yīng)該將解決方案分解到抽象層次。但是在實際的項目中,這是非常難于付諸實踐的。當遇到第一個困難時,在急于開始編碼時是很容易放棄這些層次的。偉大的架構(gòu)師會經(jīng)受這些挑戰(zhàn)并在整個項目的生命周期中嚴格保持這些層次。他們意識到,如果不這樣做,最終將淹沒在復雜性中。
    本文展示了將抽象層次應(yīng)用到 IT 解決方案的技術(shù)。首先,我們會通過一個簡單的示例演示此方法,然后提出一個基于正式抽象層次的系統(tǒng)產(chǎn)品的結(jié)構(gòu)。
    抽象層次:所有工程師的強大武器
    其他的工程學科,比如土木工程師,幾個世紀以來一直利用抽象層次復制復雜性。讓我們學習一下其他更成熟的工程學科是如何應(yīng)用抽象層次的,就從電子工程師開始吧,他們設(shè)計每次更新?lián)Q代都變得更加復雜的計算機系統(tǒng)。
    硬件工程師
    系統(tǒng)設(shè)計師使用抽象層次為計算機系統(tǒng)建模。每個層次都是定義完善的,并提供了該系統(tǒng)的一個不同角度。許多系統(tǒng)是在三個主要層次上設(shè)計的:系統(tǒng)、子系統(tǒng)和組件,如圖 1 所示。
    分層使工程師能夠?qū)嫶髷?shù)量的復雜性集成到一個單一的工作計算機系統(tǒng)中。在其原子部分的層次上確切了解一臺計算機是不可能的。在單獨一塊 Intel Itanium_ 芯片上有大約 25,000,000 個晶體管。
    對 IT 相關(guān)學科來說,這種把復雜性分解到抽象層的方法當然不是惟一的。類似的方法被用于從航空工程到微生物學的無數(shù)其他學科。
    應(yīng)用抽象層次時的核心原則
    所有工程師在應(yīng)用抽象層次時都遵循這套核心原則。當把抽象層次應(yīng)用到軟件時,這些原則也同樣適用。
    這些層次的數(shù)量和范圍是定義完善的,以便工程師能夠在復雜的系統(tǒng)上協(xié)作,所有團隊成員必須共享對層次的同一理解。只要設(shè)計師做出設(shè)計決定,他們必須將那些決定歸檔到相應(yīng)的細節(jié)層次。