采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,seed的request好像这样添加也可以,灰色的这种方式会不会有问题?我跑来下好像没有问题 还有个问题是返回的item为什么不叫city ? item翻译成中文是啥?我只知道商品这个意思,, 还有就是下面这段代码为什么不放在parser包下面,要放在type里面,它不是一种parser嘛?
func NilParser(contents []byte) ParseResult { return ParseResult{} }
的确是的,写成var requests = seeds也是可以的。两者没特别大的区别。
你的后两个问题是设计及模块划分问题。
返回的为啥不叫city?因为这里是在engine包里,我们这个engine希望是通用的引擎。我可以处理city,可以处理person,也可以处理股票,各种类型的信息。item在这里不完全是商品,就是项目(不是工程项目,类似文档里的项目),或是“东西”的意思,是一个比较抽象的概念。这适合放在engine包里。
为啥NilParser放在type里面不放在parser下面?这是一个公共的Parser,谁都能用。就要放在公共的地方。一般直接放在type里面会比较方便。当然,我们也可以建一个parser/common目录,把它放在里面。但这里我选择了比较简单的做法。
为什么不直接将函数参数命名为 requests 呢? func Run(requests ...Request) { ...... }
这个问题很典型,也是我反对的一种做法。函数参数的命名要体现函数的作用而不是函数的实现。这个Run函数不仅处理传进来的seeds,也会通过它们派生出非常多的新的requests,如果这里参数名叫requests,会让人误以为只会处理传入的这几个requests。
登录后可查看更多问答,登录/注册
语法+分布式爬虫实战 为转型工程师量身打造
3.8k 14
777 1
2.1k 1
1.2k 12
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号