Python老兵的新征程
用Python已經有近9年了, 大多數時候都是用它來做些內部使用的小工具,寫的都比較隨意(唯一的正式項目經歷,就是寫一個用戶評論搜索引擎,那個網站已經關閉了,當年的頁面可在archive.org看到)。 做這些開發時,開發的方法思路其實和十來年前沒啥差別,當然有了些更好的輔助工具,例如Git,Pycharm等, 但主要方法沒啥大變化。 這周用Python做另一個正式項目,嘗試采用了和以前都不一樣的方法,通過這一個星期學習到了不少新東西。
- 用pyenv來管理python的不同版本,
因為項目用了Python 3.5, 而系統是Python 2.7 - 用了Python 3.5的Type Hints
- 用PyScaffold初始化了項目
以前也用Django來生成過web項目,但非web項目還是第一次用生成器生成。 - 用commitizen來寫git commit message, 這樣能夠用cz-conventional-changelog自動生成change log
- 用pylint,flake8做代碼檢查
- 用tox做測試
- 在Git pre commit hook中加入pylint,flake8,tox檢查
- 用SQLAlchemy來做ORM, 用Alembic做數據庫的版本升級管理
以前都是直接寫SQL -_-;,當然是參數化的。 這次先用phpMyAdmin直接在mysql上設計數據表,然后用sqlacodegen生成model代碼,再用Alembic做版本管理。 - 用Travis做系統集成
- 用pip做依賴管理
- 用pip freeze > requirements.txt 來記錄依賴
- 再用pip install -r requirements.txt來重建依賴環境
- 正在研究virtualenv以實現依賴的隔離
- 另:以前研究過Docker,遇到些問題沒能搞定,有經驗的還請指點一二
- 和Slack集成
現在已經能從Slack里看到Github的提交,Pull request提醒,并能看到Travis持續進程測試結果。上線時還要實現從聊天頻道里直接下指令部署。
感覺現在開發的思想,哲學都比起20年前,甚至比起10年前都有了根本的改變,我們正迎來程序開發上的工業革命,生為這個時代的程序員是何其的幸福啊 :)。
來自:掃地老僧
本文由用戶 kingbill 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!