2012-02-16 8 views
4

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

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

Есть ли набор лучших практик, которые позволят вам более легко масштабироваться на более позднем этапе, не вкладывая слишком много в то, что никогда не понадобится?

Очевидно, что у меня нет опыта работы с масштабируемыми веб-сайтами. В настоящее время я склоняюсь к Scala/Play!/Акка. Из того, что я могу получить на веб-сайте Akka, он очень подходит для такого проекта (в том, что он предоставляет набор инструментов, который позволяет разрабатывать на одной машине и масштабировать до произвольного числа машин).

Проект представляет собой ориентированный на потребителя веб-сайт, который включает в себя взаимодействие с пользователем (комментарии, сообщения, голосование и т. Д.). Однако основное внимание уделяется редакционной работе. Это не Facebook :)

Не испытывая ни одной из этих технологий (мой опыт, главным образом, исходящий из PHP, AS3, Objective-C), я, вероятно, слишком сильно на моей пластинке сейчас. Но тогда я не собираюсь сразу же это делать. Я знаю, что мне нужно получить опыт использования Scala и Play! первый.

Любые советы приветствуются.

+0

Поскольку вы новичок в Scala, вам все равно придется переписывать (или говорить «делать крупные рефакторинги»). Я постараюсь придерживаться непосредственных требований. Я рассматриваю этот общий совет, а не конкретно касаюсь вашей проблемы. – ziggystar

ответ

4

Начните с простого проектирования модели, выполните модульные тесты для этого, а затем установите над ним свой слой презентации. Пока ваша модель разумна, будет легко масштабировать Play на любое количество машин. Если вы собираетесь использовать поддержку JPA, вы всегда можете решить вопрос о том, для какой БД идти.

На данный момент у вас больше вещей на вашей тарелке. Поэтому просто убедитесь, что ваш дизайн является последовательным и разумным, тогда масштабирование не будет проблемой.

2

У вас есть начало с использованием безгражданной веб-структуры, такой как Play! это не будет мешать, когда вам нужно масштабировать. Как говорит ExxKA, держите свою модель чистой и разумной. Это поможет вам сохранить преимущество сложности.

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

Есть неизбежные вещи, которые вы узнаете в процессе написания проекта, поэтому не пытайтесь их предвидеть прямо сейчас.