關於架構設計文件

2021-10-08 13:10:43 字數 2546 閱讀 3576

很多人覺得架構文件沒有什麼寫的,或者說不知道要怎麼寫。其實我覺得這是因為自己對架構、或者對業務需求並不是那麼理解。如果真的理解了,再來寫這個文件,會發現真的有很多可以寫的地方。因為你在明白架構設計文件的目的、作用後,就知道這個東西不僅僅是拿來糊弄公司的,而是真的有指導意義的。

首先要理解架構設計文件的作用,架構設計文件其實對專案開發是有很大幫助的,而且在寫架構設計文件的過程中,也能讓設計師認真的重新梳理一遍業務需求,從而有針對性的去設計,而不是在寫**過程中臨時決定要用什麼方法去寫。

突然想起之前面試的時候問面試者,架構是什麼?聽到的回答五花八門,什麼都有。有的人乾脆就說架構就是 mvc,mvp 等等,讓人有點無奈。我在這裡簡單聊一下我的理解。

架構這個詞其實並不是軟體領域專有的。它甚至可以追溯到人類起源的時候。

剛開始人類只有很簡單的需求:有東西吃、有地方睡。乙個人就能做完所有的事情。但是隨著需求變得多樣性,還有技術領域的細分化,乙個人做不完所有的事情了,而且也學不會那麼多技能。這個時候社會分工就出現了。隨即演變出了社會組織架構。包括現在的企業組織架構,都是為了更好的分工而生的。

建築中的架構也是類似的。一開始就乙個茅草屋,乙個火坑,簡簡單單的屋子就夠了,不需要什麼架構設計。隨著社會的發展,人們對建築功能的需求也越來越多,空間的切分也越來越細緻。以居所為例,出現了客廳、餐廳、廚房、臥室、衛生間等專用空間。隨著人們對空間劃分變得細緻、空間組合變得多樣,建築架構就應運而生了。

那麼在軟體領域,架構最根本的目的,我認為也是為了讓乙個團隊能更好的分工,進而更好的合作

之前說了,寫不出文件一方面是因為對架構理解不到位。另一方面就是因為對業務需求理解的不到位,那麼為什麼業務需求對架構這麼重要呢?

業務在很大的程度上決定了乙個團隊的分工。但是在講業務需求之前,我想先聊一下程式設計師所需要解決的兩類問題

第一類就是生意問題。我們製作的軟體,其實都是為了做生意。而且很多時候,這個生意沒有了軟體一樣能做,只是比較低效而已。我們只是生產了乙個工具,可以提公升做生意的效率

另一類問題,就是計算機問題,是用來支撐我們去生產這個工具的,比如計算機、資料庫、網路等等,都是為了更好的支撐我們去模擬做生意的過程。

這兩類問題,都會對我們的架構設計產生或深或遠的影響,所以一定要在設計前就有一定的了解。

接下來聊聊業務需求為什麼會對架構設計產生深遠的影響。我們先看一下建築的用途是怎麼影響到建築的架構的。

像農村裡的普通住宅(一般規模),磚混結構就夠用了;城鎮的中低層住宅樓(規模變大),就需要框架結構;高層住宅(規模進一步變大)的結構也不一樣,是核心筒 + 剪力牆;至於像機場、車站這種需要超大空間的建築體(另一種使用場景),則又需要大跨結構。你看,建築上不同的空間訴求,對架構的要求也是不同的。

回到軟體領域,不同的業務,它的特點也不一樣。像活動這種,天天在變,那麼架構設計上就需要考慮快速迭代和快速開發;像日誌系統,每天都有大量寫入,但是讀取比較少,所以在設計的時候也要考慮效能和穩定性等因素。不同的業務需求,有不同的特性,我們要在架構設計的時候就考慮進去這些特性,並且盡力去滿足這些需求。

在這裡我再多嘴一句,很多時候我們接收到的任務,其實是別人給過來乙個解決方案,並不是他想解決的問題。我們要學會識別這個陷阱,因為別人給的解決方案可能並不是最優的解決方案,甚至可能是錯的。我們需要直面問題,然後解決問題,這樣是最高效的。

說了這麼多,到底要怎麼寫架構設計文件呢?

我覺得架構文件最應該體現的就是:對業務需求的合理分解,以及對各個子業務的特性的理解。對業務進行了合理的分解後,我們的專案就有了乙個比較合理的骨架,這個骨架就是我們的底層架構。然後再對每個子模組做概要設計,隨後將底層架構和上層的各個子模組的設計進行融合。其實這個過程就是乙個化繁為簡的過程,將繁瑣的業務轉化為乙個個關鍵類和協議介面。

到了這一步,我們對業務已經有了很明確的認知了,自然也清楚每個模組的特性,此時再做技術選型,就有很強的目的性了。這樣一來計算機問題也就隨著業務問題一起解決了。

這裡有乙個文件綱領,只要思路正確,直接填鴨也沒啥問題。

一、概述

二、目的

三、專案背景

四、系統建設目標

五、參考資料

六、架構設計

6.1 架構分析

6.2 設計思想

6.3 架構體系

6.4 系統檢視

6.5 模組劃分

6.5.1 模組描述

6.5.2 模組介面

寫架構設計文件有感

前段時間寫了篇架構設計文件,一直想就這件事聊點什麼,結果一拖就拖到現在了。算起來這是我第二次寫架構設計文件了。一路摸爬滾打,算是有一點點領悟,也不知道對不對,就隨便說說。很多人覺得架構文件沒有什麼寫的,或者說不知道要怎麼寫。其實我覺得這是因為自己對架構 或者對業務需求並不是那麼理解。如果真的理解了,...

如何做好架構設計與寫好架構設計的文件?

1 建議讀一下ieee1471 2 一下是我的寫文件的一些心得 現代架構設計文件的編寫 4 1 檢視與 uml 軟體架構設計已經逐漸成為現代軟體開發過程的核心,然而能夠清晰表明架構設計並不是一件容易的事,就物件導向開發而言,rup 的 4 1 檢視已在架構設計的撰寫中得到了廣泛的應用和認可。對於 4...

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

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