開始一個新專案前,應當想清楚的幾件事兒
如果覺得有價值,請隨意轉載,只需附上原文地址和 “簡書作者milter”字樣即可
在做一個新專案時,我們往往喜歡快速做出一個版本,迅速上線,不斷迭代。這是網際網路推崇的文化。但是,我還是覺得,以下幾點,最好還是想清楚一點,在一開始儘可能做好一點,這樣會更有利於後續的快速迭代,也就是磨刀不誤砍柴工。
1、log怎麼記
記log看似很平常的事兒,但在開始一個新專案,尤其是探索性的新專案時,認真地規劃一下log的記錄是很重要的。因為這是以後分析問題,解決問題的重要手段。如果一開始記錄的很隨意,那麼,後面分析統計時很可能會頭疼。根據我自己的經驗,規劃怎麼記log時,應當著重從以下幾點考慮:
專案的資料流程節點要記
一個專案總是要處理輸入資料,經過處理後給出輸出資料的,這個過程中的關鍵節點資料狀態應當記錄下來。
-- 輸入的原始資料要記錄下來
-- 資料關鍵的中間處理結果要記錄下來
-- 請求第三方服務的處理結果要記錄下來
-- 最後的輸出要記錄下來log中資料的基本粒度要細
比如資料時間、來源、使用者、session、請求次序、甚至上一次請求的關鍵資訊等。有些欄位可能需要上游傳過來,這個在一開始定義介面時就要考慮清楚,讓對方傳過來,因為介面一旦確定,就不好修改了。一個總的標準就是寧多勿少。log中資料各項的格式規範要定義好
比如時間、手機號、還有列舉類引數的取值名稱等,都要在一開始就清楚地定義好記錄標準,以後一直按照標準執行,方便以後資料的處理
2、異常的定義
專案中可能出現哪些異常,都要提前考慮清楚,考慮得越詳細越好。最好定義一套自己的異常體系,將自己的異常、上游的異常、第三方應用的異常都清楚地定義好。並認真考慮每種異常的處理辦法,是返回錯誤碼,還是直接崩潰?最後,這些都要記錄在log中。
如果在開始專案前,對可能出現的異常難以考慮周全,建議在實施專案的過程中及時進行完善。
3、關鍵指標報表
專案總是要迭代的,如何知道迭代後問題確實解決了或者效果確實變好了?這就需要對專案的關鍵衡量指標進行度量,要在一開始就想清楚這些關鍵指標是什麼,並做好報表。指標好比燈塔和KPI,沒有明確的衡量指標,就失去了優化的方向。
指標分兩類,一類是技術指標,比如效能、記憶體佔用、執行緒數、機器負載等;另一類是業務指標,這依據專案的不同而不同。
4、資料和程式碼的同步
許多專案都要使用一些資料提供服務,這些資料也是變化的。這就涉及到程式碼和資料同步問題。因為如果不同步,當指標有異常變化時,就很難說是程式碼改動造成的還是資料改動造成的。
資料比較小時,可以直接用git,和程式碼放在一起。如果資料量比較大,那麼就需要設計一套資料的版本控制框架,可以很簡單,也可以很複雜,取決於自己的專案特點和資料的迭代頻率。
5、介面的定義要留有餘地
最好是每個介面都留一個字串型別的額外引數,開發到後期,如果需要上游增加新的資料,可以讓上游寫成一個json字串放在這個引數中。這是一個取巧的辦法,正規的辦法肯定是升級介面。即使升級介面,也不建議直接在原介面上改,建議另外建一個介面的2.0版本,這樣方便相容。當然,這要求對介面中共同的程式碼要抽取出來,可以在新介面中最大程度的複用。
相關文章
- 開始一個專案
- 我的 2018 幾件事兒 | 掘金年度徵文
- 開始寫部落格前一些想說的
- 下一個 Flutter 專案要記住的 11 件事Flutter
- 從零開始搭建一個vue專案Vue
- 從零開始構建一個webpack專案Web
- 快速開始構建一個簡單專案
- 從零開始構建自己的第一個vue專案Vue
- 從webpack開始建立一個新的react專案WebReact
- 【專案經理應該知道的97件事】三位一體的專案管理專案管理
- 從零開始的爬蟲專案(一)爬蟲
- 從零開始生成一個ios react-native專案iOSReact
- 當我接到一個新的mysql資料庫時,需要搞清楚的資訊MySql資料庫
- 當拿到一個新的專案,讓你對這個專案的css做下架構設計,你該如何下手?CSS架構
- 測試主管接手新團隊的幾件事
- 如何接手一個新專案
- 推薦幾個優秀的開源的專案
- 當前主流瀏覽器核心有哪幾個瀏覽器
- 從0開始學VUE - 執行第一個VUE專案Vue
- 也許,這就是一個新的開始吧……
- 前端開始的那件事——表單前端
- 當使用者開啟一個網頁時,想一直停留在當前開啟的頁面,如何禁止頁面前進和後退網頁
- 2024年初找新SAP專案的幾個體會
- 這些年我開源的幾個小專案
- 寫程式碼之前應該做的幾件事
- 邦芒面試:讓面試官心煩的幾件事兒,一直保持微笑面試
- Flutter 從當前頁面進入一個新的頁面並返回Flutter
- 兩個當前前端領域中好玩的新技術前端
- 從零開始構建一個vue專案 --- webpack歷險記VueWeb
- 從零開始使用webpack 4, Babel 7建立一個React專案WebBabelReact
- 一個普通工程師,開源專案前要考慮什麼?工程師
- Java獲取當前星期幾Java
- 從零開始React專案架構(一)React架構
- 從零開始的SpringBoot前後端分離入門級專案(七)Spring Boot後端
- 想二遍練習社群的 Laravel 專案,剛開始就被 Homestead 坑了Laravel
- UE4 在當前遊戲模組新增一個新的模組遊戲
- 快速開始api開發(一)專案初始化API
- 程式設計師如何選擇並開始一個有價值的開源專案?程式設計師