代码规范
代码规范是最重要的一个点,写代码很容易,写好代码很难。涉及代码规范方面的问题,大家写代码的时候多注意下。
针对我们同学写python代码时经常出现的问题,总结了以下规范:
- 命名规范:
- 类名——驼峰方式命名,例:AnyClass。
- 方法名、变量名、模块名——全小写字母加下划线组成,例:any_method, any_variable。
- 代码格式化:提交的每一个代码文件都需要经过格式化,并推荐使用代码检查插件,养成好的编码习惯:black或pep8。
- 注释规划化:
- 注释中#后面要加空格,中文和英文之间要加空格,例:# 这是一个包含 en words 的注释。
- 标点符号统一用英文的标点符号,不用中文的标点符号。
- 常量化:一旦一个字符串值出现过两次及以上,就要提取成有意义的常量。常量名——全大写英文字母加下划线组成,例:ENV_NAME = "test"。
- 配置化:一些经常需要手动修改的常量值提取到配置系统中,例:ENV_NAME = get_from_apollo_conf("env_name")。
- 引用分组:自带库中模块引用一组、外部库中模块引用一组、公司内部库中模块引用一组、当前项目内部模块引用一组。
- 可读性(多花一些时间去思考如何命名是值得的):
- 方法名要和方法实现保持一致性原则。一些反例:
- 方法名为query_config(self),实际的动作为self.config = xxx,query应该改成init。
- 减少不必要的省略。例如:send_message不要省略为send_m。
- 类名和方法名要区分开:
- 类名一般以名词结尾。例如:XxxManager, XxxClient, XxxBuilder。
- 方法名一般以动词开头。例如:query_xxx, init_xxx, get_xxx, update_xxx, add_xxx。
- 方法名要和方法实现保持一致性原则。一些反例:
- 职责单一:方法的实现要遵从高内聚、低耦合、职责单一原则。一些反例:
- 方法名为query_xxx,实际的逻辑为先初始化配置、再进行了一些操作对某些状态进行了更新、再查询了xxx,实际这个方法中包含了很多步骤,不只是query。既不满足一致性原则,也不满足职责单一原则。
日志规范
- 日志内容:
- 全部由小写英文字母+英文字符+空格组成,不使用中文及特殊格式的标点符号。
- 不使用连续的空格。
- 日志等级:
- 避免使用错误的级别输出日志。比如:用info级别的日志输出error信息。
- debug级别:记录调适性质的日志。比如:输入输出、接口返回值等。
- info级别:记录程序关键运行阶段以及关键状态变化的日志。
- warn级别:记录告警级别的日志。比如:走到了某个代码路径分支,虽然不代表错误,但需要引起重视。
- error级别:记录错误、异常级别的日志。
- fatal级别:记录崩溃性的日志。
- 避免使用错误的级别输出日志。比如:用info级别的日志输出error信息。
- 日志时间格式(精确到毫秒):yyyy-MM-dd HH:mm:ss.SSS
Python安装
快速下载python
国内python3.8.10版本下载地址:https://mirrors.huaweicloud.com/python/3.8.10/
安装pyenv
下载并安装pyenv:
# 下载 pyenv git clone https://github.com/pyenv/pyenv.git ~/.pyenv # bash 配置 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc # zsh 配置 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'export PATH="$PYENV_ROOT/shims:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc # 配置生效 exec $SHELL -l # 查看 pyenv 版本 pyenv --version
安装python
Linux centos下通过pyenv安装python过程:
# 安装依赖 yum install -y gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel ncurses-devel libffi-devel # 下载 python3.8.10 并移到 pyenv 的缓存目录下 wget https://cdn.npmmirror.com/binaries/python/3.8.10/Python-3.8.10.tar.xz mkdir ~/.pyenv/cache mv Python-3.8.10.tar.xz ~/.pyenv/cache/ # 安装 python3.8.10 pyenv install 3.8.10 pyenv global 3.8.10 # 查看 python 版本 python -V
给pip换源
将pip永久更换走国内清华源(加快pip下载速度):pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
将pip临时更换走公司内部源:
- 公司内部工具库:pip install -i 公司内部源地址 库名 --upgrade