V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  reorx  ›  全部回复第 13 页 / 共 57 页
回复总数  1128
1 ... 9  10  11  12  13  14  15  16  17  18 ... 57  
2016-01-23 19:59:35 +08:00
回复了 yhf 创建的主题 Python 请教一道 Python 多线程爬虫的面试题
就楼主的题目写了一些简单的练习代码,对比了几种不同的 Gevent 实现方案。 threading 应该是大同小异的。有兴趣的可以阅读: https://github.com/reorx/learn_spider

有段时间没写网络异步的东西了,而且也一直没写过爬虫应用,感觉必须不时练习一下才能有自我提升
(๑•̀ㅂ•́)و✧
@kacong thanks
2016-01-23 10:52:55 +08:00
回复了 yhf 创建的主题 Python 请教一道 Python 多线程爬虫的面试题
这里如果用多线程写法的话,我觉得应该是造一个 thread pool ,这个 pool 里的线程用于网络请求、解析返回页面里的 URL ,然后把结果扔到一个 Queue 中,主线程只做一件事就是不停地从这个 Queue 里取结果,去重后 print ,然后把新的未爬过的 URL spawn 出新的线程去处理

当然最有效率的办法还是如 @binux 所说,使用异步 io 库,这样可以保证单核效能最大化,且所有网络请求等待的时间都不会浪费(线程池方案就算线程多也不一定可以保证),推荐用 gevent 和 tornado , twisted 比较重更适合解决 CS 结构双向通讯的网络需求
2015-12-28 15:02:55 +08:00
回复了 ts 创建的主题 问与答 看到热门帖子电脑被黑了 求备份最方便的方案
Arq + S3
2015-07-21 10:58:02 +08:00
回复了 AmberBlack 创建的主题 MacBook Pro 日经贴 电脑屏幕清洁布
3M 屏幕清洁套装
2015-06-06 17:09:28 +08:00
回复了 SharkIng 创建的主题 V2EX @Livid 是不是应该做些处理了?现在的 V2EX 还是您想要的么?
这是正常的,就连 HackerNews 也会受到关于监管不力、无作为、怂恿造谣、背后操控的猜疑和指责[^1],社区发展大了之后必然要面对这些问题,就像现实中的社会形态一样,每个人能做的只有守好本心罢了。

[^1]: https://news.ycombinator.com/item?id=9637061
2015-05-17 20:15:23 +08:00
回复了 unstop 创建的主题 分享创造 One App 的中国版『一览』正式上线,限免三天
@unstop 我又来报 bug 啦,获取 github 数据的接口似乎有好几天没有更新了 <api domain>/news/github?limit=10 ,和现在 https://github.com/trending 的数据并不一致。

btw,你们的网站上没有联系方式诶,如果加上一个就更棒了 :)
@GeekTest no offence...
V2EX 这是要贴吧化的节奏吗……
2015-04-28 19:55:55 +08:00
回复了 turing 创建的主题 程序员 程序员 Mihai Șucan 的故事
致敬 Mihai.

当我在向生活抱怨时,想到 Mihai,便不再沮丧,唯有感恩和勇敢面对。
2015-04-28 13:17:17 +08:00
回复了 yueyoum 创建的主题 程序员 Json VS Protobuf
@yueyoum 嗯嗯,是的,其实不可能有那么严格的限制,毕竟业务需求是在变化的,我那样说主要还是强调 schema 不要轻易变化,倒不是说用 Protobuf 就一定要那样。不过我自己在团队内部确实是这样要求的,required 在设计确定下来之后基本上就不会改了,新的需求通过增加 optional 来解决,有这样的约束大家会非常谨慎,反复推敲,多方确认,来保证所设计的 schema 是可以兼顾可见的未来的需求的。

所以「不允许更改」==「设计应该足够完善以至理论上不应该产生更改」,警戒意义多于实际约束 XD
2015-04-28 12:11:04 +08:00
回复了 yueyoum 创建的主题 程序员 Json VS Protobuf
「所有的 required 字段一经定下允许再更改」→「所有的 required 字段一经定下 **不允许** 再更改」orz
2015-04-28 12:09:44 +08:00
回复了 yueyoum 创建的主题 程序员 Json VS Protobuf
@dcoder 其实 JSON 和 Protobuf 我都很喜欢,两者都有自己的优点,根据场景恰当地挑选要使用的技术就好了。

