系统架构设计的工程与艺术(0)
對于系統架構設計,我現在是功力不夠,境界還湊合,俗稱眼高手低是也。功力不夠只能一點一點地練,一點一點的漲了,還不知道什么時候能有所小成。不過有境界也算是一件好事情,所以這個系列會先聊一聊境界方面。
之所以用了這樣一個標題,是因為系統架構設計既有比較通用的、相對固定的方法與模式,即工程化的一面,也需要設計師發揮個人的靈感與才華,即藝術的一面。二者不可偏廢。
系統架構設計有7個需要注意的要素,可以概括為P4QAD,具體如下:
要素1:原則(Principles)。原則是系統架構的內在規律性的東西,是為了達到系統的可靠性、性能、可重用性、可擴展性等多方面的需求,應當遵守的具有普遍意義的規則。原則的重要性勿需多言,因此在七個要素中它位列第一。
要素2:過程(Process)。過程就是設計系統架構的步驟與操作流程,即先做什么,再做什么,在什么條件下怎么做,等等。對任何一種方法論而言,過程是體現其可操作性的要素,因此其重要性僅次于原則。
要素3:產品(Products)。系統架構設計的產品不是指最終完成的那個系統,而是指的架構設計的方案、文檔等,例如傳統軟件工程的需求分析文檔、概要設計文檔與詳細設計文檔。產品往往是和過程耦合的,耦合關系規定了在設計過程的某一步應當輸出哪些產品,從而保證過程的每個步驟能夠達到目的。通常設計過程中會形成多種產品,分別從不同的角度、不同的尺度對設計進行描述,因此產品體系應當保證完備性(必要的角度和尺度都覆蓋到了)與一致性(不同的產品之間沒有矛盾)。關于這一點,一些架構框架(architecture framework)有專門的規定。
要素4:模式(Patterns)。模式是前人總結的具有可重用性的設計方案,是學習的榜樣和模仿抄襲的對象。不過在模仿之前一定要先搞清楚這個模式針對的需求與適用的環境。
要素5:定量(Quantification)??蛇x的設計方案往往有多種,如何進行選擇呢?針對方案中的不同點進行的定量分析是最有說服力的判斷依據。定量分析的結果與我們的直覺相悖是很常見的。只依靠經驗與直覺,甚至于只談設計理念、原則,而不做定量分析,是架構設計道路上的大坑??上гS多人喜歡往里面跳。
要素6:方面(Aspect)。系統架構設計需要考慮多方面的需求:最終用戶能直接體驗到的是系統的功能、性能、可靠性等,系統的運營者還要關心系統的控制管理,開發者強調開發周期與成本、可重用性、維護調試等,上述幾類參與者都可能會對系統的可擴展性提出需求……設計師需要根據項目實際情況,針對各方面的需求進行設計,并進行融合與折衷,不能只注重系統功能與性能,忽視了其他方面。
要素7:決策(Decisions)。在系統架構設計中,原則、過程、產品、模式這些并不能自動解答設計師面臨的所有疑問。拿球賽打個比分,這些只是基本技術動作,掌握好它們是成為一個好球員的基本要求。怎樣在比賽中運用這些基本技術動作,對球進行合理的處理,則需要球員根據場上情況,在一瞬間做出自己的決策。這是集中體現球員才華的地方,往往也是球星與普通球員之間的主要區別所在。與球員們相比,系統架構設計師有更充足的時間來進行決策,不過決策同樣也是最體現設計師智慧與才華的地方。
在P4QAD中,第一個要素“原則”統領了系統架構設計的工程與藝術,第二個到第六個要素是屬于工程方面的,最后一個“決策”屬于藝術方面。
(待續)
轉載于:https://www.cnblogs.com/yuesiyuewei/archive/2012/01/06/2313912.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的系统架构设计的工程与艺术(0)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL语句优化方法
- 下一篇: MySQL事件调度器(Event Sch