本文选取了一套利用python协程实现爬虫的源码。
- 结合工程实践选题相关的一套源代码,根据其编程语言或项目特点,分析其在源代码目录结构、文件名/类名/函数名/变量名等命名、接口定义规范和单元测试组织形式等方面的做法和特点
(1)目录结构
一级目录是crawler;二级目录中,code文件夹保存项目源代码,images文件夹是跟项目相关的函数示意图,readme.text简要地描述该项目的信息,markdown文件是跟这个项目相关的爬虫和协程的一些介绍和解析。目录结构清晰,划分合理。
code文件夹中主要有三个程序:
- crawl.py 是主程序,包括参数解析,以及事件循环。
- crawling.py 抓取程序,crawl.py 中的异步函数就是其中的 Crawler 类的 crawl 方法。
- reporting.py 生成抓取结果的程序。
(2)文件名/类名/函数名/变量名
文件名:简洁易懂,通过命名就能了解文件夹的主要内容。
类名:首字母大写,不用_连接。
函数名/变量名:含义明确,体现了函数或变量的功能。变量名、函数名多是小写拼写,用_连接。
- 列举哪些做法符合代码规范和风格一般要求;
(1)统一使用 4 个空格进行缩进。
(2)python的代码编写基本上遵循PEP8的风格。类与异常应该首字母大写,不用_连接。函数名小写,且用_连接。
(3)使用空行分隔函数和类
- 列举哪些做法有悖于“代码的简洁、清晰、无歧义”的基本原则,及如何进一步优化改进;
有些变量的命名较为随意,在首次阅读时不能很快理解其含义。
- 总结同类编程语言或项目在代码规范和风格的一般要求。
-
使用4空格缩进,并且没有制表符。
-
每行不超过79个字符。
-
使用空行分隔函数和类,并在函数内部使用较大的代码块。
-
在关键地方添加注释。对某些重要的代码块的功能说明,应使用单行注释;对整个模块功能的说明应使用多行注释。
-
在运算符周围和逗号后使用空格,但不要在方括号结构内直接使用。
a = f(1, 2) + g(3, 4)
-
一致地命名类和函数。约定
CamelCase
用于类以及lower_case_with_underscores用于
函数和方法。始终将self
其用作第一个方法参数的名称。