+ 1 Одед.Без обид RKP, но вы можете путать «простой» с «эффективным» или «соотношение цены и качества».Я также думаю, что вы, возможно, захотите получить более четкое представление о том, что именно вы ищете: пример дизайна пользовательского интерфейса - это совсем не то, что логическая архитектура.В любом случае - хорошо, что вы спрашиваете.
Если это «тактическое» решение: ожидается, что он не будет иметь большой жизненный цикл, или это инструмент для быстрой и грязной разработки, то как вы его построите, может и не бытьбыть такой большой проблемой.(также имейте в виду, что краткосрочные тактические приложения могут в конечном итоге стать долгосрочными стратегическими - работали над приложением теперь, когда бизнес рассматривает его как «временный» инструмент: они видят, что оно используется только в течение следующих 5-10 лет(!)).
Если это инструмент, который будут использовать «бизнес-пользователи», то вполне вероятно, что они будут ожидать изменений со временем: в зависимости от того, какое приложение предназначено для простого сквозного приложения CRUD, может быть толькопорезать горчицу ненадолго.
Так что, я думаю, именно здесь приходит ваше замечательное желание взглянуть на лучшие практики. Вы знакомы с ОО-дизайном?Многие принципы, лежащие в основе хорошего дизайна ОО, также применимы на архитектурном уровне ( SOLID , Общее повторное использование , Общее замыкание , Свободное соединение , Стабильные зависимости и Стабильная абстракция Принципы).
позволяет сказать, что в будущем будет добавлен любой дополнительный пользовательский интерфейс / бизнес-логика
Итак, именно здесь вам нужно заранее рассмотреть вопрос о том, как вы будете разделять проблемы и учитывать рост: архитектура не означает, что вам нужно делать большой предварительный проект, это просто означает, что вам нужно иметь представление о том, как выПриложение будет расти по мере роста требований.
В заключение:
- Внимательно изучите различные атрибуты качества системы и определите, какие из них особенно актуальны для системы.расставьте приоритеты для них.
- Я получаю много пользы от Инверсия зависимости (D в SOLID) - абстрагируюсь от таких вещей, как доступ к данным на ранней стадии.
- Для меняДругая действительно ключевая «лучшая практика» - обратить внимание на SRP (S в SOLID),