结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点
分析一套我平常在用的代码--scrapy爬虫框架,使用的python语言。
Scrapy运行流程大概如下:
Scrapy将功能封装到不同的目录中,具体功能如下:
spiders
爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
pipeline
负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
middlewares
各种中间件,主要处理各个模块之间传输的数据
items
定义一种数据结构,来存储抓取的信息
db
我自己加的,让item流入到数据库中
email_
我自己加的,爬虫情况发送到邮箱
上面是setting中的全局变量,变量名的意思一目了然,也有注释来解释含义,这一点做的很好。
在一个具体的爬虫中,各个类名,函数名,变量名都有其含义,不要随意改动(在不理解scrapy运行机制的情况下),傻瓜式操作。
列举哪些做法符合代码规范和风格一般要求
在每个缩进级别中使用4个空格,__init__使用_防止导出模块
import模块的导入分开写,以及注意导入的顺序
模块的命名约定,类名首字母大写,且是大驼峰命名,函数名首字母小写
列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进
要避免相对路径,使用绝对路径。
总结同类编程语言或项目在代码规范和风格的一般要求
原文:https://www.cnblogs.com/cyh2czj/p/11647287.html