0

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

Как вы думаете?

ответ

0

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

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

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

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

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

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

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

Н-ярусу нужен выделенный хостинг.

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