¿Hay algún patrón de diseño excepto MVC para web?

14

Quiero saber, ¿hay algún patrón de diseño para la web además de MVC?

Sé que hay patrones de diseño como: Registro, Observador, Fábrica, ActiveRecord, ... y MVC un conjunto de otros patrones de diseño y estructura de carpetas.

¿Hay un patrón de diseño como MVC que es un conjunto de otros patrones de diseño?

Editar: Mi lenguaje de programación es PHP.

    
pregunta smoqadam 26.07.2012 - 06:01
fuente

8 respuestas

25

Hay diferentes patrones en el desarrollo de software; MVP, MVVM, MVC, etc. son algunos de los más conocidos. Sin embargo, debe definir el problema específico o la tecnología que pretende resolver o utilizar.

Cadaunodeestospatronesesbuenopararesolveralgunosconjuntosespecíficosdeproblemas.Porejemplo,elpatrón MVP (presentador de vistas de modelo) ayuda a introducir una separación de preocupaciones Desarrollo de ASP.NET WebForms. Consiste en dividir las responsabilidades para recopilar, mostrar y almacenar datos de una página web en objetos separados: un objeto Modelo, un objeto Vista y un objeto Presentador.

El libro de cocina general más famoso de patrones de diseño es Patrones de diseño de Gang of Four (GoF) .

Editar: Supongo que está más interesado en implementar patrones de diseño en la plataforma .NET

    
respondido por el EL Yusubov 26.07.2012 - 06:13
fuente
7

Un buen patrón, al que llegué hace unas semanas, es MOVE . Parece un poco más sofisticado como MVC, pero se basa en el mismo principio. Una desventaja de MVC es que sus controladores pueden ser realmente grandes. Usando el patrón MOVE, manejarás este problema, un poco.

Otros patrones, nombrados por los otros, también son buenas alternativas.

    
respondido por el Jan_V 26.07.2012 - 09:40
fuente
4

Lo primero que debe establecer es qué debe hacer exactamente, para decidir si un marco y / o MVC (u otro patrón de diseño) sería beneficioso.

Los marcos están ahí para proporcionar una plataforma consistente para el desarrollo, mientras que generalmente brindan soluciones a los requisitos de programación comunes (como la interacción de la base de datos, la creación y validación de formularios, la autenticación de usuarios, etc.)

Para PHP, al menos, la MVC / HMVC el patrón de diseño tiende a dominar los marcos generales disponibles (por ejemplo, Zend , CakePHP , CodeIgniter etc.) pero hay muchos patrones de diseño diferentes que se podrían usar.

MVC es tan popular porque ofrece una forma establecida y entendida de separar la lógica de procesamiento y modelado de datos de la capa de vista / presentación (algo que se considera deseable para producir aplicaciones robustas y escalables).

Es importante tener en cuenta (y como lo expresó @Marjan Venema en un comentario a la respuesta de @ElYusubov) que MVC, MVP, MVVM y los otros patrones de MV x son (en principio al menos) todos los mismos 'patrones de diseño'.

Todos los patrones de diseño típicamente diferentes sirven (a menudo sutilmente) propósitos diferentes y en varios casos se desarrollaron con un lenguaje específico en mente. Sin embargo, un verdadero 'patrón de diseño' no es una regla dura y rápida para la programación y en realidad es más una comprensión filosófica / idealógica de la implementación de un programa y los requisitos de diseño y funciones lógicas.

La investigación es la mejor manera de conocer diferentes principios de programación y mejores prácticas, aquí hay algunos enlaces de Wikipedia para comenzar:

En la práctica, no hay nada que le impida implementar su propio 'patrón', OMI, la mejor manera es aprender haciendo, al menos para mí no entendí completamente el patrón MVC hasta que empecé a tratar de escribir un sitio web usando it.

Una vez que entienda algunos de los conceptos de programación y las mejores prácticas, puede usarlos para construir su propio sistema para resolver los problemas específicos que enfrenta y para satisfacer sus necesidades, ya sea que se ajuste a un "patrón" establecido o no.

