架構設計開篇 架構設計的目標與衡量

2022-01-13 09:33:25 字數 1478 閱讀 2259

程式設計即設計,**即架構。

架構,這個詞比較神秘,以致於很多程式設計師望而卻步,以為要什麼了不得的本事。 確實的,架構設計是一種高遠的目標,但千里之行,始於足下。

架構的目標是什麼呢?**,實現所需服務;架構,致力於以更低成本、更高效率、更高質量地實現所需服務。架構,是兼顧質量、效率與成本的魔法。 但架構並不研究如何實現具體服務,—— 它研究的是如何妥善安置那些實現服務的構件,管理依賴、邊界和變化。

小問題小設計,大問題大架構。架構聽上去高大上,實際上也是為了解決問題的。不過,架構與程式不同,是在不同層次上求解問題。

架構設計是巨集觀性考量,在整體上理解問題的複雜性,給出方案,並論證方案的可行性,提供一系列準則指導執行。缺乏架構設計而直接著手處理問題,會出現三個嚴重問題:

因此,架構的目標主要有三個:

要實現架構目標,先要問:要解決的問題是什麼?問題的複雜性在**?弄清楚目標和靶點,才能一擊命中。

做架構設計,首要的是確定系統的關鍵架構特徵。 比如入侵檢測系統的架構特徵是:

準確豐富有效

效能與及時性

易用性

穩定性

安全性

可擴充套件能力

高可用與可伸縮能力

做架構設計,會面對相當多的非常燒腦的問題。技術問題、設計問題、各種複雜依賴和實現細節交織在一起,必須非常非常有耐心和細緻地去攻克難點、解決問題。

可以使用 adr 來記錄和交流架構決策。比如:

編號標題(title)

狀態(status)

語境(context)

決策(decision)

後果(consequence)

遵循方式(compliance)

3使用事件元件編排框架來實現入侵檢測處理流程

accepted

不同入侵檢測流程有很多相似之處,符合模板和編排的特徵。

將入侵檢測包裝成檢測外掛程式,將檢測子流程邏輯包裝成流程元件,再使用編排框架來實現入侵事件處理流程

對於典型流程,有更強的靈活性,大幅減少開發成本; 對於非典型流程,可以支援自定義流程,使事件處理流程更清晰可維護;可以支援複雜流程。

1. 定義入侵檢測外掛程式介面,具體檢測外掛程式必須實現該介面; 2. 定義流程元件介面,具體流程元件必須實現該介面; 3. 單一事實原則,每個流程元件的職責明晰單一; 4. 增強元件編排能力,而不是硬編碼邏輯。

如何衡量乙個架構設計的實際效果?靈魂拷問來了:

綜上所述,架構設計至少有幾個方面可以衡量:

好的開始是成功的一半。要開啟系統設計之路,就需要從最基本的層面著手和理解。意識到現實問題的複雜性,理解架構設計所面對的問題、目標以及衡量方式,才能真正有效地運用架構手段去解決問題。否則,就很容易設計出看上去漂亮優雅、似乎很可行但實際上卻不堪用的架構。

salesforce 架構設計 從架構設計到架構師

因為碎片化的時間多了,所以開始刷起某乎了,關注了架構相關的板塊,也順手回答了一些問題。發現有很多同道中人正在經歷著我前兩年經歷的階段,對於做架構沒有相對具象的一些理解,更沒有系統化的認識。所以把最近回答的一些內容整理一下,權當記錄,留給3年後的自己 按慣例,容許我裝x開頭 一 架構的定義 在軟體開發...

mysql架構設計 初識mysql架構設計

一 應用系統如何與mysql進行一次互動?最開始接觸jdbc的時候,我們系統如何完成一次sql操作呢?第一步,建立資料庫連線 第二步,操作sql 第三步,釋放連線。但是每次建立與資料庫的連線非常耗時和資源,所以我們加入了連線池的概念。第一步的獲取連線是從連線池中獲取乙個可用的連線,第三步的釋放連線不...

設計模式與架構設計

論設計模式在架構設計中的運用 設計模式 在我們現實的軟體專案開發中,常常會遇到一次又一次的關於軟體設計上的問題,而設計模式就針對那些問題提供了一系列的解決方案。設計模式是一種較高層次程式結構的設計策略 是一種技巧,它著重於為軟體系統 子系統內部的各物件間提供乙個良好的通訊平台,協調各者之間的關係,使...