V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  keakon  ›  全部回复第 39 页 / 共 55 页
回复总数  1087
1 ... 35  36  37  38  39  40  41  42  43  44 ... 55  
2011-09-08 13:08:53 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 我回顾了一下,好像没人嘲讽你。以前和 @Livid 争论时,或者看他和别人争论时,发现他自尊心比较强,而且比较敏感(好像很多人都这样)。不过这里我还是老观点,他说得没错。

作为一个开源项目的发起人,我觉得他不仅是为自己写产品,更是为其他人写产品,因此有义务写得易于维护。
以我的经验,思考需求和设计上的时间越多,维护起来就越轻松。
以前也出现过想改PB代码,但最终决定干脆重写的人。没记错的话,@Livid 说过他只是想以最小的努力把PHP的PB1移植到Python的PB2。如果他不是那么急于移植的话,我想PB的开源会更为成功。
既然clone自己的项目都离不开重新设计,那么clone别人的,是否更应如此呢?

很显然,如果是抱着对他人有用的想法来做项目,就不会这样急于求成。
我回顾了一下自己博客的代码库,除去需求之类的时间,在数据库设计和实现上花了8天,其他地方用了3天完成雏形。当时我对自己用到的很多东西并不熟悉,重新开发的话,那3天时间可能会大幅缩短,但数据库设计上,我想仍不会少于一周。
曾经也看过PB的源码,让我设计的话,数据库这部分会变得面目全非,而功能自然也会有所调整。我不认为7天内可以clone出一个让人心动的产品,我想你也不愿意别人拿你的产品二次开发时,觉得还不如重写一个算了。
2011-09-07 23:14:43 +08:00
回复了 dongsheng 创建的主题 iDev 大家怎么看Core Data?
@dongsheng 直接操作啊,更新数据还要lazy干啥…印象中操作1000个花了4秒,而sqlite不到0.1秒。于是我立刻理解iReadG标记已读时为什么会阻塞半天主线程了…
2011-09-07 20:23:37 +08:00
回复了 dongsheng 创建的主题 iDev 大家怎么看Core Data?
@dongsheng 初学Core Data时曾经做过一个测试,批量插入、更新和删除数据时,它比SQLite慢2个数量级。而我经常需要批量更新几百条数据,差距基本上就是秒和毫秒级的,于是果断放弃了。
2011-09-07 19:36:42 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 我不知道RoR是怎样的开发速度,但7天显然不够。

如果我去做这样一个社区,我至少会花1个月的空闲时间来考虑需求,收集各种时刻闪现出来的创意,在考虑可行性和必要性后,融合和舍弃一些特性。
在将未来的发展方向考虑进去后,才会开始数据库建模,并同时根据可行性和性能来调整。因为这才能保证性能和扩展性。你当然可以把1小时内搭建出来的模型用于一个几千人的社区,但如果人数增加1000倍呢?

你或许会说你只是clone,需求什么的直接照搬就行了。但GAE的datastore是特有的,你几乎无法重用V2EX的model。而在脱离datastore后,你可以有更大的发挥空间,也应该有更好的实现。舍弃掉该有的改进,这种产品真的就只能像 @Livid 那样理解了。

如果你的项目都是3天完工的,我很疑惑你能从中得到些什么,也无法想象有人对花5年时间做这样的事怀有成就感。
对我来说,思考远比编码的收获大,因为后者只是印证一个理所当然的结果。

而在编码完成后,我还经常需要改变需求或者优化性能,几乎每个月都要抽出点空来做。这种看着自己的代码日渐成熟的心情,或许你也是没空来体验的。

我也经常和 @Livid 有不同的观点,但这次我认为他说得很对。如果你还在V2EX的话,好好思考一下那几个问题,大概比你继续下一个5年要有意义一些。
2011-09-07 14:37:40 +08:00
回复了 Livid 创建的主题 Diablo III Diablo 3 Beta is Coming Soon
@hyden 安装信息
1. 安装游戏
2. 运行游戏 需要测试资格或等待破解
2011-09-07 13:34:02 +08:00
回复了 jeeson 创建的主题 Google App Engine GAE 新定价下, instance hours 没那么可怕
@sohoer 更新量不大,小的更新我都不会去删除缓存。

顺便更正上面一个错误,PV数应该翻倍,因为memcache有55%的命中率。

再给个数据吧,我每天的请求数是2万多,Datastore Reads是7万多。这几天优化过后变成5万了,昨晚又优化了一个地方,但估计只能降到4万,几乎没多少增长空间了。
2万/天请求换算成秒只相当于0.2 QPS,而实际上平均0.1秒就能处理一个请求。也就是说,免费配额虽然给了一个免费的instance,但80%的时间都必须让它空闲着。
2011-09-07 12:28:53 +08:00
回复了 jeeson 创建的主题 Google App Engine GAE 新定价下, instance hours 没那么可怕
@jeeson @lfeng 我觉得你们还是看看Billing History里的Datastore Reads再辩驳吧。

前面我已经说过了,我几乎对所有的数据库访问都做了缓存,这点你可以在我博客的源码里看到,有遗漏的你可以指出。

