RSS
 

Author Archive

上周twitter更新汇总 2010-06-08

08
  • 商业计划书交得太迟,被批评了,羞愧中。 #
  • 用apc临时代替memcached,性能大幅提升。 #
  • 有什么办法能让自己不睡着,又保持良好的精神 #

Powered by Twitter Tools

 
 

上周twitter更新汇总 2010-06-01

01
  • 终于搞定了有道难题,恢复twitter。稍等写一篇技术小结 #
  • 有道难题POJ平台搭建技术小结, http://shen2.cn/2010/05/summary-ofyoudao-nanti/ #
  • 蛋疼地在网上搜索服务器信息,无意中看到戴尔官网上新出的C1100,10个硬盘槽,18个内存槽,觉得非常不错,然后我看到了C6100,我的天,2U机箱4个双路计算节点,24个硬盘槽,太震撼了。有了它,还要刀片服务器干嘛。 #
  • 商业计划书写不出来,难受得要死 #
  • 《暮鼓晨钟》,从图书馆借了半年也没翻,等到今天要还的时候,才开始认真阅读。喜欢这句:真正的信仰不在于信的是佛,上帝,真主,而在于相信人生应该有崇高的追求,又超出世俗的理想目标。 #

Powered by Twitter Tools

 
 

有道难题POJ平台搭建技术小结

31

嗯,我不是来写这次有道难题的解题报告的。事实上,我没有参加这次有道难题的资格。因为我是比赛的POJ测试平台的管理员,我的职责是负责POJ平台在这次万人比赛中的稳定运行。

为了全力搭OJ平台准备这次比赛,我两周没有发twitter,也没有写博客。今天终于成功完成了三场资格赛,如释重负,来简单介绍一下在服务器架构建设中的经验。

程序方面,前端程序由我负责,全部用php编写,基于Zend Framework,数据库使用mysql,使用memcache作为缓存。这套程序在北大内部的百练系统(poj.grids.cn)已经稳定运行了半年。从今年年初开始,我们又对整个php代码和模型结构进行了重构,引入了小组的概念,并重新设计了用户界面。这次比赛前,我们又针对网易有道的需求,对系统的功能进行了强化。

后端评测程序,由dzx大牛负责,他改写了谢迪留下的评测端代码,将整个平台移植到了linux环境下,并用ptrace对评测程序的安全性重做了监控方案。用Java编写调度程序,用C编写评测监控程序。

硬件方面,由于实验室没有足够的服务器,因此web前端服务器主要由网易有道提供。5月24日的练习赛,我原以为只会有1000多人来参赛,就草率地只使用了一台apache + php + memcached服务器,一台mysql服务器。虽然之前网易的压力测试一再证明,我一整套php代码的执行效率非常低下,处理速度几乎比静态页面的慢6倍。但我还是认为经过php的静态优化之后,能够扛住1000人的同时访问。

结果现实情况远超过我预期。24日晚上有至少3000人同时登录比赛,整个比赛过程当中,服务器的 CPU占用率始终高居200%,网页基本完全打不开。我当时郁闷得不行,从来没在技术上那么丢人。后来回想起来,我用膝盖想想也应该知道会有很多人来参加练习赛,用一台普通的双核至强服务器怎么都挡不住这么高的并发。

痛定思痛,我们周二在天极网的现场视频答疑上一个劲地表决心,一定要解决高并发的问题。有道这边也觉得之前服务器给得太差了,一狠心在原来6台服务器的基础上,追加了10台至强5500系列服务器。内部讨论的时候,我们都以8000用户参加比赛为设计目标,我提出了最终采用的服务器方案:

9台apache+php应用服务器用来渲染网页,主流四核至强服务器,我本来只打算要6台,有道这边机器给得充足,就全用上了

4台mysql服务器,一主三从,双核至强服务器,之前的测试结果是mysql端基本没什么压力,所以没有把mysql部署在至强四核的新服务器上。

1台memcached服务器,由于memcache没有做分布,为了避免它成为性能瓶颈,就把它单独放在一台高性能服务器上

另外,由于在24日练习赛中出现了由于前端服务器阻塞,后端服务器无法回传评测结果的现象,因此我们在主mysql服务器上同时也部署了web服务,专门给后端服务器回传评测结果之用。

以上14台服务器主要由我调度,除此之外还有十几台nginx前端服务器,分布在网通、电信、教育网,用来做反向代理。为了提高静态文件的访问效率,我们把静态文件直接放在nginx上,同时,对于一些访问量比较高,同时变化不频繁的页面,在nginx端做了页面缓存。

而在后端,我们在北大的机房里,部署了1台评测调度服务器,以及8台评测节点。

合计一下,服务器总数达到了30多台!其实我认为除了评测部分的9台服务器无法收缩之外,其他服务器至少可以砍掉一半。投那么多服务器主要还是因为练习赛挂得太惨,要力保正式比赛万无一失而不惜血本。

在正式比赛时,我们的服务器集群扛住了10000多人的同时访问,即使在最高峰的时候,我们的每一个网页,不论是静态还是纯动态,反应速度都在0.2秒以内。列举一下比赛相关数字:

nginx并发极限:约12000,发生在比赛开始后的5分钟内。

服务器最高CPU负荷:apache+php服务器(15%),mysql主机(100%,双核四线程,最高400%),mysql从机(50%),memcache服务器(5%)

评测端数据:8台评测服务器,比赛大多数时间里,每台服务器平均运行一个评测进程,极限情况,比赛结束五分钟内,Waiting的评测数量一度达到 700个,在比赛结束2分钟后全部评测完成。

各场比赛情况:

练习赛1:3747人提交程序,19954次提交

练习赛2:2886人提交程序,17168次提交

资格赛1:4849人提交程序,25797次提交

资格赛2:4126人提交程序,27215次提交

资格赛3:4136人提交程序,24521次提交

5场比赛的总共有9047人提交过程序,仔细回忆了一下之前国内举办过的各类在线OI/ACM竞赛,这次有道难题应该算是参与人数最多,并发量最大的一次了。

做了两年多网络技术开发工作,这还是第一次面对这么高并发的应用,真是一次学习的好机会。整个架设过程遇到了很多困难,积累了很多经验。在web应用方面很多php和mysql细节的经验,以后有时间再陆续介绍吧。

感谢一个月来有道公司给我们的帮助和支持,尤其感谢春晓、志华、王俊、张跃的辛勤努力,希望接下来的三轮比赛一切顺利。

 

上周twitter更新汇总 2010-05-25

25
  • 我的脑海中有一幅不久后图虫的美丽画卷,全新的架构,真正符合用户需求的功能,每个页面各司其职体验流畅。我甚至考虑好了界面上的每一个小细节。每每想到,都感到无比兴奋。现在万事俱备,只欠实现了。 #
  • 半夜上图虫,速度快得让我有些不习惯。 #

Powered by Twitter Tools

 
 

上周twitter更新汇总 2010-05-18

18
  • 提交了5个svn revision,改动100多个文件(其实只是批量替换),感到很有成就感。睡觉去,闹钟定在10点,一定要爬起来。 #
  • 推荐一篇日志《关于商业模式的那些迷思》,http://ucdchina.com/snap/6677 #
  • 柳传志说:做企业要有理想,但不能理想化。
    我不能同意更多。 #
  • 一个月之内,所有人都在讨论foursquare,好像foursquare命中注定成为下一个google/facebook。好吧,我承认它很棒,很创新,但是我仍然不感兴趣。
    我不会因为什么东西能快速融到资,挣到钱,而去做它。 #
  • “你可能感兴趣的评论”开始测试。http://www.tuchong.com/thread/35156/ #
  • 非死不可,你的导航还能再乱一点吗? #
  • 师弟说IT太辛苦,要转行。我说,你不喜欢计算机,就转社会科学吧。他问:社会科学是什么?然后我就囧rz了。 #
  • 一帮没志气的LBS,除了抄还会干什么…… #
  • 倾盆大雨之后,忽然阳光普照。 #
  • 今天被人教训了,感到很惭愧。 #
  • gtalk上的好友签名全是各种设计师招募,看来新一轮互联网热潮果然到来了。 #

Powered by Twitter Tools

 
 

上周twitter更新汇总 2010-05-12

