SegmentFault是一个面向国内IT行业开发者的问答社区,经过两个月的设计和开发SegmentFault团队于8月对网站进行了升级,不仅UI整体改版,交互流程和网站功能也有了很大的不同。InfoQ就SegmentFault的这次升级对团队成员进行了采访。

\

InfoQ:SegmentFault于近日进行了升级,能介绍一下升级的背景吗?

\

\

祁宁:如果说SegmentFault以前只是一个心血来潮的结果,那么现在已经算我们比较正式的事业了,毕竟各位参与者都放弃了手中现成的工作来到了杭州,一起共谋这个在他人眼里注定艰难的事业。这次升级其实也是这么一个背景,以前的网站只能算是一个个人作品,但是现在我们要把它变成一个产品了,这两者的差距我相信做过项目的人心里都清楚。相比较来说,技术架构上的升级都是顺其自然的,因为一切都已经有了这个前提。

\

\

InfoQ:当前的网站和之前在架构上有哪些不同?

\

\

祁宁:网站的框架已经全部重写了,层次更加分明,不过重构这东西对技术人员来说就跟家常便饭一样。要说真正的不同其实有几个方面。在框架上来说我们在PHP里引入了Java中注入变量的概念,虽然不是完全相同,但也已经到了神似。实现起来其实很简单,只是几个PHP的小技巧,但是却解决了PHP项目中一个让人头疼的问题,就是模块的自由引用。

\

另外一点升级就是我们对Redis使用更加成熟,如果说以前我们看Redis只是一个见猎心喜的小孩,什么数据都要一股脑的往里面放,现在我们就更加理智了,因为我们已经知道Redis什么能做什么不能做,使用的时候也更加有的放矢。

\

在数据层次上,可以看到我们已经统一了所有对象的id,也就是说在SegmentFault中所有资源都有一个各自对应的完全独立的id。这为以后功能的扩展提供了极大的方便。

\

高嘉峻:祁宁描述了技术架构上的变化,我说一下这次升级在产品架构上的变化。之前SegmentFault的产品和设计很大程度上借鉴了StackOverflow,在过去一年左右的时间里,我们也在不断思考,什么样的产品模式才适合国内的技术环境。

\

这次改版,我们更强调了产品的社交属性,提供更多个性化的功能,增强用户发现答案的可能性;另一个重要的变化,就是对搜索框的强调,我们希望搜索框可以成为SegmentFault最重要的入口,通过减少入口简化解决问题的流程。

\

可以说这次改版,我们摆脱了StackOverflow的影子,这是一个属于我们自己的SegmentFault。

\

董锋:产品设计之声望与等级:声望单纯从数字上看,很难看出用户的声望值与提问或回答的价值关系,所以我们引入了等级概念。将用户声望按高低排名分成了 11 个等级,参见这里,这样问题和答案的价值就能通过作者的等级很直观的区分。

\

\

InfoQ:SegmentFault希望能够为国内的程序员提供最有用的问答,那么在搜素上我们是如何做优化的?

\

\

祁宁:首先我们提供了实时搜索功能,当然这是redis实现的,实时搜索能让用户更快更准确的定位资源。

\

然后我们的主力搜索引擎使用了国人开发的xunsearch,虽然它是基于Xapian的二次开发,但是封装后的API非常好用,而且也满足了我们的基本需求,它对中文的良好支持也是我们选择它的重要原因。

\

高嘉峻:之前说过我们希望强化搜索框的入口功能,所以这个产品对搜索要求会比较高。现阶段我们对搜索引擎的设计,更多考虑的是高扩展性,尤其是产品和功能上的扩展性。

\

早期SegmentFault的数据量还非常小,所以我们没有在搜索性能上做太多工作。功能上,我们希望随着网站的发展和运营,通过对用户行为的深入挖掘再扩展,我们使用xunsearch为问题、标签和用户建立了三份索引,也是出于易扩展方面的考虑。

\

高阳:新版网站搜索的改进很大程度上归功于Redis的使用,也可以通过这个文档来了解相关内容。

\

\

InfoQ:SegmentFault的问题URL是无语义的,这一点和Stackoverflow不同,这是基于哪些考虑?

\

\

祁宁:是的,现在的url已经是由纯id组成。其实这也不难理解,Stackoverflow或者国外网站用标题切分作为URL的一部分无疑就是为了SEO,但是这一点英语上有天然优势,首先它每个单词是切分好的,再用中横线连接就可以自然形成一个个关键字,但汉字却不行,大多数标题连一个标点符号都没有,在SEO中的效果不会很好,其次,英文的字节长度要小于中文,可不要小看了这一点体积,因为我们的中文字节码都是要经过urlencode,所以一个汉字的实际长度就很可观了。

\

因此对我们来说,与其在url这种细微末节上想伎俩,不如扎实的做好内功,做一个真正高质量的社区相信对搜索引擎的影响总比URL来的高吧。

