谁有黑客微信,我想查老公开房记录,要怎么查

首先来看一下Quora网站开发主要利用到的技术:Web层与CMSHAProxy作为前端负载均衡服务器,反向代理服务器是Nginx,Nginx后面则是Pylons(Pylons + Paste),承担动态Web请求。Webnode2与LiveNode这两个内部系统承担创建、管理内容

首先来看一下Quora网站开发主要利用到的技术:

Web层与CMS

HAProxy作为前端负载均衡服务器,反向代理服务器是Nginx,Nginx后面则是Pylons(Pylons + Paste),承担动态Web请求。

Webnode2与LiveNode这两个内部系统承担创建、管理内容的重任,Webnode2生成HTML、CSS与JavaScript,并且与LiveNode轻度耦合。LiveNode的作用用以显示Web页面内容。用Python、C++与JavaScript写的。特别提到用到了jQuery与Cython。LiveNode有可能开源。

为什么用Python?

前面已经提到了一些Python相关的技术组件。有意思的是从Facebook出来的团队居然用Python作为主要开发语言。Quora对此有所解释:Facebook选择PHP也并非是最佳选择,而是有历史原因。Quora技术团队在考察了多个语言之后选择的Python,当然理由有一大堆,总体看来,并非很激进。

通信处理

后端通信使用的是Facebook开源出来的Thrift,除了开发接口简单之外,可能更为熟悉也是一个因素吧:)Comet服务器使用的是Tornado,用以处理Long polling以及Push 更新(不知道知乎用的什么?),Tornado是前FriendFeed技术团队开源的产品。

实时搜索

因为Sphinx不能满足实时性方面的要求,Quora启用了自己开发的搜索引擎,只使用了Thrift与Python Unicode库,此外没有用别的。Quora的搜索比较特别,因为要对输入内容做关联并且要做有效提示,所以需要提供更好的前缀索引(Prefix indexing)功能。

Quora搜索的实现还是挺有技术含量的,对后端的查询请求压力也不小(或许当前的并发请求量还没那么大)。对这个场景,做相关开发的朋友不妨仔细研究一下。如果大体框架类似,那么决定最后生出的因素很可能是那些细节。

数据持久层

大量使用MySQL作为存储方案,Memcached作Cache层。没有使用当前比较火爆的NoSQL相关产品。Quora这样做有自己的理由,用户量级没有达到百万的SNS站点完全没必要用NoSQL的东西。或许以后Quora也会启用。

创始人查理·奇弗(Charlie Cheever)与亚当·德安杰洛(Adam D'Angelo)之前都在Facebook,所以,Quora的技术还真有不少Facebook的基因。Quora的团队规模并不大,做技术的估计十余人而已,这么紧凑的团队利用了这么多的技术与产品,可见很多人都是多面手了。这是国内技术团队需要向国外同行学习的地方。

Quora 的技术管理经验:

Quora 的代码质量四项原则

1. 阅读和理解代码应该是简单的 —— 开发者读代码的时间远远大于写代码的时间。因此Quora应该尽量使代码简洁易懂,尽管写出那样的代码可能会需要比原来更长的时间。

2. 不同部分的代码应该有不同的质量要求 —— 不同部分的代码对于长期开发带来的影响是不一样的,因为它们有不同的生命周期、影响范围、被破坏的可能性、破坏后带来的后果大小,以及debug的难度。总体来说,不同的代码对于产品迭代的速度的影响是不同的,因此对所有代码都一视同仁显然不是最佳选择。

3. 维护代码质量的成本是可以减少的 —— 开发自动化,更易用的开发工具,更好的流程,以及更好的开发者都能够减少维护代码质量的成本。

4. 整个代码库应有一致性 —— 整个代码库的一致性是很重要的,尽管这意味着某些局部代码可能并没有用最佳的方法去写。一个缺乏一致性的代码库会使阅读,理解(参加第1点),后续功能添加,和使用自动化工具来改进代码都更加困难。


  • 发表于 2020-11-30 12:35
  • 阅读 ( 320 )
  • 分类:互联网

0 条评论

请先 登录 后评论
i阿海
i阿海

706 篇文章

你可能感兴趣的文章

相关问题