12
  • 又预订了几个.cn拼音域名,今晚写一篇.cn域名投资指南。 #
  • 转载:我觉得中文互联网应该弄一个"王兴效应",就是王兴同学要做哪一类型的网站,这一类型的网站就要火,而且离后续跟进者胜出就不远了。
    王兴做校内,成就了开心网;做饭否,成就了新浪微博;这次做团购,不知道会成就谁。当然,不排除成就他自己。 #
  • 修复图虫的flickr搬家功能 #
  • @xiaolai 笑来老师,我有比VPN便宜,且速度快的方法。如果你需要的话,我可以告诉你方法和帐号。 in reply to xiaolai #
  • 网易相册的设计师在研究图虫,又一次受宠若惊了。 #
  • 无意中看到我之前写Discuz!X的文章又被人转载到了官方论坛,底下一群人顶。小小地陶醉中。 #
  • 韩寒:不通过房地产或者卖地,不通过低端的加工业,一样有高GDP,而且是人均。好人不翻墙,坏人进监狱,有影响世界的文化,有别国模仿的文艺,一样干净的环境,一样自由的空气,看着被关进笼子的权力,把酒言欢,言无不尽。 #
  • ACM北大校内赛应该是老版本OpenJudge最后一次比赛了。下周我会把新版OpenJudge更新到服务器,欢迎测试。 #
  • 昨晚和一个大牛师姐吃饭,她的老板是姚期智哦。最后说起生活作息,她好像也是每天过伦敦时间。我觉得为什么IT行业的人都喜欢做夜猫子,这个问题很值得探讨。 #
  • Google持有 baidu.com.sb域名。orz #
  • dropbox被GFW,这对中国互联网界正在抄袭dropbox的小创业团队来说,可以回家洗洗睡了;对于阿里腾讯百度来说,需要往云存储部门投翻倍的人手了,因为决战就在明天;对于王兴同学来说,他此刻一定很庆幸,还好抄的是groupon而不是dropbox。 #
  • @palmtenor 嗯,我都看见了。可以理解。我会考虑的。 in reply to palmtenor #
  • @yuanotes ssh -D in reply to yuanotes #
  • 实在是不理解twitter这个严重信息过载的东西怎么会获得如此的成功。严重挑战我的基本常识。 #
  • 好烦好烦,鸭梨好大 #
  • 真希望有人能来帮我做marketing #

Powered by Twitter Tools

 
 

上周twitter更新汇总 2010-05-05

05
  • 早晨10点20分自然醒,是个好兆头,希望调整到9点起床。 #
  • 狂风大作,只听得阳台的门呼呼作响。弄得我都不敢出去吃饭。 #
  • 一上图虫就一发不可收拾,这才是我热爱的网站。 #
  • 做网站就像做爱,首先你要懂得“How To Make Love”,简称HTML ;如果觉得你对HTML已经精通了,你应该学学3P(ASP,PHP,JSP) 。。。 #
  • 佛说:“大疑才有大悟,小疑只有小悟,不疑就永远不悟。” #
  • 终于热起来了,总算有点夏天的感觉。 #
  • 现在的本科生们,普遍的现象是:大一的时候想成为科学家,大二的时候想环游世界,大三的时候想转行做金融。吴迪说得太精辟了。 #
  • 把上网本的ubuntu系统从9.10升级到10.04,850多个软件包600多M,居然成功了。新版ubuntu有很多新特性,体验很棒,非常流畅,还没有遇到什么错误。 #
  • 仔细看了一下wordpress.org和boygj.com上面的wordpress和joomla模板。虽然说都是CMS系统,但是wordpress还是带着深深的blog程序的烙印,相比之下joomla仍然是CMS最灵活的选择。 #
  • 研究了一下ubuntu Enterprise Cloud(UEC),看起来很不错的样子,可惜他要求CPU支持VT技术,而我手上几乎所有的机器都不支持VT技术 #

Powered by Twitter Tools

 
 

门户、论坛、博客、SNS,网站模式的辨析

29

前一篇日志谈了对新版Discuz!X的质疑。联想到戴志康在《Discuz!X产品设计点滴分享》说的那段话

SNS Portal BBS 这三个分别在中国起始于2009、1999和1997年的应用,从年龄上就不一样,积累下来的无论对与错的用户习惯更是千差万别,谈及融合,谈何容易!生硬整合的结果,就如同客厅里铺着70年代的水磨石地板,配一个21世纪豪华双开门冰箱,外加一套意大利餐桌,桌上还放着两根油条那么奇怪。并不是东西不好,而为什么放到一起就变得不伦不类呢?

我再来谈谈这段时间对社区的新理解。

