Общие шаблоны проектирования для использования в веб-приложениях MVC

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

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

Не то чтобы это важно для этого вопроса, но мы используем ASP.NET и Rails для большинства наших приложений.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
16
0
11 149
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Скорее всего, я бы также порекомендовал какую-то инъекцию зависимостей (инверсия управления). Вероятно, самый важный дополнительный «шаблон» для использования.

Этот вопрос настолько открытый, что на него сложно дать правильный ответ. Я мог бы сказать вам, что шаблон Наблюдатель важен в MVC (и для веб-приложений), и это было бы хорошим ответом. Все существующие шаблоны проектирования являются общими для больших веб-приложений. Вам потребуется использовать некоторый Фабрика для создания сложного объекта, а для доступа к некоторому разделу потребуется некоторый Фасад.

Если вы хотите больше «подсказок» или хорошая практика вместо шаблон дизайна, я бы посоветовал вам использовать IoC и использовать хороший Рамки вместо того, чтобы начинать с нуля. Я могу предложить вам объяснить преимущества наличия хорошего движка ORM, который также ускоряет ваш уровень сохраняемости (обычно это также можно сделать из Framework).

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

Тем не менее, я обнаружил, что я поклонник модели Provider, поскольку у меня есть несколько вариантов выполнения одной задачи с добавлением простоты развертывания. Кроме того, шаблон Unit of Work отлично подходит для установки границ транзакций. Однако в значительной степени архитектура и бизнес-потребности диктуют подход, применяемый к любому конкретному изменению кода или новой разработке.

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

Ответ принят как подходящий

Как только вы попадете в MVC, может быть полезно изучить шаблоны, выходящие за рамки книги «Банда четырех», и перейти к книге Мартина Фаулера «Паттерны архитектуры корпоративных приложений».

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

Многие инфраструктуры MVC также используют шаблоны Передний Контроллер и Двухэтапный просмотр.

«Модель» в MVC лучше всего спроектирована как шаблон Модель домена, хотя в некоторых фреймворках (во главе с Rails) объединять является моделью с шаблоном ActiveRecord. Я часто говорю консультировать, что связь между моделью и ActiveRecord должна быть HAS-A, а не IS-A.

Также прочтите о ModelViewController в вики Portland Pattern Repository. Есть хорошее обсуждение MVC, объектной ориентации и других шаблонов, дополняющих MVC, таких как Наблюдатель.

у вас есть примеры в ASP.NET MVC, где был реализован шаблон реестра?

J86 23.01.2015 13:32

@Ciwan, извините, я никогда не касался ASP.NET. Вы можете найти примеры в Google так же легко, как и я.

Bill Karwin 24.01.2015 21:13

Другие вопросы по теме