zoukankan      html  css  js  c++  java
  • 再封裝

            CM Backup快速開發暫緩了一下,有機會寫一下這段時間以來都幹了些什麼(我總感覺老闆覺得我非常清閒。但真的忙趴了)。今晚就不作什麼大總結了,針對一個問題談點心事。

            項目须要,用到了Amazon的服務。自然python也就用到了boto(想着不用boto的就不用往下看了,因爲你什麼輪子都自己動手,也沒有所謂的再封裝了)。

            用到了boto。然後項目不斷地變大,調用boto的地方也就從1個、兩個變到了10幾個。突如其來的一個需求,须要橫向改动代碼,也就類似什麼Java的什麼AOP思想吧,我懶得到處改一遍(也怕出錯)。所以便想着寫一個monkey patch。patch掉那個調用。可惜這個調用真的太複雜了。我在使用boto的時候是會先生成一個類1。再調用類生成一個類2,然後再調用該類2的一個方法,類和方法都是各帶参數。結果是,寫完monkey patch。由於調用的方法會又一次一次調用自己,使得這個monkey patch之後的方法會調用兩次。好吧。非常難描写叙述清楚。就這樣吧。

            反正就是monkey patch失敗,仅仅能手動加了10幾行代碼。幸好沒改錯什麼。也做了自動化测試。


            經一事長一智,對於多次依賴外部模塊庫類函數等,應該要自己對這個東東再封裝一次,然後調用自己封裝好的。這樣好處太多了。這樣切片更好地爲日後的統一改动做準備。形成了一個統一的調用接口,像ORM、DAL一樣。做那個層面上的改动,更不影響到各個業務流程。

  • 相关阅读:
    【转】python装饰器
    【原】python异步学习
    【转】Docker学习_本地/容器文件互传(5)
    【原】容灾/容错概念理解
    【原】thinkphp实现存储session至redis
    【原】thinkphp修改Redis操作类,支持选择数据库功能及添加其他方法
    高性能CSS(三)
    Free Code Camp社区对数百计编程学习者进行的统计希望告诉你什么?
    最精简24L01程序--发送
    金日
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7261277.html
Copyright © 2011-2022 走看看