提高程式碼可維護性(2)---日誌列印

jiezhu2007發表於2009-11-21

    程式碼維護手段有很多種,有單步,訊息跟蹤,棧列印,下面重點講講日誌列印。

    網上看到Python的八榮八恥如下:

以動手實踐為榮 , 以只看不練為恥;

以空格縮排為榮 , 以製表縮排為恥;
以單元測試為榮 , 以人工測試為恥;

以模組複用為榮 , 以複製貼上為恥;
以多型應用為榮 , 以分支判斷為恥;
以Pythonic為榮 , 以冗餘拖沓為恥;
以總結分享為榮 , 以跪求其解為恥;
    第二條就是以列印日誌為榮,以單步跟蹤為恥。也不知道是否所有人都能接受這一點。
但是往往大部分時候,對程式的維護人員來說,日誌列印是問題定位的最後一根救命稻草。
單步跟蹤不是什麼條件下都可以的,尤其是一些難以重現的BUG或者測試部的環境。此時一
個良好的列印顯得尤為珍貴。
    日誌應該是維護程式碼中最經濟,快捷的方式。實現特別容易,但是一個良好的日誌列印
卻不是一個簡單的活。
    列印作為維護程式碼,最主要的作用就是快捷的收集恰當的資訊以方便定位。資訊量過大,
讓定位的人困擾,資訊量過小, 沒有有效的資訊。兩者都不行。所以列印不是隨便加就
能加好的。要加好列印資訊,個人體會要遵守一些基本原則。
    1.像列印之類的維護程式碼,應該納入設計階段。
    有一句話叫 。這句話從一個側面就提出來,我們要寫容易維護的程式碼
,那麼在設計階段就應該充分考慮程式碼維護問題。比如應該設計格式統一的日誌列印
方法,還比如在業務邏輯的關鍵點,一定要列印等。
    只有在設計階段統一考慮維護程式碼問題,才能避免各個開發人員各自為政。出現風格不統一的列印,
整個列印才更有整體邏輯性和整體性。
    2.列印一定要分級別
    按道理說這個應該是設計者就定下來的,多少級別,級別劃分(如劃分為fata,error,debug,
infor等級別)。但是希望開發著一定要理解這一點。列印如果不分級別,一團糟,
那麼程式碼維護人員很容易被淹沒在過多的日誌列印中。不好的列印還不如沒有列印。
    3.列印程式碼同樣需要維護
  程式碼需要不斷的更新維護,同樣日誌列印程式碼也是一樣的。要不斷根據業務的發展,更新維護程式碼。
這樣才能保證列印日誌是有效的。
  總之,通過精心設計,良好維護的日誌列印一定會為程式碼的維護性增色不少!
    
  
 
    

相關文章