要做的先在 issue 认领吧,不要做重了。
不过我觉得是不要 RSS 的,数量和质量控制不了,我自己的博客就喜欢技术和生活间隔来写
bundle install
了木有?
Net 库的 api 比较底层,贴近协议本身。我每次用都不知道如何下手。
所以我现在用 rest-client 了
#5 楼 @Los 那篇文章如果属实,那 mongodb 是比我想象中的稳定性要差。我也在别的地方转发了这篇文章。
其实我是没啥发言权的,自己用 Mongodb 写的都是 toy,工作中要维护的是 MySQL(大量老数据)。曾经用 Mongodb 写了一部分功能,后来考虑到一个网站用两个数据库,以后维护会麻烦点,也不是非 Mongodb 不可的功能,就换回 MySQL 实现了。
但是另一方面,我觉得用 Mongodb 写写 toy 也未尝不可。很多文章都把焦点放在并发、分布式、海量上面,但是真到这个层面,怎么可能一换数据后端就让机器自动解决,难处依然在那里。我更喜欢用 Mongodb 实现各样的小构思,模式自由,抛下关联查询、数据事务这些“重”的东西,更容易考虑一样事物本身应该怎么表达,怎么在总体上实现优雅的设计。
我觉得 [文章] 还没确定形式的话可以先撤下,论坛可以负责资源分享。
@kevinhua @测试
我觉得 Tag 更好,但不一定要马上改。像 v2ex 那样的用户量,节点式也能有效组织信息。所以不急着改。
如果当前没有合适的节点,可以发到“分享”。浏览 chinaonrails 和 v2ex 的时候其实不在乎分类。
相比分类或 tag,ruby-china 还有一些更急迫的地方需要改进。比如 wiki 和 文章 需不需要重写,一些表单结构、flash 信息需要优化,各类的小细节需要调优。
我也是觉得 Tag 比较好。下方的导航可以转为 Tag 推荐。
tag 编辑可以用 codecampo 做的 tagEditor,将来研究怎么自动补全。
identity_map_enabled 可以减缓一些查询
现在提醒列表是有 1 + n + n .. 查询的性能问题的,大家看怎么解决吧……
对象缓存?
dynamic_fields:
anwser = Anwser.new
anwser['q1'] = 'some value'
anwser.save
anwser['q1'] # => 'some value'
直接当 Hash 用
动态创建类
model = Class.new
class << model
def foo
end
end
#or
model.class_eval do
def foo
end
end
object = model.new
object.foo # => nil
不过不太理解你动态创建类的意图?
一开始用 mongodb 是为了尝鲜,后来用着也没什么问题,就继续用了。我写的都是小网站,组件不成熟影响不大,解决问题也是提高能力的机会。
分布式用不上
模式自由让开发过程的束缚更小,比如改个字段名(未上线前),就在代码改就好了,不用 rake db:migrate。上线之后该迁移还是要迁移。
然后内嵌文档和 array 这样的数据类型让数据结构更符合人脑的思维。比如 tags,存成文档的一个字段 (Array) 就行了,搜的时候
Topic.where(:tags => 'ruby')
就行了。比 SQL 用关联表实现轻便很多。
我觉得既然不是要做成邮件列表的话就不用每个回复都发邮件了,可以在 @ 的时候才发邮件。邮件列表的话是可以直接回复邮件参与讨论的,但是邮件提醒没有这个功能。
现在一个 server 占了多少内存呢?我一个类似网站,功能可能少点,passenger 一个 ruby 进程 40M。如果太高的话可能要检查下代码。
将来是要做成邮件列表吗?
其实邮件提醒不是个好主意,以前做过一次,一晚上就回滚了。因为上一个邮件提醒功能还要加个关闭选项,或者什么人能给什么人发邮件的权限,结果复杂度会大大提升。
最近在考虑要把个人域名指向哪里。wordpress 升级一下编辑器挂了,都不想维护了