Сколько слоев это слишком много? - PullRequest
6 голосов
/ 07 июня 2010

Поскольку за последние 2 года я узнал о разработке программного обеспечения, чем больше я учусь, тем более серые области мне кажутся. Одна серая область, с которой у меня сейчас проблемы, - это попытка решить, сколько слоев должно иметь приложение. Например, в приложении WPF MVVM какая мода слоев подходит? Следующее слишком разделено? Когда я упоминаю слои, я имею в виду создание новой библиотеки классов для каждого слоя.

  • Презентация (Просмотр)
  • Просмотр модели
  • Бизнес-уровень
  • Доступ к данным
  • Слой модели
  • Служебный слой

Или для не MVVM-приложений это слишком разделено?

  • Presenation
  • Бизнес
  • Доступ к данным
  • Модель слоя
  • Служебный слой

Допустимо ли запускать слои вместе и просто создавать папки для каждого слоя? Любая окраска этой серой области будет цениться.

Ответы [ 5 ]

2 голосов
/ 07 июня 2010

Точное количество слоев, которое слишком много, на 1 больше, чем необходимо.

2 голосов
/ 07 июня 2010

Рассмотрим следующие области:

  • Скорость
  • Возможность повторного использования
  • Читаемость
  • Время разработки
  • Скорость изменения (правильные слова, чтобы описать этот момент, ускользают от меня. Редактировать - это то, что я искал, - это ремонтопригодность [украдено у кого-то другого]:
  • След приложения (масштаб и буквальный размер)
  • Ваша команда разработчиков

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

2 голосов
/ 07 июня 2010

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

2 голосов
/ 07 июня 2010

Ответ, это зависит. Во-первых, отдельная библиотека классов не всегда означает отдельный «слой». Слой - это концептуальная группа связанных функций, которые могут проявляться или не проявляться в одной сборке.

Сколько слоев вы создаете, зависит от вашей проблемы. Традиционно приложение WPF MVVM будет содержать по крайней мере 3 слоя (Модель, Представление, Представление Модель), но его действительно можно варьировать. Часто я вижу Views и ViewModel в одной сборке и модели в их собственной сборке (обычно потому, что объектами Model являются POCO, которые используются в других контекстах)

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

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

Суть не в том, чтобы что-то перепроектировать ради следования строгому «образцу». Если шаблон имеет явные преимущества для вас и для вашей проблемы, то реализуйте его, но поймите, почему вы это делаете и какова цель каждого «слоя».

1 голос
/ 09 июня 2010

Многоуровневая архитектура: В этой статье описан конкретный пример архитектуры для .NET / WPF Rich Client Applications. Кроме того, архитектура показывает, в каком слое вы найдете участников шаблона Model-View-ViewModel (MVVM).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...