關於如何做好APP概要設計的一些想法

但凡做過實際商業項目的開發人員都知道,開發前期通過腦力勞動做好程序設計,會大大減少開發後期修bug、維護的體力勞動。

程序設計分概要設計和詳細設計。作為技術負責人應重點關注概要設計,把握整體架構、識別出開發過程中的重難點和潛在風險。至於詳細設計應給實際業務的開發人員足夠的發揮空間。

因為詳細設計涉及到功能的技術細節,會和實際業務強相關。但對於概要設計來講,主要在於明確怎樣做?肯定是可以形成一套通用的範式的。

結合個人的實際工作經驗,要做到通過設計提升程序穩定性和質量的目的,一份合格的概要設計應包含如下內容:

一 需求分析

1 產品需求分析

用於描述對產品提出的需求的理解和分析:產品定位、新增功能、業務目標等,避免對需求的理解和產品不一致,導致做無用功

2 技術需求分析

用於描述對技術團隊提出的技術需求的理解和分析:技術債務清理、市場反饋問題改善、性能體驗優化、技術指標達成、技術方案更新等。此處應包含技術改善項目和大致的實現策略

3 關鍵技術指標

性能指標:為提升產品性能體驗提出的性能指標,此處應包含性能指標項、性能指標、指標的大致實現策略等

技術指標:為提升產品競爭力提出的業務指標,此處應包含業務指標項、業務指標、指標的大致實現策略等

二 框架設計

1 整體框架圖

展示應用整體的框架圖,包括整體結構、應用分層、模塊解耦、包括的關鍵技術點等

2 核心功能流程圖

展示新增核心功能的流程圖,幫助梳理整個功能的邏輯,減少編碼過程中由於前期考慮不周導致的不穩定性和隨機bug

三 資源需求

1 商務資源

列出和其它公司或組織的商務合作,此處應寫明關聯功能、合作方等

2 內容資源

列出產品對內容資源的需求,此處應寫明關聯功能、內容資源需求等

3 技術選型

列出對新增核心功能的技術選型,此處應包含關聯功能、技術選型結論、技術選型依據(詳細的測試數據對比)等

四 介面設計

1 數據結構定義

輸出需要新增的數據結構設計或資料庫設計

2 後台介面定義

列出後台網路請求的介面定義,此處可簡單列出所有介面及對應的關聯功能,詳細介面參數可在開發中與後台人員做詳細設計與評審

3 對外介面定義

列出需要向其它模塊提供的功能介面,應包括關聯功能、介面介面及參數和大致的實現策略等

4 依賴介面約定

列出需要依賴其它模塊提供的介面,應包括關聯功能、介面及參數和大致的實現策略等

五 風險及應對方案

列出開發相關的風險項:實現風險、資源風險、第三方合作風險、指標達成風險、進度風險等,以及針對各項風險的應對方案,有素質的開發人員都是問題的終結者,不能只拋出問題不想解決方案。

六 測試指導

列出項目的測試重點,以及對應的測試方案,以便為測試往正確的方向進行提供指導。對於有明確測試需求的地方,應重點提出來,比如針對指標的專項測試。詳細應包含:測試分類、測試重點、測試指導、測試需求等

七 時間安排

列出各領域的關鍵事項及時間節點,以便各領域協同、項目透明、進度可預知。

八 其它

列出概要設計模板中沒有覆蓋到,但對項目又非常重要的事項

整個APP概要設計的「範式」包括如上八大部分,為了保證概要設計的質量,應在概要設計的末尾提供如下的CheckList,讓設計人員簽署每一項,確保都有考慮到。

概要設計CheckList

工作越久,經歷的項目越多,就越發重視程序設計,特別是概要設計,他為正確高效工作指明了方向。上述的概要設計「範式」只是本人當下的理解,它會隨著工作經驗的積累不斷更新,但終極目標不會變:將編程變成一項腦力勞動,寫出高質量的程序、讓自己成為靠譜的開發人員。


推薦閱讀:

TAG:Android開發 | 編程 | 移動開發 |