¿Se usa mucho el patrón MVC en la industria? ¿Qué es todo el bombo? [cerrado]

16

Soy estudiante pero espero mudarme pronto a la industria del software. Parece que hay mucha publicidad sobre el patrón de software MVC. Me di cuenta de que los frameworks de PHP a menudo son MVC, ¿qué pasa con los lenguajes que no son web ... es lo mismo con ellos? Para mi disertación de maestría (C ++), elegí el patrón MVC porque separa muy bien la lógica y la interfaz de usuario.

¿En la industria se usa mucho? Si es así, ¿cuáles son las razones principales y cuáles son otros diseños populares y competitivos?

cerveza inglesa
fuente
13
MVC es simplemente una implementación popular de separación de preocupaciones. SoC es lo importante, no MVC en sí.
Raynos
1
Es posible que desee consultar el 'Catálogo de arquitectura de aplicaciones empresariales' de Martin Fowler para conocer algunas alternativas / variaciones en MVC que podrían adaptarse a aplicaciones específicas mejores: martinfowler.com/eaaCatalog/index.html
Mchl
3
También tenga en cuenta que muchas cosas que están etiquetadas como 'MVC' en realidad no son realmente MVC, sino que siguen el modelo de aplicación de varios niveles (más nuevo): almacenamiento de datos - lógica - presentación (que, en mi humilde opinión, tiene más sentido de todos modos).
tdammers 05 de
MVC es anterior a la programación web, si eso te dice algo.
Jeremy

Respuestas:

6

MVC recibe mucha publicidad y uso porque es un patrón muy útil para su dominio.

MVC fomenta la separación de preocupaciones. Esto puede simplificar el desarrollo si se hace correctamente. Cualquier aplicación que muestre y / o modifique datos contenidos en un almacén de datos tendrá la funcionalidad MVC, pero no puede separarse. Es probable que no dividir los componentes introduzca un acoplamiento indeseable entre las preocupaciones.

Con MVC debería ser relativamente fácil cambiar la interfaz frontal (Vista) de una aplicación sin modificar el controlador o el modelo. Esto puede ser conveniente si necesita permitir el acceso desde un teléfono inteligente, la Web y una o más aplicaciones.

Para equipos grandes, MVC puede permitir un mejor uso de los recursos, ya que los desarrolladores pueden tener la tarea de trabajar en una de las capas, y es posible que no necesiten mucha habilidad en las otras capas. Dependiendo de los gastos generales de los recursos de coordinación, esto puede ser más eficiente.

BillThor
fuente
12

Sí, se usa mucho. Las aplicaciones para iPhone / iPad están configuradas como MVC. He visto muchas aplicaciones asp.net MVC últimamente.

MVC permite una mayor flexibilidad en el futuro y realmente alienta a los desarrolladores a escribir código separado para cada función. Hace que sea más fácil de mantener.

Trevor
fuente
El marco Cocoa de Apple (utilizado en MacOS X) es la evolución de NextStep, que data de finales de los años ochenta. NextStep, Cocoa y Cocoa Touch (utilizados en iOS) comparten un uso intensivo de MVC.
Caleb
4

Está de moda en este momento.

Nunca subestimes el poder del bombo. Pronto, alguien se le ocurrirá algo más nuevo, más brillante y más fácil de entender, y todos estarán denunciando a MVC como la raíz de todos los males (sucedió con los formularios web), o habrá tanta gente usándolo que los veteranos más canosos descifrarlo como un "toro de gestión * * " (sucedió con XML). O habrá un cambio hacia algún otro patrón porque MVC "no es lo suficientemente flexible para el problema súper difícil que necesito resolver" (lenguajes de tipo estático frente a lenguajes dinámicos).

Al final del día, MVC es un enfoque de marco que es adecuado para una serie de problemas que arroja la programación web. Permanecerá por un tiempo, pero me imagino que la razón por la que la mayoría de la gente lo está usando es para cumplir con la palabra de moda.

EDITAR