门户,是互联网原始拓荒期的产物。它简单直接地把人们需要上网的东西,一股脑全放到了网上。内容太多怎么办?没关系,表格布局,每个主题一个豆腐块。

互联网普及之后,人们发现只用互联网发些新闻实在是大材小用。每个人都有发表言论和别人交流讨论的需要,于是论坛出现了。论坛让网络中的每一个人都有说话的权利。

过了两年,人们又发现,论坛虽然非常自由,适合讨论,但并不适合记录和展示。个人的文章,如果从论坛里看混乱不堪。于是就出现了一个相比新闻门户更加私人化的应用,博客。博客更好地解决了人们展示自我的需求。每个人都可以像撰稿人一样,在网站上发布看上去挺正式的文章。

在博客、论坛、新闻门户野蛮生长了几年之后,人们发现,互联网上的信息已经严重过载,远远超出自己的阅读能力。一个人可能关注论坛、门户、博客,如果每天逐一去打看浏览,查看是否有新内容,那将是一件极其痛苦的事情。于是就出现了聚合的需求。

首先出现的是技术解决方案:RSS。其实RSS在技术上确实是一个绝妙的思想。可惜它不够平民化,不够容易理解,始终没有得到大面积普及。普通网民需要一个简单直接的聚合方案。

SNS就是在这种环境下诞生的,一方面,它以人际关系为核心,把线下真实的朋友关系数字化地搬到了网上,另一方面,它解决了互联网上信息过于分散的难题,以及根据自己兴趣定制阅读内容的需求。

从信息本身的角度来讲,传统互联网,内容发布在什么地方,人就需要到什么地方去看,而web2.0时代,发布内容和阅读内容的地方可以完全分离。就比如说twitter,我网页、手机、im上都可以发tweet,而别人却是在自己的主页聚合阅读所有人的tweet。

其实,在当下这个信息爆炸的时代,最稀缺的资源是注意力。一条信息的价值大小往往不在于它本身,而在于它能被多少人看到。

我维护的一个论坛,在我刚接手的时候发现,所有人都只在一个版面里讨论,虽然我按照内容归类,把论坛分成了若干个版面,可是用户仍然坚持把所有信息发到主版。我去把帖子移动到它应该所在的版面,用户却意见极大,好像我把他们的帖子删了一样。实际上逻辑很简单,把帖子移动到一个没人看的地方,这个帖子就跟不存在一样。

论坛,仍然是按照内容的属性进行分类讨论的。人必须跟着内容分类走。而web2.0时代的社区(不仅仅是SNS),是让内容跟着人走的。不管内容保存在怎样几角旮旯的地方,都能够投递到所有可能对这个内容感兴趣的人的手中。过去我每天需要四处搜寻信息,而现在我只要自己定制一次,然后每天等着信息来找我。

为什么SNS社区中的用户普遍比论坛、博客的用户活跃?因为有更多的注意力,用户明白在SNS社区中发布的内容,能被更多的人直接看到,而且这些人都是真正对此感兴趣的人。

并不是说这个时代新闻门户、论坛、博客已经过时了。事实上他们仍然很好地发挥着自己的作用。因为,门户、论坛、博客是信息的最佳承载方式,相信他们会一直存在下去。

web2.0真正改变的,是阅读方式,SNS和门户、论坛、博客并不冲突。相反,它们之间是相辅相成的关系。如果没有门户论坛博客提供一个理想的内容发布平台,SNS没有内容可以阅读。如果没有SNS给门户论坛博客带去注意力,那么他们也毫无影响力。

SNS和门户论坛博客,应当是一边司职阅读,一边司职发布。可是康盛创想今天发布的Discuz!X融合系统中,却错误地把SNS和门户论坛,放到了并列的位置上去。这种不假思索的生硬整合,完全背离了用户的行为模式。

另一方面,国内的SNS网站一直试图在自己的网站内部,直接提供论坛、博客的解决方案,但是我认为这种封闭的做法终究无法真正起到内容聚合的作用。

好在facebook已经认识到了这一点,他们希望把整个互联网的内容、关系,都和个人的facebook帐号关联起来。我相信,那一定是SNS的未来。

 

Comsenz的7个短视之处

29

刚才写了一篇质疑的文章,本来准备接受一堆口水,没想到却大多数是支持的声音,着实让我感到意外。我这人就是骨头比较轻,既然有人支持,我对Comsenz的其他意见全都说出来吧。

