###1. pyenv
pyenv是一个使用简单的python版本管理工具,可以让你简单的切换python版本。python2.x在5年后将不在更新维护,所以是时候熟悉python3了!
那么如何方便的即用python2又可以在方便的切换到python3呢?上pyenv。当然,还有一个叫做p的工具也可以,不过比较之下我更喜欢pyenv,pyenv更强大些,但是p切换版本很方便。
安装:
$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bas
......总的来说还是以PEP8为标准。
####代码检查
使用flake8做代码检查
安装:`sudo pip install flake8`
flake8配置`~/.config/flake8`:
max-line-length = 120
ignore = F403
- 每行最长为120个字符,不再是默认的79
- 忽略F403但尽量避免使用(`from module import *`)
需要flake8忽略的明确写上 `# flake8: noqa`
####代码格式化
使用yapf自动对代码进行PEP8格式化:
......先要安装swig不然直接安装会报错
# Cleanup
pip uninstall m2crypto
brew uninstall swig --force
# Install swig 3.0.4 and compile m2crypto
brew update
brew install homebrew/versions/swig304
brew link homebrew/versions/swig304
pip install m2crypto
结构是这样的
project_dir
|__ other_dirs
|__ apps
| |__ app1
| | |__ __init__.py
| | |__ script1.py
| | |__ script2.py
| |__ app2
| |__ __init__.py
| |__ script1.py
|__ server.py
|__ settings.py
|__ other_files
APP灰度发布策略
:::python
def gray_publish_check(app_lastest_pub_time, device_id):
'''灰度发布策略:
将device_id进行hash后转为十进制数,若想要10%的用户收到升级提示,
则需保证这个十进制数的最后一位为0-9中固定的一个数(每个数出现的概率为1/10,按0-9的顺序)
若想要30%的用户收到提示则保证最后一个数是0-9中的某三个数中之一。
若1%,则同理的限定末尾两个数,1/10 * 1/10
####第一种比较方法(StrictVersion):
StrictVersion是由`.`将一串带有预发布标签的数字分隔为两个或三个部分的格式,预发布标签的字母只能是`a`或者`b`加数字版本号,而且只能在最末尾。预发布a版本低于b版本,并且预发布版本永远小于正式发布版本。
**合法格式**:
0.4 0.4.0 (相同版本)
0.4.1
0.5a1 (预发布版本a1,小于0.5,即0.5版本更新)
0.5b3
0.5
0.9.6