分析一套源代码的代码规范和风格并讨论如何改进优化代码

 

结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点

分析一套我平常在用的代码--scrapy爬虫框架,使用的python语言。

 

Scrapy运行流程大概如下:

  1. 引擎从调度器中取出一个链接(URL)用于接下来的抓取
  2. 引擎把URL封装成一个请求(Request)传给下载器
  3. 下载器把资源下载下来,并封装成应答包(Response)
  4. 爬虫解析Response
  5. 解析出实体(Item),则交给实体管道进行进一步的处理
  6. 解析出的是链接(URL),则把URL交给调度器等待抓取

Scrapy将功能封装到不同的目录中,具体功能如下:

spiders
爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面

pipeline
负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

middlewares

各种中间件,主要处理各个模块之间传输的数据

items

定义一种数据结构,来存储抓取的信息

db

我自己加的,让item流入到数据库中

email_

我自己加的,爬虫情况发送到邮箱

 

 

上面是setting中的全局变量,变量名的意思一目了然,也有注释来解释含义,这一点做的很好。

 

 

 

在一个具体的爬虫中,各个类名,函数名,变量名都有其含义,不要随意改动(在不理解scrapy运行机制的情况下),傻瓜式操作。

 

列举哪些做法符合代码规范和风格一般要求

在每个缩进级别中使用4个空格,__init__使用_防止导出模块

 

import模块的导入分开写,以及注意导入的顺序

模块的命名约定,类名首字母大写,且是大驼峰命名,函数名首字母小写

 

 

列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进

 

 

要避免相对路径,使用绝对路径。

 

总结同类编程语言或项目在代码规范和风格的一般要求

  • 每行长度不超过80个字符
  • 缩进使用4个空格缩进
  • 代码注释的使用
  1. 文档注释用"""包围,行注释用#开头,后面空一格再写注释内容.
  • 导入模块
  1. 模块的导入按照系统自带模块,第三方模块和本项目模块的顺序导入,每种模块中间隔一个空行.每各种模块内根据模块的首字母按字典顺序排序.一行只能导入一个模块,若有多个需要导入,则用括号包围后换行.
  • 命令规范
  1. Python使用下划线命名法类名使用驼峰式命名方法,并且首字母大写.API接口的url使用短横线分割.所有常量使用大写+下划线表示法

 

posted @ 2019-10-10 12:47  cyh2czj  阅读(117)  评论(0编辑  收藏  举报