2011-05-15 78 views
4

如果您现在要重新实现SO,您会使用哪些技术?如果您仅限于Java技术,您会使用哪些技术。建议的重新实现技术stackoverflow.com

+2

的概述这是一个真正的问题,还是一个开放式的讨论? – Blender 2011-05-15 06:18:47

+3

这当然是一个有潜在信息答案的问题。而且地狱里,互联网上的任何问题都可能是一个开放式的讨论。 – 2011-05-15 06:24:31

+2

@Blender这真的是一个问题;一个有多个答案。但是这与大多数关于stackoverflow的问题没有什么不同,人们争论的是'正确'的代码方式。 – Jeff 2011-05-15 06:30:46

回答

6

这是我写的答案。

这是一个有趣的问题,因为SO实际上是以一种非常传统的方式为Web应用程序构建的,但与通常的Web应用程序并没有太多共同的特征。特别是它需要高度可扩展性,但业务规则和数据存储要求并不复杂。

因此,使用现在的技术,我会使用

  1. 传统的JavaScript; SO使用jquery,那很好。

  2. 我会使用像Unicorn这样的面向工作区的web应用程序,以便于扩展。

  3. 我会使用Hadoop和Cassandra来存储问题和评论。

  4. 我会在整个数据库中实现使用MapReduce的评分和排序规则。

方便的是,其中大部分可从Java获得,但我更喜欢使用Ruby或Python之类的脚本语言。

我会避免通常的基于Java EE的世界。在我看来 - 我是Sun的早期Java EE用户 - 那个techno.logy太过分了。我也会避开基于Windows的服务器;他们很难管理,而且相对昂贵。 (我可以用与OS许可证大致相同的价格构建服务器硬件。)

1

我没有坐在办公室角落的服务器机架:),把它放在云端。

BTW here是当前的架构