1.2 認識架構
計算機學科(以及信息技術相關領域)中的“架構”一詞,是從Architecture翻譯過來的。下面是IEEE對Architecture的定義:
Architecture is the fundamental organization of a system embodied in its components,their relationships to each other,and to the environment,and the principles guiding its design and evolution.[IEEE 1471]
架構是系統的基本結構。這種結構體現在組件內、系統彼此間的關系、系統與環境之間的關系,以及指導系統設計與演化的原則上。[IEEE 1471]
一般地,當提及架構這個詞的時候,通常都有特定的上下文環境,可以指代系統架構、信息架構、軟件架構等。
計算機科學家Grady Booch給出的架構的定義[1]如下:
架構代表形成系統的重要設計決策,其中重要程度由變化導致的成本來衡量。
這個定義更有助于理解架構這個概念,它指出了架構與成本是相關的。
再通過現代漢語詞典中的解釋來了解一下這個詞(有時候字詞本義有助于理解專有名詞的含義)。
架構:?建造;構筑。?框架;支架。?泛指事物的組織、結構、格局。
對架構有了初步的認識之后,怎樣才能對架構有深刻的理解呢?建議從兩個方面入手:
●既然這個概念來自建筑工程領域,那么要想有深入準確的理解,就需要看一些建筑方面的資料,比如梁思成的《圖像中國建筑史》手繪圖,通過看圖來直觀地體會什么是架構。此外,還可以到建筑工地去觀察一些施工的情況,具象地幫助自己理解概念;在旅游時有意識地關注不同樣式的建筑,體會不同的風格。“建筑是凝固的音樂[2]”,要主動地從中體會架構的概念,正如體會音樂的旋律。
●對于從計算機科學與工程實踐中總結出來的一些架構的概念,要通過實踐來學習和領會。類比是個好方法,比如對于 MVC 架構,是否會想到 VC++編程中的“Document/View”模型;又比如說到三層架構或者多層架構時,是否會聯想到它與“Client/Server”二層架構的關系。
盡管有些時候沒有意識到在開展架構相關工作[3],但它是客觀存在的。架構師,通常是指從事架構搭建工作的人。在一個團隊中,如果有被明確指派的架構師,那么該團隊的架構工作可能會更加專業化,對提高架構的質量有所幫助。但并不是只有架構師才可以負責架構工作,很多公司、團隊沒有架構師這個職位,而是由工程師或者高級工程師實際承擔這項工作。
要把架構師當成一種角色,而不僅僅是一個頭銜、一個職位。也許有很多人的工作頭銜是架構師,但其實際工作內容和架構關系不大,有些人可能沒有架構師的頭銜,但實際承擔著與架構有關的工作。
- INSTANT Mock Testing with PowerMock
- LabVIEW程序設計基礎與應用
- PostgreSQL for Data Architects
- SQL for Data Analytics
- C語言程序設計案例式教程
- Oracle Database 12c Security Cookbook
- Python時間序列預測
- Access 2010數據庫應用技術(第2版)
- 利用Python進行數據分析
- Mastering Backbone.js
- R用戶Python學習指南:數據科學方法
- Android應用開發實戰
- 大數據時代的企業升級之道(全3冊)
- AngularJS UI Development
- HikariCP數據庫連接池實戰