\

\

InfoQ:我看到SegmentFault的邮件系统采用的Amazon Simple Email Service(Amazon SES),那在SegmentFault的整个系统中是否还采用了其他的SaaS服务?在集成这些服务的时候您觉得需要注意哪些问题?

\

\

祁宁:在选择SaaS服务上来说我们显得很谨慎,主要是国内这一点还太欠缺,没有什么可靠的选择,我们还不想当试验品,另一点就是选择过多的SaaS服务,特别是这些服务还来自不同的提供商,会增加系统本身的复杂度,让它难以维护,可靠性也会降低。

\

但是选择国外的服务也会有风险,比如有段时间SES就会因为众所周知的原因而导致网络无法访问,这时候就需要你用另外的服务器做中转了,这也是我们没有贸然选择的原因,这其中的坑实在比较多。

\

\

InfoQ:在整个SegmentFault的开发过程中您能分别列举最让人激动和纠结的两个技术实现吗?

\

\

高嘉峻: 我个人比较兴奋的一个技术实现是我们这个PHP框架中一个Data模式,Data模式加上以上Joyqi提到的注入。

\

我们解决这个问题,多场景要求不同的数据模型进行不同组合,而我们却不需要为这些场景分别定义数据结构,只需要在使用时直接调用,框架会在运行时注入数据。无论是开发效率还是运行效率都有提升。

\

董锋:在使用LESS还是Sass语法编写CSS纠结了很久。先用LESS写了一段时间,发现代码量控制不太好,与HTML结合过于紧密,有不少局限性,于是转投更成熟的Sass,很好的将样式表模块化,提高复用率和效率。

\

我们还大胆了引入了响应式web设计(responsive design),使网页在不同分辨率的终端下都能良好的展示。

\

\

InfoQ:SegmentFault社区当前讨论比较热烈的话题有哪些?SegmentFault如何跟踪这些热点话题?

\

\

高嘉峻:首先我想解释一个问题,SegmentFault提供的不是一个讨论平台,SegmentFault是一个发现答案,解决问题的地方。

\

现在在SegmentFault平台提及最多的技术还是Web开发这个领域,如果说具体的技术上,PHP和MySQL是最活跃的。我想这个现象与当下SegmentFault的发展阶段比较初级,会员还集中在Web开发领域有关。我认为随着SegmentFault的发展,用户组成会逐渐扩展到各个技术领域,趋于平衡。移动开发技术的问题会逐渐多起来,移动技术发展阶段比较初级,而且初入这个领域的人也会越来越多,需要SegmentFault的人在这个领域更集中。

\

我们正在构思一些数据挖掘类的产品,随着我们数据量的上升,对这些热点问题的跟踪和挖掘才会有意义。

\

\

InfoQ:SegmentFault使用的PHP语言做开发,那么作为PHP语言的资深用户,据你的观察最近整个PHP社区都主要关注哪些热点问题?

\

\

祁宁:要说PHP的发展,确实还是比较让人振奋的。首先是Laruence成为了为数不多的PHP核心开发组一员,作为一个中国的PHP开发者,我感到由衷的高兴。另外一个就是PHP的开发者越来越务实了,最近看到开发语言排行榜,PHP的排名下降了一些,其实这也是件好事,肯定很多人明白了PHP能干什么,不能干什么,这可以让这门语言的社区少一点浮躁。我希望的是PHP在擅长的领域做到极致,而不是什么都做个大概。

\

\

InfoQ:能和大家分享一下垂直型问答社区发展的探索、感悟,以及SegmentFault接下来的开发计划?

\

\

高嘉峻:其实不管做什么社区,最重要的是要有一个属于自己的性格。社区有性格,才能吸引志趣相投的人,留住这些人。我们最垂直的问答社区,就是要找到这个性格,踏踏实实做技术,做一个勤奋,聪明的技术宅,坚持展现这个性格,是我们要做的最重要的事。

\

说到接下来的计划,我们仍然是坚持帮助用户发现答案,解决问题的原则,围绕用户个性开发一些产品。

\

另外,我们还发现很多朋友对SegmentFault的私有技术很感兴趣,我们会逐渐把这些技术完善,在合适的时候开源。

\

高阳:对于SegmentFault接下来的发展,我想在保证更好产品设计的前提下,接下来的重点会在社区运营方面加强。对于创业公司而言面临的是综合的竞争,除了你熟悉的产品和技术,运营能力在国内互联网环境中显得极其重要。国内的竞争环境更加复杂甚至恶劣,好的产品自动脱颖而出的可能性小,所以我们会转变思路在运营以及对外合作上面下一些功夫。我相信通过不断的运营可以发掘迭代出真正满足用户需求的产品。

\

\

相关内容

\

  • 专访SegmentFault创始人祁宁\

感谢贾国清对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

