1、基础三件套
(1)写文档
(2)编辑注释 包括对方法或函数的使用与返回声明
(3)命名风格统一与适用
2、定义类和函数模块
(1)复用性
(2)项目层次性,避免代码在同一处,造成臃肿
(3)接口性开发,方便以数据角度考虑功能实现和安全处理,也方便团队合作
(4)类方便数据管理
3、定义方法
形式上分类
(1)抽出复用部分定义为方法
操作对象是不可变类型,或者同一对象
操作对象是不同对象,但是属于同一类或者关联。在调用方法前简单处理,通过形参接收后无区别
操作对象是不同对象,有较多差异,但也有共同功能代码。接收后,通过条件控制,分别进行处理,然后执行共同部分
(2)功能明确、代码量大的部分抽出定义为方法
目的是使每个方法中的业务流程清晰明确,可以包含相对少量的业务代码,而实现相对复杂的功能的代码则放到方法中。
需要关心的是该业务方法的输入与输出,而具体实现并不那么重要
4、循环的利用
如果多行代码调用的方法相同,只是参数不同,或者都是同一属性赋值,那么可以考虑使用循环进行迭代。
将值抽取保存到list中,循环处理。
5、采用进制计算、状态量控制,减少迭代方法的声明和使用
6、lambda替代单一语句的方法或函数
7、变量处理
(1)方法中的变量尽量声明为self类型
(2)尽量统一为str类型,如果需要其他类型,可以在使用时转换
(3)方法中使用完变量,可以考虑将其初始化为None,以节约内存
(4)使用is...else在一行代码进行赋值
(5)适用None进行赋值,表示未赋具体值的情况,与空字符串、0、False区分
(6)对于不确定个数的、场景类似的,考虑采用list存储,而非直接的变量,以减少命名空间的占用和方便调用
(7)尽量避免高频创建大对象,考虑进行复用。
8、with open
9、if判断
(1)合并条件判断,除了if可以多条件,其他elif尽量单条件判断
避免if ... and ... elif ... and ...的声明,而是if ... and ... else ...更好。
(2)结合实际,灵活应用not(or)、and与not(and)、or,主要考虑理解的便利
(3)嵌套由于elif并列
大的条件判断内包含小的条件判断,比多个条件判断并列更好,即if嵌套由于elif并列,即优于执行,也方便注释
(4)if并列由于if嵌套
if...if...优于if...elif,减轻嵌套层次,方便阅读。顺序执行,类似于接口开发理念,上一步的数据到下一步的数据,逻辑更清晰。
(5)return关键字
如果条件符合或不符合,使用return直接返回,而不一定必须用最后的返回语句。这样操作,逻辑清晰
10、参数固定化
比如可选颜色,过滤可配置项
11、多线程与多线程的同步锁
需要有多线程应用的思维,比如用于处理单个的请求或者爆破的多个请求,以避免GUI卡顿或者提供效率
当然,也要注意多线程的一些问题,比如执行顺序,以及同步问题。
在需要同步的地方采用同步锁控制。
12、字符串的格式化由于字符串拼接
13、配置大于代码
允许使用时,直接调用配置进行工作
14、数据的持久化
对于需要持续使用的变量,在内存中保存。
进一步的,可以考虑将数据写入文件保存。
15、数据检查与处理
(1)应当在数据应用前,进行细致的检查,当然,也不必过度,需要在成本(代码冗余、必要性、时间和精力)和效果间平衡。
(2)执行异常,应该考虑try except捕获或者抛出,具体分析需求
(3)异常发生或者数据检查错误时,应当进行标签提示、弹窗提示、输出文本框提示、日志提示等,以及考虑return返回、continue继续或向后执行等
16、编码
读取文件或读取http响应,默认采用utf-8,发生错误再尝试gbk,再次错误则使用iso-8859-1
标签:...,elif,经验,项目,方法,代码,考虑,多线程,优化 From: https://www.cnblogs.com/wd404/p/17358041.html