本篇文章主要是記錄整體調整Python資料統計分析專案規范性的程序,以及自己的一些思考,
為什么要調整?
- 主要是為了解決資料類程式不容易測驗發現錯誤的現狀,調整公共模塊出錯時拋出錯誤到業務層,便于報警模塊上傳錯誤資訊到kafka,最后能主動發出報警郵件,以及方便加入報警之外的其他程式埋點,
- 調整所有Python資料統計分析程式滿足pep8規范和Google Python風格規范,減少IDE提示,
- 完善代碼注釋和檔案便于后續維護(之前的開發人員是Erlang風格,主張不寫或者少寫注釋),
認清程式當前現狀
- 專案結構:目前整個資料統計分析專案的整體模式是各個以資料業務為導向的統計分析程式之間互相獨立,各個資料統計分析程式幾乎都依賴于底層的各個公共模塊,包括資料庫模塊,日志模塊,cdn相關模塊、心跳模塊、封裝的阿里云各個產品的模塊,封裝的網宿云各個產品模塊等等,
- 各個公共模塊和各個統計分析程式前前后后經過熟人撰寫,風格完全不同,有C++風格,有Erlang風格,有Python,在IDE中出現各種不符合規范的提示,
- 對于公共模塊中出現的錯誤,為了不影響業務層(原因是猜的),通常在本模塊就直接捕獲掉了,并沒有拋出到業務層,也沒有做過多處理,導致錯誤非常難以被發現,
- 有不少函式的回傳值在處理成功和處理失敗時,回傳值的個數并不一致,導致低概率程式出現各種unpack錯誤,這類多回傳值語言常見的bug錯誤全部需要調整,
確定程式調整原則
- 底層公共模塊回傳值需要保持個數一致,
- 和外界互動(資料庫,oss,日志服務等等)的公共模塊必須回傳是否執行成功的狀態,如果錯誤需要回傳錯誤狀態和錯誤原因到上一層,
- 公共模塊封裝的時候可以使用類,但是對外提供的功能介面優先使用函式形式,
- 所有的類統一調整成新式類,
- 洗掉公共模塊中的無效代碼,
- 完善注釋,
- 完善檔案,
記錄程式調整程序
- qk_agent_praser改名為qk_agent_parser,需要在使用到此模塊的地方進行一個調整,原因:拼寫錯誤需要及時調整,qk_agent_praser對外函式介面沒有調整,只有內部調整(減少split決議次數),對外無影響,
- check_up只改動少量格式(由于使用loop調度,程式退出后,存在sock系結的addr沒有釋放的問題,導致下次單元測驗時需要等待sock回收),
- qk_email提供函式式對外介面,因此需要修改監控程式中使用到郵件的部分代碼,
- qk_heartbeat增加兩個函式式對外介面,修改心跳間隔為可配置,因此使用心跳模塊需要調整呼叫方式,
- qk_ipdb調整類名和回傳值,使用到ip資料庫對應方法的地方都需要修改(ip查詢以及資料統計程式),
- 資料庫連接池初始化回傳值改動(回傳連接池是否成功創建標志和創建失敗的回傳),mysql_query的回傳值有修改,查詢失敗時不是回傳空串列而是回傳False, str(e),
- aliyun_oss:oss相關的回傳格式,全部修改(對應的使用到oss的程式改動較大),
- aliyun_cdn:回傳值中回傳請求狀態碼,請求text,
- aliyun_kafka:生產和消費都有回傳值,
- aliyun其余各個模塊回傳值都有修改,
- 網宿查詢帶寬模塊增加指定時間段查詢,但時間不宜過長,否則會出現資料不完全(網速介面導致),
- 根據公告模塊修改對應的呼叫方法
- 調整所有的模塊、類、方法、函式的注釋,明確引數含義和回傳值
- 補全檔案
思考與感悟
或許以上的這些調整在現在看來是理所當然,是一開始寫程式的時候就應該全部考慮到的,但是現實卻由于各種原因,導致程式成為一個需要整體調整的鬼樣子,
在調整的程序中,也會發現之前指定的一些調整原則存在某種程度的問題,導致最后棄用,比如其中的一個原則:
- 業務層需要全部封裝成類的形式,不能是純函式,方便MixIn新增的額外功能,比如資料埋點介面、添加日志、屬性檢查等等任何你想MixIn的功能
乍一想來這個原則帶來的好處很多,但是實際上帶來的改動很大,這包括整個程式結構以及程式的表現形式和呼叫方法,最侄訓是棄用了這項原則,
最后,所有的開發人員都應該盡可能的參與需求分析,理解需求,明確自己要做的目的,牢記需求分析時女神李若彤的模樣,而不是到驗收交付時小籠包陳妍希的模樣,

參考:
Google-Python風格規范
記得幫我點贊哦!
精心整理了計算機各個方向的從入門、進階、實戰的視頻課程和電子書,按照目錄合理分類,總能找到你需要的學習資料,還在等什么?快去關注下載吧!!!

念念不忘,必有回響,小伙伴們幫我點個贊吧,非常感謝,
我是職場亮哥,YY高級軟體工程師、四年作業經驗,拒絕咸魚爭當龍頭的斜杠程式員,
聽我說,進步多,程式人生一把梭
如果有幸能幫到你,請幫我點個【贊】,給個關注,如果能順帶評論給個鼓勵,將不勝感激,
職場亮哥文章串列:更多文章

本人所有文章、回答都與著作權保護平臺有合作,著作權歸職場亮哥所有,未經授權,轉載必究!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/233384.html
標籤:Python
下一篇:三招搞定你的ubuntu安全問題