Tenga en cuenta: soy muy consciente de que el patrón MVC ha existido durante años y se ha utilizado en marcos antes de asp.net MVC. Solo digo que es bastante popular en este momento, por lo que está recibiendo más prensa que otros enfoques. Uso MVC para todos mis proyectos personales, y también lo he estado usando en proyectos comerciales (soy desarrollador de .net).

Esto no fue una diatriba.

Ed James
fuente
77
-1 para: 'En el momento', a menos que consideres, por ejemplo, el comienzo de Smalltalk o Java / Swing como tecnología del momento, MVC es un poco demasiado viejo para eso.
keppla
44
Excepto que "en el momento" es bastante preciso; MVC apenas se usó hasta hace poco que yo sepa, excepto en el mundo de Java. En todas partes no se usó hasta que Rails se hizo popular.
Wayne Molina
44
La mayoría de los marcos de GUI (no html) que encontré usaban MVC, no parecía 'apenas utilizado' para cumplir los últimos 10 años.
keppla
1
En realidad, MVC ya fue exagerado por MVP en algunas partes del universo.
Tom Anderson
3
Personalmente, odiaba las formas web mucho antes de que ASP.NET MVC fuera incluso un concepto. A veces las cosas son populares porque en realidad son la mejor opción en la mayoría de los casos, y sí, pueden ser reemplazadas por algo más nuevo y más poderoso, pero ¿y qué? Eso es progreso, no bombo.
Aaronaught
3

Desde mi experiencia, no se usa tanto como debería. Es un modelo mucho mejor que algunas de las alternativas, pero solo ha recibido mucha publicidad en los últimos años; Debido a eso, hay una gran cantidad de legado que las personas temen convertir a MVC o temen usar MVC para trabajos futuros porque está fuera de su zona de confort.

Wayne Molina
fuente
1

Creo que encontrarás que la familia Stack Exchange se ejecuta en MVC

Garry
fuente
Impresionante, no sabía que +1
cerveza
1

ASP.NET MVC ha ganado mucha importancia para las aplicaciones web, ya que .NET se usa mucho en la industria.

Las aplicaciones web de Microsoft evolucionaron de ASP clásico a ASP.NET, que se basa en formularios web (para permitir que las habilidades que los desarrolladores de formularios VB6 Win ya tenían que traducir fácilmente a la nueva frontera de la web).

Desafortunadamente, Web Forms está basado en estado y HTTP (en el que se basa la web) no tiene estado, por lo que se necesitaban muchas soluciones desagradables debido a cosas como las vistas.

ASP.NET MVC permite que las habilidades que los desarrolladores de WebForms tienen que traducir a un marco web que tenga un buen SoC y que haya tenido mucho esfuerzo para ser comprobable (dado que WebForms no es muy comprobable, el equipo de MVC ha puesto mucho esfuerzo en el marco).

Dicho esto, no es una bala de panacea / plata, y como cualquier marco, hay momentos para usarlo y otros no. Esperemos que la gente no lo use para tratar de resolver todo, después de todo: cuando su única herramienta es un martillo, cada problema parece un clavo.

StuperUser
fuente
1

Es solo un momento en la historia, ya que MVC es un par de conceptos muy simples que han recibido publicidad de un par de marcos específicos que lo destacan en su material de marketing. También sucede con muchas de las buenas prácticas que han surgido en el desarrollo de software. Esto aplica el doble para el desarrollo pseudoestado como HTTP; tanto que solo conozco otro "patrón" verdaderamente diferente que se usa en el mundo web: el muy difamado modelo basado en eventos ASP.Net WebForms.

Sinceramente, estoy un poco sorprendido de que haya suficiente para una disertación completa.

Pero para responder a tu pregunta. WebForms es un segmento estrecho de la tarta web que se instala principalmente en aplicaciones empresariales de intranet. Las páginas codificadas con espagueti sin patrón real probablemente componen una cantidad decente del diagrama de Venn, pero casi cualquier cosa que sea un marco está al menos fuertemente influenciada por MVC, por lo que su respuesta breve sería un rotundo .

George Mauer
fuente
@geroge: Gracias por la respuesta. Ja ... no te preocupes, el software incluido con mi disertación usa MVC ... ¡en realidad no está en MVC!
ale