寫架構設計文件有感

2021-10-02 13:47:52 字數 2655 閱讀 2413

前段時間寫了篇架構設計文件,一直想就這件事聊點什麼,結果一拖就拖到現在了。算起來這是我第二次寫架構設計文件了。一路摸爬滾打,算是有一點點領悟,也不知道對不對,就隨便說說。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

`一、概述

二、目的

三、專案背景

四、系統建設目標

五、參考資料

六、架構設計6.1 架構分析6.2 設計思想6.3 架構體系6.4 系統檢視6.5 模組劃分6.5.1 模組描述6.5.2 模組介面

架構設計有感

架構是乙個很直覺化的概念,理解的反差會讓設計變得大相徑庭。架構設計者 不一定是架構師 對系統的把握 認知和控制力會極大的影響系統開發的走勢。需求分析,功能分拆,技術選型,人員控制,規模 進度和質量控制等都是架構設計者的任務,穩定安全,高效 可擴充套件 可維護 優秀的使用者體驗是架構設計的基本目標。不...

關於架構設計文件

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

《架構設計思維(一)》有感

這篇文章講述了架構設計的思維是怎樣的,對我這學期的軟體體系架構有了乙個概括的描述。乙個經典的架構設計過程模型,沿用了rup中迭代增量的思想,由分析 描述 選擇 構造和組合5個階段組成,如圖 這個過程模型看似很流暢,但是,架構師在設計時很難把握他的正確性和精準性,而且用它架構的系統是否對後續設計開發形...