首页 > 其他 > 详细

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

时间:2019-10-10 13:04:25      阅读:76      评论:0      收藏:0      [点我收藏+]

 

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

分析一套我平常在用的代码--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使用短横线分割.所有常量使用大写+下划线表示法

 

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

原文:https://www.cnblogs.com/cyh2czj/p/11647287.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!