Si no tiene un conjunto específico de problemas que resolver, entonces aprender uno de los marcos comunes es su mejor opción.

    
respondido por el Chris 26.07.2012 - 13:43
fuente
3

Uno de los ejemplos más famosos es Knockout.js , que es un marco de trabajo de javascript que usa el patrón de diseño MVVM . Hay un gran artículo aquí sobre desbordamiento de pila comparando el marco MVC Backbone.js vs Knockout.js .

Una nota al margen es que el patrón de diseño MVVM se originó en Microsoft como una especialización del patrón de diseño PM de Martin Fowler. MVVM es utilizado extensivamente por aplicaciones WPF.

    
respondido por el dodgy_coder 26.07.2012 - 08:41
fuente
0

Como señaló ElYusubov, el marco de ASP.Net ha tenido patrones de MVP y MVVM, si está buscando ejemplos relativamente comunes. Una de las principales diferencias entre MVC y MVVM es cómo se actualizan sus entidades; MVC se adapta mejor al enfoque tradicional sin estado o semi-sin estado de las aplicaciones web. El marco de ASP.Net trató de solucionar esto manteniendo su estado integrado en un formulario (para que pudiera ser restaurado en cada solicitud), lo que hizo que los patrones de MVP y MVVM tuvieran más sentido allí.

Con HTML5, las aplicaciones se están volviendo cada vez más pesadas en JavaScript, con gran parte de su estado en el cliente. Esto puede llevar a un resurgimiento en los marcos MVVM, y Knockout JS es un ejemplo.

    
respondido por el Daniel B 26.07.2012 - 08:17
fuente
0

La mayoría de los patrones en la naturaleza son MVC, o algún tipo de MVC. Después de todo, tiene sentido dividir sus datos (Modelo), la representación (Ver) y la interacción con ellos (Controlador). Si echa un vistazo a MVC como se fundó en los años 80, descubrirá que nunca fue un marco web. Por lo tanto, encontré que estaba muy sobrecargado en la web.

Otro patrón bien conocido sería la Arquitectura Orientada a Servicios (SOA). Basado en eso, un enfoque moderno sería tener un MVC (o sabor) en su servidor, solo para exponer un servicio con el que pueda trabajar. En el lado del cliente habría otra aplicación de estilo MVC, por ejemplo, una aplicación web con HTML5 y JavaScript (Twitter o Linked In, por ejemplo). La aplicación cliente usaría su servicio del lado del servidor (la "Vista" del servidor) como su Modelo. En mi humilde opinión, esto sería lo último en tecnología y probablemente empuje al lado del servidor solo MVC a un lado.

    
respondido por el Bruno Schäpper 26.07.2012 - 08:22
fuente
0

Personalmente estoy considerando implementar algo que use la idea de Representación de los métodos de recursos , aunque en esta etapa es principalmente un experimento más que cualquier otra cosa. Tiene algunos puntos convincentes porque modela una solicitud / respuesta HTTP mejor que MVC (que está diseñado para aplicaciones de larga duración que se ejecutan en una sola computadora en lugar de sesiones de solicitud / respuesta de corta duración). Sin embargo, tiene el inconveniente de que si coloca métodos en sus recursos para manejar GET, POST, PUT, DELETE, etc., sus recursos se acoplarán a la parte frontal. Estoy pensando que voy a separar eso en otra capa.

    
respondido por el GordonM 26.07.2012 - 09:43
fuente
0

Hay más de 1000 maneras, excepto MVC, algunas de ellas son similares a MVC y otras totalmente diferentes

por ejemplo:

  1. Modelo-Plantilla-Vista - MTV
  2. Model – view – presenter - MVP
  3. Modelo jerárquico – vista – controlador HMVC
  4. Model View ViewModel- MVVM

etc

    
respondido por el Saurabh Chandra Patel 19.05.2016 - 14:10
fuente

Lea otras preguntas en las etiquetas