Разработка (несколько) предметно-специфичного приложения - PullRequest
0 голосов
/ 12 января 2012

Я работаю над приложением, которое использует в разных доменах.

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

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

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

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

Если что-то изменится, это будет приложение asp.net mvcнаписано в c # и .net 4

1 Ответ

0 голосов
/ 03 мая 2012

Мое предложение состоит в том, чтобы создать ровно одно приложение внешнего интерфейса для каждого домена / группы пользователей и сохранять общие уровни внутреннего интерфейса везде, где это подходит для общих ресурсов. Вам нужно сесть и хорошо подумать, что имеет смысл для общих доменов внешнего интерфейса, и реализовать их на общем уровне (например, веб-служба, базы данных, очереди сообщений и т. Д.)

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

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

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