首页 > 其他分享 >项目优化经验

项目优化经验

时间:2023-04-27 09:45:55浏览次数:32  
标签:... elif 经验 项目 方法 代码 考虑 多线程 优化

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

相关文章

  • 解决方案下的项目版本号统一
    解决方案下的项目往往需要让生成的程序集版本号统一,最简单的方式当然是打开每一个项目下的AssemblyInfo.cs文件修改,或者使用项目属性修改。最近,发现还有一种更简单的方式,下面仔细介绍它。 步骤1、创建一个SolutionInfo.cs的文件,放到解决方案下。内容类似为: 步骤2、修改各......
  • 关于文章《爬取知网文献信息》中代码的一些优化
    哈喽大家好,我是咸鱼 之前写了一篇关于文献爬虫的文章Python爬虫实战(5)|爬取知网文献信息 文章发布之后有很多小伙伴给出了一些反馈和指正,在认真看了小伙伴们的留言之后,咸鱼对代码进行了一些优化 优化的代码在文末,欢迎各位小伙伴给出意见和指正 问题pycharm设置......
  • 最容易上手的爬虫项目
    今天和大家分享一个爬取项目,那就是爬取自己博客的项目。1、确定爬取的目标开始之前我们需要确定一个爬取的目标,从我自己博客的首页进入。在这个例子里面我们要写一个爬虫将我的的文章列表拉出来,保存在一个JSON的文件里面。2、“种子”的分析,生成爬虫入口在谷歌浏览器中,打开开......
  • m十字路口多功能控制交通系统,包括基于遗传算法优化的红绿灯时长模糊控制器和基于BP神
    1.算法仿真效果matlab2022a仿真结果如下:        2.算法涉及理论知识概要单十字路口:           其中第一级控制为两个并行模块:绿灯交通强度控制模块与红灯交通强度控制模块。绿灯交通强度控制模块的输入为绿灯相位的排队长度与入口流量,......
  • m十字路口多功能控制交通系统,包括基于遗传算法优化的红绿灯时长模糊控制器和基于BP神
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要单十字路口:其中第一级控制为两个并行模块:绿灯交通强度控制模块与红灯交通强度控制模块。绿灯交通强度控制模块的输入为绿灯相位的排队长度与入口流量,输出绿灯相位的交通强度;红灯相位模块的输入为红灯相位的......
  • 优化项目场景
    优化针对项目场景而言,我其实也是思考了挺多的,然后,就一直努力尝试将自己代入患者的角度(因为我本人去医院的次数比较少,对医院的流程并不了解,也并不熟悉),也就只能通过询问朋友,加上百度啥的,然后就是通过患者的角度,我会去想一想他们对于医院这种挂号流程会有什么样的想法,尽量做到既能......
  • [7625] 导读 一文看懂 Vue.j 3.0 的优化
    我们的课程是要解读Vue.js框架的源码,所以在进入课程之前我们先来了解一下Vue.js框架演进的过程,也就是Vue.js3.0主要做了哪些优化。Vue.js从1.x到2.0版本,最大的升级就是引入了虚拟DOM的概念,它为后续做服务端渲染以及跨端框架Weex提供了基础。Vue.js2.x发展了很......
  • 【Node】coderwhy node 项目视频中 jwt.sign 没有返回值的问题
    在写登录接口时,想生成token用于登录验证,但是在使用jwt生成token(jwt.sign())时却没有返回token,服务端没有报错但是使用postman验证接口时却没有得到正确的请求结果。如果你在使用openssl生成的private.key时是和coerwhy老师一样1024的话就会报错解决方法:最好是生成20......
  • IDEA Project栏 隐藏项目路径_idea项目隐藏目录
    IDEA左侧的Project目录中,在项目名称后面显示了项目的文件路径地址 选择:Help->EditCustomProperties...打开配置文件,添加以下配置project.tree.structure.show.url=falseide.tree.horizontal.default.autoscrolling=false ......
  • VScode 创建Java项目
    1.点击view找到命令行输入java(ctrl+shift+P)src:一般是自己写的源代码的文件lib:外部引用库等其他的内容bin:二进制程序,用以存放未来的编译文件等  ......