你應該知道的四種優秀架構

banq發表於2014-01-29


除非你是非常熟悉基礎程式設計的整個世界,否則你很難了解程式設計架構到底是什麼。所以我們假設你並不太瞭解程式設計技術,那麼我會說,程式設計是一種定義邏輯的途徑或方法,這種邏輯以程式碼方式設計,讓​​指定的編譯器能夠理解它,讓編譯器能夠知道如何指揮計算機執行相應的功能。對於一個新手來說,這可能是程式設計的最簡單的定義(banq注:對於缺乏邏輯的新手,這可能是最難懂的定義,因此,對於可以不程式設計的架構師來說最基本的能力是邏輯能力)。

基本上有三種型別的程式設計:低層次的程式設計,中間級程式設計和高階程式設計。所有這三種程式設計型別中通用的事情是:都可以執行相同的功能。只是對於不同程式設計型別具體執行的方式是不同的。

當一個程式很容易地執行,有可能在同樣裝置上也有其它程式執行。但是,如果所有正在執行的程式需要內部通訊怎麼辦?這是由該程式的架構來解決這個問題。一個程式架構是一種設計的結構,在設計時就要考慮相互通訊方案,兩個程式通訊也許中間需要經歷許多相互等待的階段,因此,當你使用你喜歡的任何語言編寫這種程式時,必須要記住,程式必須遵循的架構,如線性程式設計(順序程式設計),也就是說所有的步驟要遵循一個接一個的順序,這當然會付出執行時間的代價。另一方面,當所有的步驟都是並行執行,並在最後一步全部完成時,所需的累積(cumulative )時間是相當少。因此,最好的架構是至少有一個累積等待階段。

但是,這並不意味著線性程式設計就沒有用而總是使用並行架構。重要的是要知道最好的幾種可能的架構,這樣您可以輕鬆地建立一個適合所有要求的最佳化方案。

下面是四種偉大的程式架構:

1. Clean架構

[img index=1]

外圈的層次可以依賴內層,反之不可以,內圈核心的實體代表業務,不可以依賴其所處的技術環境。

2.DCI架構本站中文DCI架構專題,DCI代表Data, Context, Interaction。

3.DDD/CQRS 領域驅動設計,本站DDD專題

領域驅動設計對於成功交付和維護CQRS的系統非常重要。 DDD作為一項戰略方針,允許將複雜的問題域劃分為單獨的塊(稱為有界上下文),雖然有很多方式如:不同的心智Mental模式,組織政治,域語言學等也是這樣做,但是DDD建立了一個有界的心智mental模式,這樣商務人士也可以理解,程式設計師也可以很容易地在程式碼中實現。

CQRS,作為一種戰術辦法,是實現DDD建模領域的最佳途徑之一。事實上,它就是因為這個目標而誕生在這個世界上。

相關資源:DDD – CQRS Leaven V20

4.六邊形架構

[img index=2]

允許應用程式都是由使用者,程式,自動化測試或批處理指令碼驅動的,在事件驅動和資料庫環境下被開發和隔離測試。一個事件從外面世界到達一個埠,特定技術的介面卡將其轉換成可用的程式呼叫或訊息,並將其傳遞給應用程式。該應用程式是可以無需瞭解輸入裝置的性質(呼叫者是哪個)。當應用程式有結果需要發出時,它會透過一個埠介面卡傳送它,這個介面卡會建立接收技術(人類或自動)所需的相應訊號。該應用程式與在它各方面的介面卡形成語義良性互動,但是實際上不知道介面卡的另一端的誰在處理任務。



[該貼被admin於2016-11-09 11:29修改過]

相關文章