对于大多数人来说,掌握一门像Scrapy这样很酷的技术所带来的好奇心和精神上的满足,足以激励我们。令人惊喜的是,在学习这个优秀框架的同时,我们还能享受到开发过程始于数据和社区,而不是代码所带来的好处。
我们需要的是:开发健壮且高质量的应用,并提供合理规划
为了开发现代化的高质量应用,我们需要真实的大数据集,如果可能的话,在开始动手写代码之前就应该进行这一步。现代化软件开发就是实时处理大量不完善数据,并从中提取出知识和有价值的情报。当我们开发软件并应用于大数据集时,一些小的错误和疏忽难以被检测出来,就有可能导致昂贵的错误决策。比如,在做人口统计学研究时,很容易发生仅仅是由于州名过长导致数据被默认丟弃,造成整个州的数据被忽视的错误。在开发阶段,甚至更早的设计探索阶段,通过细心抓取,并使用具有生产质量的真实世界大数据集,可以帮助我们发现和修复错误,做出明智的工程决策。
另外一个例子是,假设你想要设计Amazon风格的如果你喜欢这个商品,也可能喜欢那个商品的推荐系统。如果你能够在开始之前,先爬取并收集真实世界的数据集,就会很快意识至陏关无效条目、停产商品、重复、无效字符以及偏态分布引起的性能瓶颈等问题。这些数据将会强迫你设计足够健壮的算法,无论是数干人购买过的商品,还是零销售量的新条目,都能够很好地处理。而孤立的软件开发,可能会在几个星期的开发之后,也要面对这些丑陋的真实世界数据。虽然这两种方法最终可能会收敛,但是为你提供进度预估承诺的能力以及软件的质量,都将随着项目进展而产生显著差别。从数据开始,能够带给我们更加愉悦并且可预测的软件开发体验。
Scrapy担起大任:快速开发高质量最小可行产品
对于初创公司而言,大规模真实数据的集甚至更加必要。你可能听说过精益仓U业〃,这是由EricRise创造的一个术语,用于描述类似技术初创公司这样极端不确定条件下的业务发展过程。该框架的一个关键概念是最小可行产品(MinimumViableProduct,MVP),这种产品只有有限的功能,可以被快速开发并向有限的客户发布,用于测试反响及验证业务假设。基于获得的反馈,初创公司可能会选择继续更进一步的投资,也可能是转向其他更有前景的方向。
在该过程中的某些方面,很容易忽视与数据紧密连接的问题,这正是Scrapy所能为我们做的部分。比如,当邀请潜在的客户尝试使用我们的手机应用时,作为开发者或企业主,会要求他们评判这些功能,想象应用在完成时看起来应该如何。对于这些并非专家的人而言,这里需要的想象有可能太多了。这个差距相当于一个应用只展示了产品1〃、产品2〃、用户,而另一个应用提供了三星UN55J英寸电视机〃、用户Richards〃给出了五星好评以及能够让你直达产品详情页面(尽管事实上我们还没有写这个页面)的有效链接等诸多信息。人们很难客观判断一个MVP产品的功能性,P余非使用了真实且令人兴奋的数据。
些初创企业将数据作为事后考虑的原因之一是认为收集这些数据需要昂贵的代价。的确,我们通常需要开发表单及管理界面,并花费时间录入数据,但我们也可以在编写代码之前使用Scrapy爬取一些网站。在后面的分享中,你可以看到_旦拥有了数据,开发一个简单的手机应用会有多么容易。
本文由三秋道果分享,如有不当请联系三秋道果,不吝指出,谢谢~