起因
最近在公司的任務(wù)是寫一些簡單的運(yùn)營工具,因為是很小的工具,所以就用了github上面的一個開源項目flask-admin,可以省去很多的事情。
但是,這個開源項目是個人維護(hù)的項目,所以文檔相對簡單,網(wǎng)上的資料相對較少,遇到一些產(chǎn)品經(jīng)理要求具體功能并不能直接通過文檔和例子中的代碼找到答案。所以,我只能通過閱讀源代碼,重寫相關(guān)類以及方法實(shí)現(xiàn)了具體的需求。在這個過程中,學(xué)習(xí)到了一些東西,同時整理了自己以前的一些收獲,然后分享給大家,有不對的地方還望海涵、指正。
閱讀代碼有助于處理bug
閱讀代碼是一項更重要的技能,在大學(xué)編程語言的考試中也有相關(guān)的考察——代碼填空、代碼查錯。在工作中用到的地方更多:
查找bug
參與到已有的項目
接手別人的工作
開源項目的二次開發(fā)
python是解釋性語言,不需要反編譯就可以看到源代碼,利于查找bug。在找bug的時候,最重要的是定位bug的位置,比較直觀的bug是通過閱讀異常可以定位到bug的位置。而有的異常信息,例如:AttributeError: 'NoneType' object has no attribute 'get'
會讓你覺得很費(fèi)解,因為你本以為這個肯定有值,怎么就是None了呢?這個時候,你可以在異常定位的位置前面,把這個object的值打印出來,重新調(diào)試。察看