Является ли многоуровневая архитектура для масштабируемого веб-сайта преждевременной оптимизацией? - PullRequest
0 голосов
/ 17 января 2011

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

Что вы думаете?

1 Ответ

0 голосов
/ 17 января 2011

Это зависит от того, на какую платформу вы собираетесь положиться.

Вы можете разработать n-уровневую архитектуру, используя передовые методы и избегая зависимостей между уровнями, и у нее есть дизайн, который может вырасти до n-уровневого подхода.

Например, если вы находитесь на арене .NET, переносить не n-уровневую архитектуру на n-уровневый легко благодаря Windows Communication Foundation, который позволяет вам не писать много кода для предоставления ваших услуг через HTTP необработанный TCP или любой другой протокол, который вы хотите использовать для связи уровней, и даже код клиента для их использования.

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

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

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

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

Для N-уровня потребуется выделенный хостинг.

Можете ли вы предоставить больше информации о целях вашего проекта? (Я имею ввиду с точки зрения масштабируемости).

...