本例以一个爬虫项目为例
描述写代码的思路
架构注释
目标是明确:主线步骤
对起始页发起请求,获取数据
根据获取的数据,构建请求url列表
依次访问url列表中的网址,将响应保存到响应列表中
依次处理响应列表中的内容,将处理好的结果进行保存
将架构注释用代码形式表现出来
# 对起始页发起请求,获取数据
url = "起始页网址"
max_page = get_max_page(url)
# 根据获取的数据,构建请求url列表
request_url_list = get_request_url_list(max_page)
# 依次访问url列表中的网址,将响应保存到响应列表中
response_list = get_response_list(request_url_list)
# 依次处理响应列表中的内容,将处理好的结果进行保存
save_data(response_list)
分别实现每一个方法中的逻辑
以这个功能为例
get_request_url_list
写出它的实现代码
def get_request_url_list(max_page):
url_list = list()
for i in range(1, max_page + 1):
temp = "第{}页的url格式化内容的代表".format(i)
url_list.append(temp)
return url_list
其它方法依次类推
功能完成
外层的结构布局完毕,里面的功能逻辑写完成,并且按照约定返回对应的内容。
这样子的代码就非常有层次感。
同时因为有了适当的注视,给其他人看,也非常明晰。
未来如果要对功能进行升级,只需要找到工农所在的函数,只用满目标聚焦,在这个功能函数这里就可以了。也方便修改。
例子代码参考
def get_request_url_list(max_page):
url_list = list()
for i in range(1, max_page + 1):
temp = "第{}页的url格式化内容的代表".format(i)
url_list.append(temp)
return url_list
# 对起始页发起请求,获取数据
url = "起始页网址"
max_page = get_max_page(url)
# 根据获取的数据,构建请求url列表
request_url_list = get_request_url_list(max_page)
# 依次访问url列表中的网址,将响应保存到响应列表中
response_list = get_response_list(request_url_list)
# 依次处理响应列表中的内容,将处理好的结果进行保存
save_data(response_list)