系統架構之 不要面向需求程式設計,勿忘設計本身!

2022-03-27 05:32:55 字數 811 閱讀 1596

我相信你看到這個標題是你肯定會反對,我們日常的開發不就是圍繞需求去開發嗎?

這個問題提的很好,其實我們日常的設計就走到了這個誤區。我不保證所有的人跟我一樣,

,我之前就沒有意識到,只是一味的去根據需求開發。打個比方,現在公司有乙個需求,

需要開發乙個賣筆的銷售系統,銷售系統太大,就說訂單系統好了。這時你所有的設計在賣筆,

某一天你的賣筆的訂單系統做好了,確實也能正常使用,確實也完成了你的任務。

好了現在老闆說我們發現買書也很賺錢,這個時候就會發現,系統根本就支援不了,沒辦法擴充套件。

相信到這裡你還是沒有發現問題所在.

再舉乙個例子,比如現在我們有乙個需求,要記錄乙個欄位的變化

前和變化後,需求很簡單,你可能會想加兩個字段,乙個是變化前乙個是變化後,查詢語句非常簡單。

好了這時候,需求變更了,需要記錄兩個欄位的變化前後,好了這時候,發現之前的設計不支援了,

你可能會想,再加兩個欄位不就好了嗎。

呵呵,確實加兩個欄位就可能滿足這個需求。這個時候就應該好好想想了,是不是之前的設計就走入誤區,一味的

根據需求去設計,而把本身的日誌功能的部分給丟失了,我想表達的是,應該還原事實的真相,日誌應該怎麼設計。

應該是讓把需求去應用到設計上,這才是真確的方法。就拿剛才的記錄日誌的例子,日誌需要記錄什麼:需要記錄時間,

地點,人物,事件,附加資訊就可以了,那就不用管記錄變化前變化後,日誌本身就有這樣的功能,只需要改變一下

查詢的語句就滿足這個需求,就是我剛才說,應該是需求應用了設計,而不是面向需求去設計。

在 中的技術文件中有我平時總結的一些經驗,並在逐步更新中,也歡迎到這裡來交流。

系統架構之物件導向

耦合 模組之間聯絡的緊密程度。內聚 模組內部各元素之間聯絡的緊密程度。繼承與泛化 繼承 特殊類 子類 與一般類 父類 的關係。泛化 一般類與特殊類的關係,一對多。多型與過載 多型性是指一般類中定義的屬性或服務被特殊類繼承後,可以具有不同的資料型別或表現出不同的行為,通常是使用過載 專用多型 和改寫 ...

架構之美 需求架構分析和詳細步驟(1)

需求架構工作,包括需求捕獲 需求分析 系統分析 下面這個圖表明如何在前景分析工作中的時間和工作安排的關係 詳細做法 1 需求捕獲一般採用需求採集卡形式 專案或產品需求採集卡根據自己或企業的客戶或市場預想來定,下面是乙個典型的需求捕獲採集卡 2 需求分析結果 srs需求規格說明書內容格式 1.前沿 a...

架構之美 需求架構分析和詳細步驟(1)

需求架構工作,包括需求捕獲 需求分析 系統分析 下面這個圖表明如何在前景分析工作中的時間和工作安排的關係 詳細做法 1 需求捕獲一般採用需求採集卡形式 專案或產品需求採集卡根據自己或企業的客戶或市場預想來定,下面是乙個典型的需求捕獲採集卡 2 需求分析結果 srs需求規格說明書內容格式 1.前沿 a...