昨晚我对所有的数据库访问都进行了记录,并将获取超过5个实体的请求用warning标记出来。在后台可以看到最近5分22秒内有20个这样的请求,共计178个实体。其中所有请求的URL都不相同,获取的数据也都不相同,并且我都做过缓存但没有命中。这都是由访问者决定的,我不可能只让他们访问已经缓存的页面。

虽然1个PV可能会有1~3个动态请求,不过我就按1个来算,最多也只有20PV,因此理论上来说5万/天的配额只能支持到5600PV。考虑到少于5个实体的请求我没记录,实际情况只会更少。
至于最开始时,Google承诺的是免费配额可以支持每月500万PV,相差将近30倍。

顺便提醒一下,count操作虽然只返回一个整数,但也算多次key fetch。所以如果你的实体超过50000,然后执行count(50000),你会发现Small Datastore Operations配额已经用完了,而这花不了几秒…
2011-09-07 09:59:35 +08:00
回复了 jeeson 创建的主题 Google App Engine GAE 新定价下, instance hours 没那么可怕
@jeeson @lfeng 高不了的…我几乎对所有的数据库访问加了缓存,目前的状态是Hit ratio: 55% (315327 hits and 254064 misses)。

一是memcache随时有可能丢失数据;二是有些数据不能把缓存时间设得太长;三是一旦有更新,很多缓存必须删除。

而且就算命中率是100%,以V2EX这1万多篇文章举例,搜索引擎爬个几千篇就没了…
2011-09-06 22:19:56 +08:00
回复了 panlilu 创建的主题 问与答 大家有关于ipad3的消息么?
@panlilu 据说因为产能不够,明年3月才能出
2011-09-06 17:54:58 +08:00
回复了 jeeson 创建的主题 Google App Engine GAE 新定价下, instance hours 没那么可怕
@Livid 准确来说不是datastore的读写次数,而是entity、key和index的读写次数。

假如打开V2EX首页显示20篇文章,那么需要20篇文章+20用户信息=40次entity fetch。别忘了还有节点,每个节点都算一次entity fetch。于是访问一次首页要超过100次Datastore Reads操作。

而在文章页,每篇回复也包含用户信息,因此相当于2次entity fetch。

而免费配额是每天5万次Datastore Reads操作,即使使用memcache,也只有访问量很小的站才能不超过这个配额。
2011-09-04 13:16:52 +08:00
回复了 Livid 创建的主题 设计 貌似现在很流行这样的红色 + 纸黄色的设计
Flipboard、网易阅读、ZAKER和昨天出的中文摄影杂志 for iPad也是这种色调,感觉最早采用的应该是Reeder吧。
2011-09-03 21:21:54 +08:00
回复了 summic 创建的主题 MySQL mysql 子查询遇到诡异问题,求指点
这个例子应该可以直接用inner join吧…

不到万不得已不用子查询
2011-09-03 21:16:28 +08:00
回复了 amyhyde 创建的主题 分享发现 http://jintao.hu/ 很牛的域名
居然没被墙
2011-09-02 17:14:33 +08:00
回复了 kingrever 创建的主题 问与答 请问一下如google+信息分享的数据库设计。
@kingrever 大概就这样吧:
Message.filter('direct_to =', current_user)
Message.filter('sender IN', current_user.follower).filter('status =', 'public')
Message.filter('circle IN', current_user.circles)
2011-09-02 16:06:04 +08:00
回复了 kingrever 创建的主题 问与答 请问一下如google+信息分享的数据库设计。
没有证据表明Google+是用关系数据库吧…

如果是用GAE的datastore的话,信息表里就保存了公开状态了(public,some circle,somebody)。用户只要进行3个查询,然后merge一下就能获取自己的timeline了。
2011-09-02 02:13:32 +08:00
回复了 Livid 创建的主题 Google App Engine Google App Engine 即将从 Preview 阶段毕业
@phus 看不出任何优化,application的创建倒是需要移到main函数外面……
2011-09-01 23:40:22 +08:00
回复了 haohaolee 创建的主题 问与答 如何对抗ISP的http劫持?
我是在最开始插入这段代码:
<script>if (top !== self) top.location = self.location;</script>
Azure价格是稳定,不过比GAE贵==
2011-09-01 11:08:53 +08:00
回复了 Livid 创建的主题 Google App Engine Google App Engine 即将从 Preview 阶段毕业
@sohoer 影响不大。马上会支持Python 2.7(从billing history看估计是November 20th, 2011),到时候一个instance可以同时响应多个请求。

另外发现这几天的数据库读取次数都刚好超过50k,看来得优化了=。=
2011-09-01 10:53:41 +08:00
回复了 Livid 创建的主题 Google App Engine Google App Engine 即将从 Preview 阶段毕业
看到几个抱怨的,大应用还是果断撤离吧:

I am one of them. Monthly charge: $900 -> $2850 (310%)

Our costs went up 2800% under the new pricing.

We are going from $5,400/month to $26,500/month (Python) - and this is
only one of our apps.

I am not in the same league as those who pay thousands of dollars per
month but rather the average small developer who sees what was a 31 $
monthly bill jump to over 500 $.
1 ... 35  36  37  38  39  40  41  42  43  44 ... 55  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2823 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 27ms · UTC 12:12 · PVG 20:12 · LAX 04:12 · JFK 07:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.