强调一点,我写这些不是讨厌Comsenz,而是因为我欣赏Comsenz,希望它变得更好。

1.顽固坚持php4,迟迟不愿拥抱php5

其实这是我最不能理解的一点,Discuz现在的代码竟然还是以php4.3.0为最低标准的。

这种做法虽然说可以做到最大限度的兼容,php4的运行效率也确实比php5高不少。可是为了向下兼容,不得不牺牲很多高版本php的优秀特性。事实上,php5已经在各方面非常完善,面向对象方面的支持全面提升,PDO, json等类和函数相比php4强大太多了。

在CPU并行性能空前强大,内核数量4个8个12个递增的今天,php运行效率真的有那么重要吗?要知道现在web2.0网站的第一瓶颈是数据库服务器,而不是php服务器,即使php服务器压力较大,也有反向代理、动态DNS等各种各样简单有效的负载均衡方法解决。真的有必要为了些许的php运行效率,而放弃高版本php的强大功能吗?

2.代码架构混乱,不采用MVC框架,不面向对象

说实话,写了12年程序,Discuz代码我是下了十几次决心才敢开始阅读的。因为这套代码实在非常丑陋。

和我一起创业的同伴一直和我有一个争论,他坚持认为discuz发布出来的代码一定是生成出来的,内部开发的时候一定是另外一种结构。因为他认为discuz代码的可读性已经远远超过了正常人理解能力。

虽然康盛一直试图改进代码结构,在最新的Discuz!X中,我们看到他整齐的把function, class, plugins放在各自的目录里,但由于它不采用php5,也不采用MVC框架,因此代码中仍然充斥着global, require_once等等,和系统底层紧耦合且效率低下的糟糕写法。

由于没有运用MVC框架,也不面向对象,导致了插件机制难以实现,二次开发举步维艰。其实这对Comsenz自己开发团队成员,也造成了单元测试的困难。

3.缺乏国际化的眼光,偏爱gbk而不选择utf8

之前Discuz7.0beta发布的时候,有用户在论坛里问为什么只有GBK版本,没有utf8版本。当时有一个管理员回答:想不明白为什么有人不用GBK。

我当时就惊了。我自己做的网站,有很多留学生,动不动就会出现一些稀奇古怪的语言文字,如果没有utf8,可能有一半的文字表示不出来。

撇开我这种特殊案例不谈,utf8几乎从诞生之初,就成为了世界开源php界的标准。绝大多数的开源项目,wordpress, joomla, drupal, phpmyadmin, mediawiki都是只有utf-8版本的。

因为只有utf-8才能完美兼容多语言,并且可以实现用户界面的语言本地化。

其实按Discuz的实力,绝对不弱于国际上流行的phpbb,为什么comsenz不把眼光放长远一些,用心做一下多语言支持,抛出一个英文版让老外见识一下中国开源项目的实力呢?

4.插件机制落后

这两年来,我开始越来越多地使用wordpress建设各种CMS,越发体会到wordpress插件机制的好处。

虽然wordpress只是一个功能并不全面的博客程序,但是通过wordpress无处不在的插件机制,有数不清的开发者创造出了各种有想象力的插件,全方位地拓展了wordpress的功能。

现在每当我希望为wordpress程序增加什么功能,首先会去wordpress搜索相关插件,几乎每次都能找到满意的插件,省却了我大量二次开发的工作。同时,我至今仍然没有修改wordpress的一行代码。因为所有我的需求,都能通过插件,或者修改插件就能实现,不会污染wordpress核心代码。

而反过来看discuz,几乎每次discuz升级,都会是二次开发者的噩梦。因为他们总是被迫去修改discuz的核心代码。一旦discuz升级,那么这些二次开发代码就会被覆盖。这完全是因为discuz本身没有留下必要的插件接口,开发者才会被迫污染核心代码。

就算在Discuz当道,市场占有率超过75%的今天,Discuz插件依然少得可怜,不能不说是一个遗憾。

事实上,一个开源程序是否强大,并不在于它的功能有多丰富,而取决于它是否容易扩展,有丰富的第三方插件。

5.功能设计庸俗化,就事论事

童虎在Discuz7.0.0发布之后,预告7.1.0的改进方向,说是强化道具中心。我当时就绝望了。

