seed的request好像这样添加也可以

来源:15-5 Engine 与 Parser

bbmouse

2019-07-11

图片描述
老师,seed的request好像这样添加也可以,灰色的这种方式会不会有问题?我跑来下好像没有问题
还有个问题是返回的item为什么不叫city ? item翻译成中文是啥?我只知道商品这个意思,,
还有就是下面这段代码为什么不放在parser包下面,要放在type里面,它不是一种parser嘛?

func NilParser(contents []byte) ParseResult {
	return ParseResult{}
}
写回答

1回答

ccmouse

2019-07-18

的确是的,写成var requests = seeds也是可以的。两者没特别大的区别。

你的后两个问题是设计及模块划分问题。

返回的为啥不叫city?因为这里是在engine包里,我们这个engine希望是通用的引擎。我可以处理city,可以处理person,也可以处理股票,各种类型的信息。item在这里不完全是商品,就是项目(不是工程项目,类似文档里的项目),或是“东西”的意思,是一个比较抽象的概念。这适合放在engine包里。

为啥NilParser放在type里面不放在parser下面?这是一个公共的Parser,谁都能用。就要放在公共的地方。一般直接放在type里面会比较方便。当然,我们也可以建一个parser/common目录,把它放在里面。但这里我选择了比较简单的做法。

1
2
ccmouse
回复
hen_nam
这个问题很典型,也是我反对的一种做法。函数参数的命名要体现函数的作用而不是函数的实现。这个Run函数不仅处理传进来的seeds,也会通过它们派生出非常多的新的requests,如果这里参数名叫requests,会让人误以为只会处理传入的这几个requests。
2022-01-26
共2条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程