我觉得 JSON 使用的场景一般是,不太需要考虑内部协定的 schema,或者说多个服务之间使用的数据格式并不强要求是一致的。比如一个 Web 后端 A,内部依赖服务 B,A 暴露给客户端的接口是 RESTful 的 JSON API,A 调用 B 时通过 B 提供的 RPC library,整个服务场景中存在两种接口和数据格式,互相没有什么关联,也不要求一致,这时用 JSON 就很好(原本 JSON 就是所有数据格式中最 human readable 的),每个服务自己维护自己的解析和参数验证。

Protobuf 一般是涉及到多个服务之间的数据交换,且每个服务内部用的数据要求用一致的 schema,这种大部分都不是 Web 项目,一般都是用网络编程框架做的传统后端,非常依赖 RPC 调用的服务。这时用 Protobuf 或者 Thrift 就非常好了,因为其实 Protobuf、Thrift 都是提供了一种序列化结构数据的方法,然后提供了一种用于描述结构数据的语法规则,在这个基础上其实已经把 data format 给抽象不见了,我们不需要知道它底下序列化后的二进制数据长什么样子,我们只关心每个使用同一份 proto 定义的服务内部的数据都是对应一致的 schema,且可以无缝转移到另一个服务中使用(这个过程我们也不需要关心)。如果我选择 Protobuf 而非 JSON,必然是因为它在打通跨服务的数据一致性上的优点,而不是它相比 JSON 性能有何优势。

当然最终选择的时候还有个很关键的因素,就是整个大环境的技术选型,如果你所依赖的其他组件用 JSON 的较多,那么也不要刻意用 Protobuf 搞得大家都很麻烦。如果一个大型项目在一开始就用了 Protobuf 作为数据格式的约定,后期在数据一致性上可能出现很多麻烦就可以避免掉呢。

最后说点我使用 Protobuf 的经验,项目里的每个 proto 文件都会在最上面标注一个 version number,所有的 required 字段一经定下允许再更改,对 proto 文件的提交必须保证严格的 review,不能随便 merge 到 master,如果被多个项目需要甚至会把 proto 文件单独放到一个 git repo 里,在其他需要它的地方用 git submodule 引用。

P.S. 写完发现用了好多个「一致」,有点啰嗦,赶吃饭就先这样了…
2015-04-27 22:02:52 +08:00
回复了 yueyoum 创建的主题 程序员 Json VS Protobuf
@alpha1130 赞同,Protobuf 相比 JSON 的优势在于它本身带有严格的 schema validation,一份 .proto 文件既作为 input/output 的入口,又作为规定数据格式的文档,在跨语言多人协作的项目上用起来不能更爽。实际上我觉得 Protobuf 和 JSON 是完全不同的两种东西,Protobuf 是 schema + data format,schema 是我们可以看见的 proto 文件里的定义,data format 是它序列化成二进制数据的格式,JSON 只有 data format…至于 JSON schema,个人觉得是一种很勉强的实现,在本身没有 schema 的数据格式上做 schema 的事情,无论是写起来还是用起来都很麻烦,说到底,JSON 只是一种轻量的、面向 Web 的 data format 罢了。
2015-04-27 12:57:45 +08:00
回复了 thuai 创建的主题 macOS 有人要团购 paw 么? 15 人团。
2015-04-25 10:44:11 +08:00
回复了 ruoyu0088 创建的主题 Python 看 PyCon 2015 视频学习到的内容
2015-04-25 10:36:46 +08:00
回复了 ruoyu0088 创建的主题 Python 看 PyCon 2015 视频学习到的内容
今年印象最深的是 Guido 关于 Diversity 的那一场,全程满槽点,给大家看我和小伙伴讨论时的截屏

http://ww2.sinaimg.cn/large/65a94210jw1erhm2zprh7j20gk0d6dh6.jpg

http://ww1.sinaimg.cn/large/65a94210jw1erhm397kxfj20fi0dy0uu.jpg
1 ... 9  10  11  12  13  14  15  16  17  18 ... 57  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5240 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 37ms · UTC 03:49 · PVG 11:49 · LAX 19:49 · JFK 22:49
Developed with CodeLauncher
♥ Do have faith in what you're doing.