难道Comsenz真的相信,靠一个道具中心,几张卡片就能让社区活跃起来吗?用户参与社区的原因难道是因为它有好玩的道具,而不是社区的人和内容吸引他?

其实,论坛的骨架,discuz7.0就已经搭得非常好。7.1和7.2的功能,基本上都是一些附加额外的功能,且这些功能普遍很庸俗,只会让社区变得复杂,难以学习,并无法本质上提升用户黏性。

我觉得原因在于,Comsenz团队实在太为站长着想了,以至于站长有什么要求,就往什么方向改进。这种就事论事的做法,看起来是为站长着想,事实上效果并不理想。因为很多时候,站长出现“强化道具中心”、“强化任务系统”的需求,是因为更深层次的活跃社区的需求,而这种需求可以通过改进社区的交互机制来实现,不应该从表面上解决它。

再拿“回复可见”帖的功能来说,根本就是个自相矛盾的悖论,这种设计绝对是中国特色。国外论坛根本没有回复可见的功能。“我连你正文内容都没看到,你让我回复你些什么?”在没有看到内容的情况下,用户的回复,往往空洞没有营养,说一些无关痛痒的废话,或者是双手支持的话。这种跟贴,表面上活跃了论坛,实际上产生了很多无意义的回复,反而影响了正常的交流。本来后面跟贴可以讨论主题内容的,结果全变成了为看帖子而发的无意义帖子。

再换一种角度看,放眼望去现在成功的web2.0网站,人人、豆瓣、大众点评、facebook、twitter,有哪一个是依靠道具中心和任务系统成功的?如果这招数真的管用,他们为啥自己不用?

我完全理解中国国情,很多网民对这些功能确实乐在其中。但是道具中心、任务系统、勋章中心这类功能完全可以以插件形式和核心代码解耦,让站长自由选择装还是不装。为什么要给核心代码加上这些臃肿的累赘呢?

6.版本号混乱,发布仓促

每次Discuz发布新版本,都是一个非常惊心动魄的过程。因为很有可能,你抢先去下载的刚发布版本,在下一秒,就已经发现bug被官方更新了。于是我们在主题帖内会看到:x月x日15点30分以前下载代码的用户,请安装补丁包,之后下载的用户无需安装。

另一方面,Discuz的软件版本号,光用x.1.0是不能描述清楚的,因为后面还有一个更新日期。这个更新日期才是决定版本相同相同与否的关键所在。

我当然非常欣赏Comsenz从善如流,发现bug之后迅速反应的精神。但是,开源项目新版本发现bug很正常,用户会理解的,何必这么心急非要在当天就修正,搞出各种各样的补丁包,让用户困惑呢。事实上,即使修正了刚刚发现的bug,并且重新打包发布了,下一秒可能又有新bug发现了。于是每个新版本发布时,实际上都会有2-3个相同版本号,相同更新日期,但是打包发布时间不同的文件存在。

既然用了x.1.0这样的三位版本号,为什么不采用开源界通用的标准。第一位表示主版本,引入关键特性时增加,第二位表示小版本,引入次要特性时增加,第三位表示补丁,修正bug时增加。这样,即使频繁发布新版本,也不会让用户产生困惑。

7.开发过程封闭化,缺乏开源人士参与

虽然Discuz!是一个开源程序,但是实际上,它开放的只有源码而已。他的整个开发过程都是全封闭的,以至于站长们可能会有整整一年时间不知道Comsenz在干什么。bug反馈,到现在仍然在采用发帖的方式。

既然丑媳妇总要见公婆,为啥不把开发过程开放出来?让更多的开发者参与到Discuz的开发过程中,受益的肯定是Comsenz。

戴总可能会说,内部代码都是带注释的,每次出新版本才打个包放出来。那也没关系,把代码隐藏了,用trac做一个规范的bug提交反馈系统,允许用户给系统提建议也可以啊。

所谓“成也萧何,败也萧何”,Comsenz因为把握中国国情而获得了巨大成功,但不要因为中国国情而限制了自己的视野。多向国外成功项目学习,相信Comsenz一定能获得更大的成功。

上述意见,基本上都是从开发者角度的看法,关于用户行为模式的问题,可以看前一篇博客:
Discuz!X的研究和质疑

 

discuz!X的研究和质疑

28

