- header 加载顺序需要注意
部分:一般先是加载python自带的package,然后才是加载自己写的module。所以
ddgun_seq.py 里面 from log import logger 应该放在最后面。 - 自己写的 module 尽量不要和自带库同名,比如你的log module。
- 不建议将PROF 的路径改到你的个人目录,这样有潜在风险。
- 下次开发项目记得 git clone 别人的主分支,不要 git init
自建一个库,这样容易合不进去 - 使用 .gitignore 来去除不必要文件的跟踪
- 请重新参看 wiki 里我们的格式规范,你没有按照我们的规范来命名 git commit
function docstring 可以在最开始的时候空着,因为在代码迭代过程中会不断修改变量,但是记得写上fake docstring,比如,“”“function docstring”“”。在代码稳定后需要写到 wiki 里
module docstring,同上
class docstring 同上
function 里面尽量避免出现特定数字,给其他维护者理解带来困难。如果是特殊意义的常量,请在文件头部使用常量形式定义,比如 FILE_NAME=“my_name”, 或者写进 json 格式的 配置文件中,进行外部加载。最好的方式是单写一个 Constants 之类的类。
写代码不费纸张,所以避免所有代码都直接堆在一起;多使用空格和空行,给代码阅读者一种直接美观的感觉。
对齐 tab 是 4 个空格,不是 2 个。请务必保持一致。
每个代码里一般情况下都需要有 logging 系统,用来监督代码的运行情况,并记录一些可能遗漏的信息。
如果一个 function 没有返回的变量值,也建议写 return,使用 return None 完成
在做一般性的文件和字符串处理任务时,可以使用 Python 的 list 和 array。但是如果是数值计算负荷大的程序,请基本杜绝使用 list.append,pandas 之类等又慢又费内存的包,最起码也使用 list comprehension,向量化表达。最好使用 numpy 和 cupy 等机器编程语言写成的包。Python 的大部分原包在提供了便利性的同时,极大地损失了计算性能。
如果是纯计算的程序,请用 cython,或者用 C 写然后直接调用库
建议在测试完代码的正确性后用 pylint 检查代码的一些潜在问题,并进行修改。基本要求代码的评分在8.0左右。
如果是独立的编程任务,请处理成 name == main: 形式;如果是部门内部的子任务,请直接写成独立的调用的1个 function。
尽最大可能避免代码中的隐形格式,比如代码末尾出现的 tailing 空格;空行中的 trailing 。这会给 GIT 版本控制造成麻烦
程序中的算法如果很绕,请重新思考,并采用简单的直觉化的逻辑实现。不然会给其他人维护带来很大的麻烦。
对于存在耗内存的数据加载,建议采用 iterator 和 generator 处理方式
请不要使用中文,不要使用中文,不要使用中文; 不管是在变量命令,注释还是日志中。
请使用 Git 来完成版本控制。版本控制中,请使用 labels: [init] [debug] [feature] [version] [misc] [release] [merge] 来做标记区分