2011-05-15 83 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是當前的架構