最喜歡的還是 django 的 orm 框架。公司的專案都是前後分離的,使用 django 做後端介面開發還是很高效的。
特此總結一些 django 開發的小經驗。先說一些最最基礎的吧。
使用 virtualenv 隔離開發環境
使用 pip 管理專案依賴,主要就是乙個小技巧,使用 pip freeze > requirements.txt 來儲存依賴的模組和版本
使用 gitignore.io 這個**提供的 .gitignore 檔案管理**庫檔案
打包和發布
專案的打包和發布用的 docker,django 專案的 dockerfile 特別簡單:
from python:3.5
copy ./requirements.txt /src
workdir /src
run pip install -r requirements.txt
copy . /src
expose
cmd uwsgi --http :--wsgi-file
這乙個 dockerfile 模板可以通吃 80% 的 django 專案了。
日誌配置
既然用 docker,就放棄了把日誌寫入檔案,直接寫到標準輸出。
# settings.py
# ...
logging =
},'handlers': ,
},'loggers': ,
},}
自動化測試
既然是純後端專案,工程師完全可以通過自動化測試來檢測自己的**。django 本身對測試提供了很好的支援,可以通過 sqlite 來搭建測試資料庫,還有基於記憶體的快取,做測試不會增加對其他系統的依賴。開發起來事半功倍。
除了要寫自動化測試**,還要能統計測試覆蓋率。目前我們用的是 coverage.py 這個工具,說實話沒有 node.js 的 istanbul 好用,輸出的報告沒有 istanbul 詳細和易讀。不過用來檢查 「死**」 還是夠用的。
針對 http **的測試
這塊一般是用 responses 這個模組來 mock http 請求。
定時任務
有一些 django 專案需要做一些定時任務。首先,絕對不用 linux 內建的 crontab。主要的問題還是維護的成本高,沒準哪天就把這個配置給忘了。
我們現在方式都是借助 django command 的功能,將定時任務封裝成乙個 command。在這個 command 裡面執行乙個 scheduler。就像下面這樣:
import schedule
from django.core.management.base import basecommand
class command(basecommand):
def handle(self, *args, **kwargs):
schedule.every(45).minutes.do(do_this)
schedule.every().day.at('04:00').do(do_that)
while true:
schedule.run_pending()
time.sleep(1)
開發Deluxems的一些經驗總結
1.用三元運算子實現新聞部分顯示 eval newcontent tostring length 25?eval newcontent tostring substring 0,25 eval newcontent tostring 2.貨幣驗證 可以輸入整數和帶兩位小數的數字 0 9 0 9 0 ...
MTK開發中一些經驗總結
1.在確定你的mtk工程完整而且在模擬器和真機上能正常執行 之前,不要開始工作。2.mtk開發 c是唯一選擇,不要試圖用把c 工程移植到mtk平台。3.ads c c compiler不同的編譯選項可能導致 的效能差異很大。ads使用armv4指令集,而真機是thumb指令集。4.mmi gui的工...
android 開發中總結的一些經驗
the field contacts.peoplecolumns.name is deprecated android 優化 requested window android.os.binderproxy 450b2f48 does not exist json 中文 亂碼 編碼 問題解決 判斷自己...