Предлагаемые технологии для повторной реализации stackoverflow.com - PullRequest
4 голосов
/ 15 мая 2011

Если бы вы собирались переопределить SO сейчас, какие технологии вы бы использовали?Какие технологии вы бы использовали, если бы вы были ограничены технологиями Java.

Ответы [ 3 ]

6 голосов
/ 15 мая 2011

И вот ответ, который я писал.

Это интересный вопрос, потому что SO на самом деле разрабатывается очень традиционным способом для веб-приложений, но не имеет много общих характеристик с обычным вебприложение.в частности, он должен быть масштабируемым, но бизнес-правила и требования к хранилищу данных не являются сложными.

Таким образом, при использовании современной технологии я бы использовал

  1. обычный JavaScript;SO использует jquery, это было бы хорошо.

  2. Я бы использовал ориентированное на рабочую среду веб-приложение, такое как Unicorn, для легкой масштабируемости.

  3. Я бы использовал Hadoop и Cassandra для хранения вопросов и комментариев.

  4. Я бы внедрил правила оценки и ранжирования, используя MapReduce для всей базы данных.

Удобно, что большинство из них доступно из Java, хотя я бы предпочел язык сценариев, такой как Ruby или Python.

Я бы избегал обычного мира на основе Java EE.По моему мнению - и я был очень ранним пользователем Java EE в Sun - этот techno.logy перегружен.Я бы также избегал серверов под управлением Windows;ими сложно управлять и сравнительно дорого.(Я могу собрать серверное оборудование примерно по той же цене, что и лицензия на ОС.)

1 голос
/ 20 июля 2011

У меня не было бы серверной стойки в углу моего офиса :), она была бы в облаке.

кстати здесь - обзор текущей архитектуры

0 голосов
/ 22 мая 2011

Scale OUT, а не UP.

...