Python老兵的新征程

用Python已经有近9年了, 大多数时候都是用它来做些内部使用的小工具,写的都比较随意(唯一的正式项目经历,就是写一个用户评论搜索引擎,那个网站已经关闭了,当年的页面可在archive.org看到)。 做这些开发时,开发的方法思路其实和十来年前没啥差别,当然有了些更好的辅助工具,例如Git,Pycharm等, 但主要方法没啥大变化。 这周用Python做另一个正式项目,尝试采用了和以前都不一样的方法,通过这一个星期学习到了不少新东西。

  1. pyenv来管理python的不同版本,
    因为项目用了Python 3.5, 而系统是Python 2.7
  2. 用了Python 3.5的Type Hints
  3. PyScaffold初始化了项目
    以前也用Django来生成过web项目,但非web项目还是第一次用生成器生成。
  4. commitizen来写git commit message, 这样能够用cz-conventional-changelog自动生成change log
  5. pylintflake8做代码检查
  6. tox做测试
  7. 在Git pre commit hook中加入pylint,flake8,tox检查
  8. SQLAlchemy来做ORM, 用Alembic做数据库的版本升级管理
    以前都是直接写SQL -_-;,当然是参数化的。 这次先用phpMyAdmin直接在mysql上设计数据表,然后用sqlacodegen生成model代码,再用Alembic做版本管理。
  9. Travis做系统集成
  10. pip做依赖管理
    1. 用pip freeze > requirements.txt 来记录依赖
    2. 再用pip install -r requirements.txt来重建依赖环境
    3. 正在研究virtualenv以实现依赖的隔离
    4. 另:以前研究过Docker,遇到些问题没能搞定,有经验的还请指点一二
  11. Slack集成
    现在已经能从Slack里看到Github的提交,Pull request提醒,并能看到Travis持续进程测试结果。上线时还要实现从聊天频道里直接下指令部署。

感觉现在开发的思想,哲学都比起20年前,甚至比起10年前都有了根本的改变,我们正迎来程序开发上的工业革命,生为这个时代的程序员是何其的幸福啊 :)。

Tags:

categories IT

2 Comments

Other Links to this Post

RSS feed for comments on this post. TrackBack URI

Leave a comment

  • :em48:
  • :em32:
  • :em34:
  • :em14:
  • :em72:
  • :em37:
  • :em53:
  • :em56:
  • :em25:
  • :em39:
  • :em04:
  • :em13:
  • :em38:
  • :em20:
  • :em41:
  • :em31:
  • :em16:
  • :em45:
  • :em21:
  • :em43:
  • :em12:
  • :em71:
  • :em11:
  • :em23:
  • :em46:
  • :em66:
  • :em47:
  • :em02:
  • :em49:
  • :em54:
  • :em27:
  • :em36:
  • :em35:
  • :em15:
  • :em05:
  • :em26:
  • :em44:
  • :em06:
  • :em64:
  • :em01:
  • :em55:
  • :em70:
  • :em28:
  • :em40:
  • :em67:
  • :em18:
  • :em63:
  • :em09:
  • :em10:
  • :em62:
  • :em69:
  • :em03:
  • :em08:
  • :em33:
  • :em42:
  • :em52:
  • :em51:
  • :em68:
  • :em30:
  • :em65:
  • :em59:
  • :em29:
  • :em07:
  • :em50:
  • :em17:
  • :em24:
  • :em57:
  • :em22:
  • :em19:
  • :em60:
  • :em61:
  • :em58: