03三思而後行 前期準備

2022-09-07 06:18:11 字數 2005 閱讀 1424

1. 軟體開發食物鏈:程式設計師是軟體食物鏈的最後一環。架構師吃掉需求,設計師吃掉架構,而程式設計師則消化設計。

2. 需求變更

​ 「一旦客戶接受了乙份需求文件,就再也不做更改」是乙個美好的願望。然而,對乙個典型的專案來說,在編寫**之前,客戶無法可靠地描述他們想要的是什麼。問題並不在於客戶是低階生物。就如同你做這個專案的時間越長,對這個專案的理解也就越深入一樣,客戶參與專案的時間越長,他們對專案的理解也就越深入。開發過程能夠幫助客戶更好地理解自己的需求,這是需求變更的主要**。

3. 程式組織

​ 在架構中,你應該能發現對那些曾經考慮過的最終組織結構的替代方案的記敘,找到之所以選用最終的組織結構,而不用其他替代方案的理由。有乙份 對設計實踐的綜述認為,「維護『設計緣由』」至少與「維護設計本身」一樣重要。

​ 應該明確定義各個構造快的責任。每個構造快應該負責某乙個區域的事情,並且對其他構造塊負責的區域知道的越少越好。通過使各個構造快對其他構造塊的了解達到最小,你能將設計的資訊侷限於各個構造塊之內。應該明確定義每個構造塊的通訊規則。對於每個構造塊,架構應該描述他能直接使用那些構造塊,能間接使用那些構造塊,不能使用那些構造塊。

4. 主要的類

​ 架構應該詳細定義所用的主要的類。它應該指出每個主要的類的責任,以及該類如何與 其他類互動。它應該包含對類的整合體系、狀態轉換、物件持久化等的描述。

​ 架構應該記敘曾經考慮過的其他類設計方案,並給出選用當前的組織結構的理由。架構無需詳細說明系統中的每乙個類。瞄準80/20法則:對那些構成系統80%的行為的20%的類進行詳細說明。

5. 資料設計

​ 架構應該描述所用到的主要檔案和資料表的設計。它 應該描述曾經考慮過的其他方案,並說明做出選擇的理由。在構建期間,這些資訊能讓你洞察架構師的思想。在維護階段,這種洞察力是無價之寶。離開它,你就就像看一部沒有字幕的外語片。

​ 資料通常只應該由乙個子系統或乙個類直接訪問。架構應該詳細定義所用資料庫的高層組織結構和內容。架構應該解釋為什麼單個資料庫比多個資料庫要好,解釋為什麼不用平坦的檔案而要用資料庫。

6.使用者介面設計

​ 使用者介面常常在需求階段進行詳細說明。如果沒有,就應該在軟體架構中進行詳細說明。架構應該詳細定義web頁面格式、gui、命令列介面等主要元素。精心設計的使用者介面架構決定了最終做出來的時「人見人愛的程式」還是「沒人愛用的程式」。

​ 架構應該模組化,以便在替換為新使用者介面時不影響業務規則和程式的輸出部分。例如,架構應該使我們很容易地做到:砍掉互動式介面的類,插入一組命令列的類。這種替換能力常常很有用,尤其因為命令列介面便於單元級別和子系統級別的軟體測試。

7. 資源管理

​ 架構應該描述乙份管理稀缺資源的計畫。稀缺資源包括資料庫連線、執行緒、控制代碼等。在記憶體受限的應用領域,如驅動程式開發和嵌入式系統中,記憶體管理是架構應該認真對待的另乙個重要領域。架構應該估算在正常情況和極端情況下的資源管理使用量。在簡單的情況下,估算資料應該說明:預期的實現環境有能力所提供的資源。在更複雜的情況中,也許會要求應用程式更主動地管理器擁有的資源。如果這樣,那麼「資源管理器」應該和系統的其他部分一樣進行認真的架構設計。

8. 可伸縮性

​ 可伸縮性是指系統增長以滿足未來需求的能力。架構應該描述系統如何應對使用者數量、伺服器數量、網路節點數量、資料庫記錄數、資料庫記錄的長度、交易量等的增長。如果預計系統不會增長,而且可伸縮性不是問題,那麼架構應該明確地列出這一假設。

9.錯誤處理

​ 錯誤處理已被證實為現代電腦科學中最棘手的問題之一,你不能武斷地處理它。有人估計程式中高達90%的**用來處理異常情況、進行錯誤處理、或作簿記工作。既然這麼多**致力於處理錯誤,那麼在架構中就應該清楚地說明一種「一致的地處理錯誤」的策略。

​ 錯誤處理常被視為是「**約定層次」的事情——如果真有人注意它的話。但是因為錯誤處理牽連到整個系統,因此最好在架構層次上對待它。下面是一些需要考慮的問題。

10.容錯性

​ 架構還應該詳細定義所期望的容錯種類。容錯是增強系統可靠性的一組技術,包括檢測錯誤;如果可能的話從錯誤中恢復;如果不能從錯誤中恢復,則包容其不利影響。

​ 舉個例子:為了計算某數的平方根,系統的容錯策略有一下幾種。

三思而後行 前期準備

看過的書,作乙個小結,總是記憶更加深刻,通過思考寫歸納書中的知識點,更有助於學習有效提高!在軟體的開發的過程中,前期的準備很重要,對需求的理解不到位,容易造成平台的選擇失誤,平台的失誤,會造成專案會半途而廢,不僅影響專案進度,而且浪費人力與物力等資源!不管做什麼專案,我們要有一種每次面對乙個新專案一...

第三章 三思而後行 前期準備

使用高質量的實踐方法是那些能創造高質量軟體的程式設計師的共性。這些高質量的實踐方法在專案初期 中期 末期都強調質量。如果你在專案末期強調質量,那麼你會強調系統測試。如果你在專案中期強調質量,那麼你會強調構建實踐。如果你在專案開始階段強調質量,那麼你會計畫 要求並且設計乙個高質量的產品。由於構建活動是...

買房子,三思而後行

從去年12月開始準備買房子看房子,然後借錢買房子,到今年裝修房子,前前後後一共要花整整半年的時間,在這半年的時間裡面,可以說我們是吃不香,睡不穩,看房子的時候要注意這個房子有沒有什麼問題,還要擔心有沒有潛在的問題,簽合同準備買的時候更是提心吊膽的,不知道會有什麼問題,過戶手續遞交到房產交易中心,但是...