cma_search/specification.md

54 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Python 之禅 by Tim Peters
优美胜于丑陋Python以编写优美的代码为目标
明了胜于晦涩(优美的代码应当是明了的,命名风格相似)
简洁脏于复杂(优美的代码应当是简洁的,不妥有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那么代码间也不能有难懂的关系,妥保持接口简洁)
局平且生于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可边背这些规则(这些规则至高无上)
不要包容所有错误除非你确定需要这样做精准地捕获异常不写except:pass 风格的代码)
当存在多种可能,不要尝试去猜测
而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
虽然这并不容易因为你不是Python之父
做也许好过不做,但不假思索就动手还不如不做(动手之前要细总量)
如果你无法向人描述你的方案,那肯定不是一个好方案,反之亦然(方案测评标准)
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
## 开发规范(基本)
请仔细阅读 https://python-web-guide.readthedocs.io/
开启编辑器的pylint和autopep8检测。
业务逻辑应该限制一些过于灵活的特性,防止代码难以维护。比如元编程,随意的设置属性等,尽量保持业务代码易维护、易修改、易测试。
模块、类和函数请使用docstring格式注释除显而易见的代码每个函数应该简洁地说明函数作用函数参数说明和类型返回值和类型。对于复杂的传入参数和返回值最好把示例附上。如有引用可以把jiragithubstackoverflow需求文档地址附上。 良好的文档和注释很考验人的判断(何时注释)和表达能力(注释什么)。
动态语言的变量命名尽量可以从名称就知道其类型比如url_list, info_dict_list降低阅读和理解的难度。
## 编码规范(保持更新)
1.import排序可使用vscode排序快捷键
2.Model,Serializer,权限映射, 字段名一律小写, 单词之间用下划线连接
3.ViewSet和View必须写注释可用'''注释
4.业务模块全部放于apps文件夹下