项目情况
各自项目发布流程和任务管理方式,工作到什么阶段,掌握工作节奏
系统设计情况
1.明确需求
输入和输出以及功能
经常会发生改变的值和固定的值
2.各个模块的构成
01.日志记录系统
日志--显示和存入文档
# 使用FileHandler输出到文件
file = logging.FileHandler('log.txt')
# 标准输出
stream = logging.StreamHandler()
# 添加两个Handler
logger.addHandler(file)
logger.addHandler(stream)
def __init__(self, name, level=log_level, stream=True, file=True):
--文档 日志轮询
02.配置项
01.使用文本配置文件管理常量
02.git secret 敏感信息(密码,token,证书等)的管理
03.配置文件的格式
采用json 的方式
采用config 文件的方式--
03.代码的处理
代码规范
代码的异常处理机制
统一命名规范
功能模块划分:使用框架或模仿文件夹结构,嵌套层数不要太多
适度提前-但不要太过超前
最初的设计中充分考虑到未来的变化,避免因为频繁的变化导致软件复杂度增加和质量的下降
04.数据库
考虑数据库的读写以及并发情况--数据处理
考虑多个数据库的读写
3.文档和注释
1.注释
2.ReadMe
软件定位,软件的基本功能
运行代码的方法:安装环境,启动命令等
如何使用
健壮的程序
健壮的程序,需要考虑失败并制定重试策略
需要考虑输入不是标准输入的情况,例如: 字典的key不存在的情况
不确定某段代码能否成功执行,往往这个地方就需要使用异常处理
结果的记录
过程的记录和监测
使用数据库记录执行的过程数据和结果数据
使用日志,记录异常原因
异常处理
考虑网络故障、靠谱的调试跟踪和语法分析
捕捉异常可以使用try/except语句
使用raise语句自己触发异常
涉及到网络的情况--有时候会出现请求失败或等待超时的情况,这就需要重试
有时候会部分失败,那就要记录失败的部分,并做失败的部分尝试重新处理,
超过一定时间和尝试次数后,如果还没有成功,则记录异常原因便于排查故障
设置超时 timeout
失败时重试 retry_strategy
网络处理某一些文件夹的情况
网络链接的情况
使用第三方API时,通常需要验证返回的响应是否确实有效-校验请求
Python项目情况
1.第三方工具的安装和配置
PATH=/opt/tools:$PATH
export PATH
PYTHONPATH=/opt/code/DataDeal:$PYTHONPATH
export PYTHONPATH
01.- export VERSION=`echo ${MODULE_NAME}|cut -d . -f 3-`
- eval MODULE=\${${MODULE_NAME}_VERSION} && export MODULE
- if [ "${MODULE}" == "" ]; then export MODULE=test; fi
pip的
pip list
pip search pandas
pip show numpy
pip download flask==1.1.1
pip install
pip uninstall package
pip freeze > requirements.txt
pip install --upgrade package# 或者pip install -U package
pip install -U pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple
开发完成后,用pip给某项目安装了相应的库之后,去freeze=冻结:
pip freeze > requirements.txt
即把当前 Python中安装的 所有的库的信息,写入到一个文本文件中。表示当前Python环境所需的库的信息。
迁移项目-初定。恢复之前项目的环境
pip install -r requirements.txt
即可自动安装所依赖的,各种Python的库,恢复了之前的项目的Python环境。
python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --default-timeout=1000 -r requirements.txt