論程序員的懶

系統是部署在AWS上的大型分佈式系統。有的時候出問題找不到原因, 運維的兄弟特地部署了debug role.

這個debug role會把debug log 全部打開,這樣可以方便復現和查找問題。

但往往有些時候,即使開了debug role, 也沒有debug log。 還得現場改代碼,重新部署,及其浪費時間。

原因是什麼, 懶。

看下面的代碼。(爲了方便示例,隱去了所以複製邏輯)

import time
import logging

def dotask1():
    return
def dotask2():
    return
def dotask3():
    return

def dosomething():
    return
if __name__ == '__main__':
    logging.debug("Main begin..")
    flag = 1
    '''suppose lots of operations on variable flag, and now we want to check flag'''
    if (flag==1):
        dotask1()
    elif (flag==2):
        dotask2()
    else :
        dotask3()

if, elif, else語句中完全沒有debug log,這就導致了開發者自己也要搞好半天才能知道到底走到了那個分支。其實只要在每個分支後面加入debug語句,找問題會變得非常簡單。


debug 語句再多都不爲過。

不能忘的debug 語句:

  1. 函數入口,出口
  2. if else 分支語句
  3. 一些關鍵變量值的改變



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章