3月28日,戴志康释出了传说以久的内部代号为UltraX的体验版。大概是希望借用discuz已有的巨大号召力,UltraX在发布之前还是改成了discuz!X。

我在第一时间去discuz.org注册体验了一下,体验感受和我之前预计的相差无几,整理一下写出来,大家讨论:

SNS、门户、论坛互相冲突

X项目的最本质目的,应该是把Comsenz旗下的三大项目:Discuz、SuperSite和UCenter Home进行融合,减小项目和项目之间的隔阂,使之能更好地融合成为一个网站。

这一定是广大站长向Comsenz反应的一个共同心声。可是,站长们真的明白自己需要什么吗?融合了之后真的能让网站更好吗?Comsenz在大刀阔斧之前想清楚了吗?

一般来说,网站的内容质量从高到低可以分成三个档次:

  1. 媒体型,内容质量很高,有高水平的,固定成员的编辑团队。访问者到网站来大多数为了看内容,用户群结构上是一群读者围绕着一个牛人。这种类型适合建CMS型站点或者是博客。
  2. 草根型,虽然没有明确的编辑团队,但是大部分用户都有创造内容的能力,用户有时候会创造内容,有时候也会阅读评论内容。内容水平虽然够不上出版,但还不错,有信息量有价值,以垂直主题为核心。这种类型适合BBS形式。
  3. 灌水聊天型,用户的文化程度不高,讨论漫无边际,并且常会出现小圈子,用户和用户之间通过人际关系维系。这种用户类型适合建SNS站点。

不管是网站的哪一个板块,都大抵是同一批人在访问。同一批访客,就有相似的需求,具有相似的特性。基本上,个人站点都只能属于上述三种情况之一,而很少会出现媒体型和灌水型混合的情况。

我们看到过太多太多的网站,首页打开内容丰富品种繁多,但是毫无吸引力,大部分人都会在长长的菜单条里寻找一个叫“论坛”的东西。那才是网站有人气有内容的地方。

Discuz!X,说到底,只是在用户体验上对门户和论坛进行整合,可是从用户行为模式上,这两者恰恰是很难整合,甚至是格格不入的。网站一般只是上述三种模式之一,因此也只需要CMS、BBS、SNS三种系统之一。就算有些网站提供了多个系统,实际上,真正有人气的,也只有一个系统。与其做多个系统,只火一个,不如只做一个系统。

所以说整合是个无用功。

阅读方式无法融合

Discuz!X的融合计划,在体验上有一个致命伤,那就是阅读方式无法融合。

门户的内容展现方式,是报纸式的,长长的网页,左一块图片,右一块新闻列表,七拼八凑地一个新闻网站就出来了。可是用户的眼球也很累,东一下,西一下,他根本不知道自己应该用何种阅读顺序才能一笔画地把所有新闻看完。实际上,大多数用户都不会有耐心去把每一块的内容浏览完,而是会迅速找到自己关心的主题,点进去看新闻列表或者是博客列表。

论坛的方式是兴趣引导型的,在首页版面列表里迅速寻找自己感兴趣的版面,然后点进去开始阅读。

SNS的阅读方式是个人为中心的,在首页浏览长长的自己感兴趣的新鲜事列表,一页又一页。

三种系统的阅读方式截然不同,试问,用户怎么可能同时适应三种阅读方式?事实上,用户只会习惯性地去刷同一个页面寻找内容,而不会听话地把三个系统的首页都看完。

最终结果,正如前文说的,三个系统只火一个,另外两个成为摆设。

小组和论坛之间的尴尬关系

戴在新年的时候写了一篇文章,其中提到小组和论坛之间的相似性的问题。我满怀希望他能够想明白,把小组和论坛融合到一起去。可惜他没有这样做。目前小组和论坛的融合,只是功能和代码上的融合,概念上,仍然是独立的。

我曾经也坚定地认为,一个网站,需要有一些公共版面,也需要有一些兴趣小组。但实际上,这种设计是多余的。

小组的出现,就是为了解决网站版面太多时无从看起的困难,人大多数只会对某些少数版面感兴趣,通过加入小组,来表征自己对某些主题或者人群的偏爱。

实际上,即使是公共版面,也有人想看,有人不想看。为什么不把论坛版面和小组全部统一成小组,然后允许对小组做细节权限设定实现公共版面和兴趣小组的差别呢?

