你應該知道的四種優秀架構
除非你是非常熟悉基礎程式設計的整個世界,否則你很難了解程式設計架構到底是什麼。所以我們假設你並不太瞭解程式設計技術,那麼我會說,程式設計是一種定義邏輯的途徑或方法,這種邏輯以程式碼方式設計,讓指定的編譯器能夠理解它,讓編譯器能夠知道如何指揮計算機執行相應的功能。對於一個新手來說,這可能是程式設計的最簡單的定義(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修改過]
相關文章
- 你應該知道的 5 種 TypeScript設計模式TypeScript設計模式
- 你應該知道的FlutterFlutter
- 你應該知道的RocketMQMQ
- 你應該知道Go語言的幾個優勢Go
- 你應該知道的幾種Spring boot非同步呼叫方式Spring Boot非同步
- 你應該知道的JS —— 物件JS物件
- 你應該知道的前端——快取前端快取
- 你應該知道的程式集版本
- 關於 jwt ,你應該知道的JWT
- 你應該知道的前端--儲存前端
- 你應該知道的前端--渲染原理前端
- 你應該知道的Linux歷史Linux
- 你應該知道的Redis事務Redis
- 你應該要知道的JS中的thisJS
- 【架構設計】你的應用該如何分層呢?架構
- Python——你應該知道這些Python
- CSS Tricks - 你應該知道的 CSS 技巧CSS
- 你應該知道的Node.js流Node.js
- 關於 jwt 你應該知道的事情JWT
- 你應該知道的16個linux命令Linux
- 你應該要知道的Vue.jsVue.js
- Kafka的生產者優秀架構設計Kafka架構
- 四種JavaEE架構簡介Java架構
- 你應該要知道的重繪與重排
- 你應該知道的快取進化史快取
- 你應該知道的緩動知識點
- 關於WSL2你應該知道的
- 每個Java軟體架構師都應該知道的20件事Java架構
- Android:四大架構的優缺點,你真的瞭解嗎?Android架構
- 想成為一名優秀的架構師?從架構設計開始架構
- 你不可不知道的20個優秀PHP框架PHP框架
- 服務端效能測試你應該知道的服務端
- 你應該知道的ip地址相關知識
- 「開位」你所應該知道的HTTP——HTTPS篇HTTP
- 關於前端模組化你應該知道的前端
- 關於字元編碼你應該知道的事情字元
- Laravel 你應該知道的幾個最佳實踐Laravel
- 怎樣成長為優秀的軟體架構師?架構
- 測試們應該知道的真相,第四點最重要