专访SegmentFault开发团队:垂直问答社区的架构升级相关推荐

  1. 开源问答社区软件Answer

    什么是 Answer ? Answer 是一个开源的知识型社区软件.您可以使用它快速建立您的问答社区,用于产品技术支持.客户支持.用户交流等. Answer是国内SegmentFault 思否团队开发 ...

  2. (附源码)springbootBBS问答社区系统的设计与实现 毕业设计121007

    基于springboot的BBS问答社区系统 摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势:对于BBS问答社区系统当然也不能排除在外,随着网络技术的不 ...

  3. SegmentFault 思否发布开源问答社区软件 Answer

    ONES 旗下技术问答社区 SegmentFault 思否(下称"思否")今日宣布,正式对外开源其问答社区软件 Answer. 作为国内领先的新一代技术问答社区,思否始于「聚集体智 ...

  4. 突发,国内技术问答社区SegmentFault竟然被ONES收购

    大家好,我是校长. 突发事件,我们国内最大的技术问答社区竟然被 ONES 收购了. 具体情况如下: SegmentFault 思否被 ONES 收购了,而今年也刚好是思否的十周年,思否的创始人兼 CT ...

  5. 2012CSDN网站八大职位急聘:PHP开发工程师、Ruby开发工程师、UI设计师、网络工程师、问答社区编辑、问答社区运营专员、移动频道编辑、软件研发频道编辑

    CSDN创立于1999年,是中国最大的中文IT知识服务集团,专注IT信息传播.技术交流.教育培训和专业技术人才服务.拥有超过1800万注册会员.10000名CTO.50万注册企业及合作伙伴,全球中文网 ...

  6. 游戏开发团队项目经理的专访--- 徐丹

    游戏开发团队项目经理的专访 徐丹, 百竹数字娱乐研发部项目经理.国内少有的兼备超强技术造诣的管理者. 徐丹为什么会走上游戏开发这条路呢?他说:"因为我喜欢游戏,也喜欢和别人不同:小时候玩得比 ...

  7. 专访SegmentFault创始人祁宁

    社会化问答网站自去年起就成为了互联网行业的热点之一,针对程序员的垂直类问答网站也已经出现,本文所提到的SegmentFault(思问)就是其中典型的代表,我们采访到了高阳(@高阳Sunny)和祁宁(@ ...

  8. 从立项到发布仅三个月,开源技术问答社区 Answer 是如何诞生的?

    在祁宁家里,有一套完整的赛车模拟器,他甚至还请人到国外代购了最新的 VR 设备.作为沉浸式赛车游戏发烧友,除了享受速度与激情带来的愉悦感,祁宁在玩的过程中更多的是思考如何将技术能力进行产品化的问题. ...

  9. 如何组建优秀的APP开发团队

    如今,最好的创业机会是什么?毋庸置疑,互联网/移动互联网方向,这是大势.中国首富之子.电竞公司董事长王思聪最近在高端知识问答社区也表示,如果白手起家,这是门槛最低,最易成功的方向. *"网友 ...

最新文章

  1. 第二十二课.XGBoost
  2. C++ 与 JAVA区别
  3. cordova 不安全 css,[译] CSS Flexbox 中安全/不安全的对齐方式
  4. 客户端相关知识学习(四)之H5页面如何嵌套到APP中
  5. 写下thinkphp5和thinkphp3.2的不同
  6. ACCESS 文本文件导入和导出指定字段类型的方法
  7. 程序员求职面试三部曲之三:快速适应新的工作环境
  8. 【LCT】历史(P4338)
  9. MariaDB通过命令行的方式导出指定数据库和还原指定数据库
  10. 一次kvm嵌套虚拟化踩坑经历
  11. 问题的提出方式。(【先】说出最关键的【结果】,然后再描述细节)
  12. Python爬取百度搜索风云榜实时热点.
  13. 【优化算法】粒子群优化算法(PSO)【含Matlab源码 1073期】
  14. 演讲稿【物性的神奇】
  15. linux运行igv报错,IGV 哐当就不能用了,除了换台电脑还能怎么办?
  16. C++11 std::mutex使用以及std::lock_guard自动解锁避免忘记解锁
  17. 敏捷实践之回顾会议Retro
  18. 城镇职工修改医疗定点机构?如何查询定点医疗机构编码?
  19. 共享IP和独享IP是什么?有什么用?
  20. 深度学习 (五)cbow、skip-gram of word2vec

热门文章

  1. CodeForces - 727E Games on a CD 字符串Hash
  2. 解决“错误0x80071ac3”文件无法写入移动硬盘
  3. MySQL命令简单应用
  4. 修改后的小米文件管理器(去掉远程管理)
  5. 我的软件开发经历和收获
  6. 三个和尚没水喝的启发
  7. 轴承故障诊断之时域指标
  8. anacnda 子环境管理
  9. PDF怎么编辑修改内容?教你一招轻松搞定
  10. Chrome-Chrome源码剖析