從零開始搞基建(3)——設計方案


  最近看了一篇文章,文章中提到在開發流程中包含一個設計方案的階段,位於需求評審之后,用於描述自己對於該需求的實現思路、模塊划分等相關考慮的點,可供今后自己或他人查閱。

  目的就是在編碼前理清思路,整體架構,查缺補漏,作為他人或自己的技術參考文檔。

  自己在項目開發的過程中,也曽有過這樣類似的想法,但沒有作者那樣寫的系統,也沒有在團隊中落地。

  基於文章中的設計方案,自己做了點修改。設計方案包括4個部分:需求、調研、實現和復盤。

1)需求

  在設計方案的開頭,列出相關人員(便於精確找人),需求信息和各類時間。

需求背景:因為我們要做線下推廣,提高xxxxxxxxx
PRD:產品文檔鏈接
產品:老吳
UI:梨子
測試:小木
前端:雋雋
服務端:必煦
聯調時間:2021.07.30
提測時間:2021.07.31
上線時間:2021.08.10

2)調研

  功能的技術選型,對比不同方案的優缺點,適當取舍,形成一套適合當前場景的最優方案。

  以復雜動畫為例:

  • 自己之前有沒有做過類似的動畫,可以借鑒?
  • 公司內部有沒有自制的動畫庫,可以引用?
  • 業界有沒有現成的動畫庫或不錯的實現思路,可以參考?
  • 用原生實現,與遇到哪些問題,兼容會不會很困難?
  • .........

3)實現

  需要思考很多方面:業務的完整流程、數據結構的設計、關鍵功能的邏輯描述、異常處理、安全、性能、與現有業務的耦合情況、組件復用等。

  保證自己和他人在看到這份方案時,能清楚明白你的設計思路、代碼意圖和模塊划分。

  可用任意方式表達自己的思路,例如偽代碼、圖表或純文字等。

  流程圖讓自己和他人對需求有個直觀的了解。

  

  偽代碼在不寫具體代碼前,展示自己的編碼思路,傳達代碼意圖,即使是不會代碼的人也能讀懂,給你點意見。

function getSomeData() {
  let data;
  if(無緩存) {
    // 請求數據
    if(請求異常) // 展示錯誤頁面;
    data = 請求到的數據;
  }
  // 展示頁面
}

  模塊划分是架構的一個點,需要考慮哪些是獨立模塊、哪些是公共模塊、哪些是與業務耦合的模塊。

  用例圖可整理出大大小小的場景,在列出后就會發現流程中缺少的部分,以及各種未考慮到的邊界。

  

  還有安全問題,例如防止惡意的接口訪問。頁面中是否有性能問題。未來若擴展需求,那么當前設計的擴展性是否能滿足需求的變化。

4)復盤

  復盤總結的內容可自由發揮,按照自己的實踐,記錄與需求相關的一切,例如:

  • 撰寫方案時遇到的問題,以及解決方案。
  • 代碼上線后,收到的反饋,做的好的方面和做的差的方面。
  • 別人在做設計方案時,有什么值得學習的地方。
  • 在整個項目開發中,流程中的哪個點處理的不好(例如低效無用的溝通等),之后討論改進方案。
  • .........


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM