關於如何做好APP概要設計的一些想法
但凡做過實際商業項目的開發人員都知道,開發前期通過腦力勞動做好程序設計,會大大減少開發後期修bug、維護的體力勞動。
程序設計分概要設計和詳細設計。作為技術負責人應重點關注概要設計,把握整體架構、識別出開發過程中的重難點和潛在風險。至於詳細設計應給實際業務的開發人員足夠的發揮空間。
因為詳細設計涉及到功能的技術細節,會和實際業務強相關。但對於概要設計來講,主要在於明確怎樣做?肯定是可以形成一套通用的範式的。
結合個人的實際工作經驗,要做到通過設計提升程序穩定性和質量的目的,一份合格的概要設計應包含如下內容:
一 需求分析
1 產品需求分析
用於描述對產品提出的需求的理解和分析:產品定位、新增功能、業務目標等,避免對需求的理解和產品不一致,導致做無用功
2 技術需求分析
用於描述對技術團隊提出的技術需求的理解和分析:技術債務清理、市場反饋問題改善、性能體驗優化、技術指標達成、技術方案更新等。此處應包含技術改善項目和大致的實現策略
3 關鍵技術指標
性能指標:為提升產品性能體驗提出的性能指標,此處應包含性能指標項、性能指標、指標的大致實現策略等
技術指標:為提升產品競爭力提出的業務指標,此處應包含業務指標項、業務指標、指標的大致實現策略等
二 框架設計
1 整體框架圖
展示應用整體的框架圖,包括整體結構、應用分層、模塊解耦、包括的關鍵技術點等
2 核心功能流程圖
展示新增核心功能的流程圖,幫助梳理整個功能的邏輯,減少編碼過程中由於前期考慮不周導致的不穩定性和隨機bug
三 資源需求
1 商務資源
列出和其它公司或組織的商務合作,此處應寫明關聯功能、合作方等
2 內容資源
列出產品對內容資源的需求,此處應寫明關聯功能、內容資源需求等
3 技術選型
列出對新增核心功能的技術選型,此處應包含關聯功能、技術選型結論、技術選型依據(詳細的測試數據對比)等
四 介面設計
1 數據結構定義
輸出需要新增的數據結構設計或資料庫設計
2 後台介面定義
列出後台網路請求的介面定義,此處可簡單列出所有介面及對應的關聯功能,詳細介面參數可在開發中與後台人員做詳細設計與評審
3 對外介面定義
列出需要向其它模塊提供的功能介面,應包括關聯功能、介面介面及參數和大致的實現策略等
4 依賴介面約定
列出需要依賴其它模塊提供的介面,應包括關聯功能、介面及參數和大致的實現策略等
五 風險及應對方案
列出開發相關的風險項:實現風險、資源風險、第三方合作風險、指標達成風險、進度風險等,以及針對各項風險的應對方案,有素質的開發人員都是問題的終結者,不能只拋出問題不想解決方案。
六 測試指導
列出項目的測試重點,以及對應的測試方案,以便為測試往正確的方向進行提供指導。對於有明確測試需求的地方,應重點提出來,比如針對指標的專項測試。詳細應包含:測試分類、測試重點、測試指導、測試需求等
七 時間安排
列出各領域的關鍵事項及時間節點,以便各領域協同、項目透明、進度可預知。
八 其它
列出概要設計模板中沒有覆蓋到,但對項目又非常重要的事項
整個APP概要設計的「範式」包括如上八大部分,為了保證概要設計的質量,應在概要設計的末尾提供如下的CheckList,讓設計人員簽署每一項,確保都有考慮到。
工作越久,經歷的項目越多,就越發重視程序設計,特別是概要設計,他為正確高效工作指明了方向。上述的概要設計「範式」只是本人當下的理解,它會隨著工作經驗的積累不斷更新,但終極目標不會變:將編程變成一項腦力勞動,寫出高質量的程序、讓自己成為靠譜的開發人員。
推薦閱讀: