開始一個新專案前,應當想清楚的幾件事兒

weixin_34337265發表於2019-01-05

如果覺得有價值,請隨意轉載,只需附上原文地址和 “簡書作者milter”字樣即可

在做一個新專案時,我們往往喜歡快速做出一個版本,迅速上線,不斷迭代。這是網際網路推崇的文化。但是,我還是覺得,以下幾點,最好還是想清楚一點,在一開始儘可能做好一點,這樣會更有利於後續的快速迭代,也就是磨刀不誤砍柴工。

1、log怎麼記

記log看似很平常的事兒,但在開始一個新專案,尤其是探索性的新專案時,認真地規劃一下log的記錄是很重要的。因為這是以後分析問題,解決問題的重要手段。如果一開始記錄的很隨意,那麼,後面分析統計時很可能會頭疼。根據我自己的經驗,規劃怎麼記log時,應當著重從以下幾點考慮:

  • 專案的資料流程節點要記
    一個專案總是要處理輸入資料,經過處理後給出輸出資料的,這個過程中的關鍵節點資料狀態應當記錄下來。
    -- 輸入的原始資料要記錄下來
    -- 資料關鍵的中間處理結果要記錄下來
    -- 請求第三方服務的處理結果要記錄下來
    -- 最後的輸出要記錄下來

  • log中資料的基本粒度要細
    比如資料時間、來源、使用者、session、請求次序、甚至上一次請求的關鍵資訊等。有些欄位可能需要上游傳過來,這個在一開始定義介面時就要考慮清楚,讓對方傳過來,因為介面一旦確定,就不好修改了。一個總的標準就是寧多勿少。

  • log中資料各項的格式規範要定義好
    比如時間、手機號、還有列舉類引數的取值名稱等,都要在一開始就清楚地定義好記錄標準,以後一直按照標準執行,方便以後資料的處理

2、異常的定義

專案中可能出現哪些異常,都要提前考慮清楚,考慮得越詳細越好。最好定義一套自己的異常體系,將自己的異常、上游的異常、第三方應用的異常都清楚地定義好。並認真考慮每種異常的處理辦法,是返回錯誤碼,還是直接崩潰?最後,這些都要記錄在log中。

如果在開始專案前,對可能出現的異常難以考慮周全,建議在實施專案的過程中及時進行完善。

3、關鍵指標報表

專案總是要迭代的,如何知道迭代後問題確實解決了或者效果確實變好了?這就需要對專案的關鍵衡量指標進行度量,要在一開始就想清楚這些關鍵指標是什麼,並做好報表。指標好比燈塔和KPI,沒有明確的衡量指標,就失去了優化的方向。
指標分兩類,一類是技術指標,比如效能、記憶體佔用、執行緒數、機器負載等;另一類是業務指標,這依據專案的不同而不同。

4、資料和程式碼的同步

許多專案都要使用一些資料提供服務,這些資料也是變化的。這就涉及到程式碼和資料同步問題。因為如果不同步,當指標有異常變化時,就很難說是程式碼改動造成的還是資料改動造成的。

資料比較小時,可以直接用git,和程式碼放在一起。如果資料量比較大,那麼就需要設計一套資料的版本控制框架,可以很簡單,也可以很複雜,取決於自己的專案特點和資料的迭代頻率。

5、介面的定義要留有餘地

最好是每個介面都留一個字串型別的額外引數,開發到後期,如果需要上游增加新的資料,可以讓上游寫成一個json字串放在這個引數中。這是一個取巧的辦法,正規的辦法肯定是升級介面。即使升級介面,也不建議直接在原介面上改,建議另外建一個介面的2.0版本,這樣方便相容。當然,這要求對介面中共同的程式碼要抽取出來,可以在新介面中最大程度的複用。

相關文章