现在的discuz!X的做法,虽然在功能上做到了小组和论坛的统一。但是概念上,两者仍是不同的概念,导航结构上,属于两大不同的模块。并没有起到真正融合的效果。

排楼式帖子旧疾难改,点评模式治标不治本

中国式的论坛,有一个臃肿的坏毛病。每一个回复,都巨长无比,左边会加上用户的大头像,金钱、威望等等论坛概念的数值,甚至注册时间和最近登录时间。整一个人口普查。跟贴内容,就算只有一行字,后面也会跟着一个用户签名。更要命的是,有时候签名还是一张大图片。浏览者每一次看帖,累得要死,碰到这种大图片签名的用户,翻一屏才能看到一行字。

大多数的帖子,楼主的内容都是比较有价值的,比后面抢沙发板凳的无意义回复有价值得多。本来就不应该平等处理。跟贴内容往往就是几个字,一行字。为了这一行字,还要配上回复人的各种信息,以及签名,实在是很影响阅读体验。一页往往只能显示15-20个跟贴。

由于糟糕阅读的体验,导致了用户阅读的积极性不高,回复的积极性也不高。最后迫使发帖人选择“回复可见”这样的方式来强迫跟贴。陷入恶性循环。

而web2.0时代的设计,豆瓣、人人、开心,则是清一色的简洁式的,用户头像只显示48px的小尺寸版,除了用户名之外不显示任何用户信息,不显示签名。这样的好处显而易见,网页上只显示跟帖子内容有关的文字,其他统统隐藏。阅读体验很流畅,网页的容纳量也很大。豆瓣小组的一屏会显示100条回复。

我相信Comsenz内部一定有过关于简化帖子跟帖的讨论,否则UCenterHome的小组不会做成简洁式的回复。但是在这次论坛和小组的融合中,Discuz还是在排楼式和简洁式中选择了前者。

他们大概觉得,如果把帖子的跟贴大刀阔斧地改成简洁式的,个人站长们肯定要造反的。

于是他们选择了另一种妥协方案:在排楼式的帖子里加入点评功能。点评是简洁式的。很省空间。可是这其实是一个很表面的设计,它没有考虑到用户的阅读习惯和阅读顺序,以及用户的发言心理。

用户会发现在点评里发言得不到关注,说出去的话向一块扔到黑洞里的石头,听不到一点回声。因为点评不顶帖,显示的面积比排楼小很多,点评超过5条之后会隐藏,更要命的是,其他用户在浏览时,往往会快速滚动滚动球,拉到最下面看最新跟贴,根本不会注意中间会有一个“点评”。

如果你是用户,你想说话的时候会选择点评,还是跟贴?毫无疑问是跟帖,因为那样很醒目,会把帖子顶上去,得到更多关注。

事实上,跟贴和点评,其实都是讨论,实际情况是可能都没什么意义,为什么还要从显示效果上区分这两者呢?

插件机制依然非常不成熟

这两年来,我开始越来越多地使用wordpress建设各种CMS,越发体会到wordpress插件机制的好处。

虽然wordpress只是一个功能并不全面的博客程序,但是通过wordpress无处不在的插件机制,有数不清的开发者创造出了各种有想象力的插件,全方位地拓展了wordpress的功能。

现在每当我希望为wordpress程序增加什么功能,首先会去wordpress搜索相关插件,几乎每次都能找到满意的插件,省却了我大量二次开发的工作。同时,我至今仍然没有修改wordpress的一行代码。因为所有我的需求,都能通过插件,或者修改插件就能实现,不会污染wordpress核心代码。

而反过来看discuz,几乎每次discuz升级,都会是二次开发者的噩梦。因为他们总是被迫去修改discuz的核心代码。一旦discuz升级,那么这些二次开发代码就会被覆盖。这完全是因为discuz本身没有留下必要的插件接口,开发者才会被迫污染核心代码。

就算在Discuz当道,市场占有率超过75%的今天,Discuz插件依然少得可怜,不能不说是一个遗憾。

不知道戴总会不会看到我这个无名小卒的评论。或许上述判断有很多偏激之处,请海涵。

虽然我有各种质疑,但是我还是会把自己维护的论坛上升级到X,仍然感谢Comsenz给我们带来这么好的开源php建站程序,祝新生的Discuz!X一路走好。