Почему веб-архитектура должна быть слабо связана?

Когда я смотрю на ASP.NET проекты MVC, я каждый раз вижу свободную двойную архитектуру.

Поскольку, что мне нужна слабая связь в веб-архитектуре (если я не делаю модульные тесты)?

Что такое преимущества и недостатки этого?

Что главная причина состоит в том, чтобы отделить слои/классы?

Что, если я не хочу изменять свой DAL, например? Я имею в виду, когда я изменю свой целый DAL?! Таким образом, я мог связать свой DAL с UI. Что плохо с этим?

28
задан Rookian 28 June 2011 в 20:31
поделиться

7 ответов

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

Здесь вы можете увидеть интересную небольшую статью: SOA - Слабосвязанная ... Что?

Вкратце говорится:

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

3
ответ дан 28 November 2019 в 02:23
поделиться

Преимущества:

  • Масштабируемость - позволяет расширить уровень доступа к базе данных
  • Возможность замены - например, код провайдера электронной почты
  • Удобство обслуживания - просто измените код в одном месте
  • Простота настройки модульного тестирования - вы можете имитировать объекты, такие как база данных

Недостатки:

  • Возможно, несколько дополнительных строк кода
  • Некоторые дополнительные классы интерфейса
4
ответ дан 28 November 2019 в 02:23
поделиться

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

2
ответ дан 28 November 2019 в 02:23
поделиться

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

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

31
ответ дан 28 November 2019 в 02:23
поделиться

Во-первых, вы должны написать модульные тесты;)

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

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

3
ответ дан 28 November 2019 в 02:23
поделиться

Разделение труда, которое является человеческим эквивалентом разделения забот. Ваш гуру HTML должен иметь возможность работать независимо от вашего божества SQL.

Кардинальное изменение фронтэнда должно происходить без разрушения бэкэнда, и наоборот. Другими словами, вам нужно нанять только одного человека вместо двух.

1
ответ дан 28 November 2019 в 02:23
поделиться

Слабосвязанная архитектура поможет вам, когда ваше приложение нуждается в изменении или расширении. И любое нетривиальное приложение в конечном итоге должно измениться или развиваться.

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

Одно из главных преимуществ TDD, на мой взгляд, заключается в том, что at помогает продвигать слабосвязанную архитектуру.

8
ответ дан 28 November 2019 в 02:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: