No video

¿MVC es un patrón de arquitectura?

  Рет қаралды 24,767

Manuel Zapata

Manuel Zapata

Күн бұрын

En este video te cuento mi opinión de MVC (Modelo Vista Controlador) como patrón de arquitectura o como arquitectura de 3 capas.
Arquitectura de 3 capas: • La legendaria arquitec...
Patrón de arquitectura por capas: • Patrón de arquitectura...
Serie en video de patrones de arquitectura:
• 🏗 Patrones de arquitec...
MIS CURSOS
🧹 Arquitecturas Limpias para Desarrollo de Software: platzi.com/l/m...
📐 Arquitectura de Software: manuelzapata.c...
🔌 Patrones de Diseño: manuelzapata.c...
📦 Programación Profesional con Objetos (Gratis): manuelzapata.c...
🌲 Principios de Diseño SOLID (Gratis): manuelzapata.c...
🙌 Hazte miembro del canal: / @manuelzapata
🌎 Mi sitio web: manuelzapata.co
🎦 Suscríbete al canal: manuelzapata.c...
📩 Mi lista de correo: manuelzapata.c...
#ManuelZapata #MVC #PatronesArquitectura

Пікірлер: 70
@ManuelZapata
@ManuelZapata 5 жыл бұрын
Artículos recomendados al final del video: - Organizing presentation logic: martinfowler.com/eaaDev/OrganizingPresentations.html - GUI architectures: martinfowler.com/eaaDev/uiArchs.html - Capítulo 14 de Patterns of Enterprise Application Architecture: amzn.to/2W2kmLi - Capítulo 32 de Clean Architecture: amzn.to/2W25IUc
@jorgemvg
@jorgemvg 3 жыл бұрын
Cuando empecé a programar(hace muchos años ya), este patrón MVC era lo que todos teníamos que hacer, y era pensada como la arquitectura de todo el sistema. Al pasar los años se fue aclarando el tema de que este patrón en un ppio fue pensado como un patrón de presentación. Y lo que ralamente queríamos hacer en ese entonces era una arquitectura por capas.
@diego_solis
@diego_solis 3 жыл бұрын
De casualidad varias veces entré a artículos de tu web, ahora me encontré tu canal, excelente..
@xdEdgarBest
@xdEdgarBest Жыл бұрын
Cuando vi la explicación que hiciste sobre la arquitectura de 3 capas, entendí que la vista y el controlador en MVC es la presentación, ya que están bastante acopladas y el modelo sería el restante. Muchas gracias por los videos.
@MarkTin2000
@MarkTin2000 4 жыл бұрын
Excelente esxplicación, estas recomendaciones que haces son muy buenas porque hacen mas fácil la escalabilidad.
@ManuelZapata
@ManuelZapata 4 жыл бұрын
Excelente!! Me alegra que hayan sido útiles las recomendaciones.
@marcomesen867
@marcomesen867 3 жыл бұрын
Gracias por el video! Muy bueno! siempre he tenido temas con el MVC al sentir que no me terminaba de llenar las necesidades de organización de mis proyectos, tu video me deja una propuesta super interesante de como trabajarlo y posiblemente lo implementaré
@ayrtoncravero
@ayrtoncravero 2 жыл бұрын
Excelente la explicación! Me aclaro mucho y me ayudo a realmente entender como es la división de responsabilidades.
@91juliomario
@91juliomario 3 жыл бұрын
tenía exactamente la misma pregunta, ya que estoy viendo este tema en la U. Muchas gracias.
@SimaDamian
@SimaDamian 3 жыл бұрын
Es muy buena tu teoría! Yo en particular para una api rest lo hago tal cual como lo indicas, y en ese contexto el controlador es una presentación y la vista no existe. Y por ende el mvc tampoco!
@jhonnylopezr.545
@jhonnylopezr.545 5 жыл бұрын
Yo diría que lo que ocurre es que estamos confundiendo frameworks MVC con el patrón de arquitectura MVC como tal. Claro, asp.net mvc o spring son frameworks de presentación basados en arquitectura MVC. Funcionan bien en sistemas ligeros, pequeños. Pero son solo una implementación del patrón. Otras implementaciones requerirán que el modelo se descomponga en diferentes componentes cohesionados: modelo y dominio, por ejemplo. Sigue siendo MVC pero implementado diferente. Es decir, no podemos 'desestimar' (sé que no lo estás haciendo) el patrón MVC, o considerarlo simplemente un patrón de presentación, por cómo se ha implementado en un par de frameworks de presentación.
@ManuelZapata
@ManuelZapata 5 жыл бұрын
Es interesante tu punto de diferenciar entre frameworks MVC con el patrón MVC. Por la forma como normalmente se implementa es que propongo tratarlo como un patrón de presentación. En mi experiencia, eso ahorra muchos dolores de cabeza en el futuro ya que no amarras totalmente tu arquitectura al vaivén de un framework y sus creadores. Gracias por tu aporte Jhonny! Son el tipo de discusiones interesantes que me gusta generar.
@JuanM-ck4jg
@JuanM-ck4jg 4 жыл бұрын
¿Entonces yo puedo hacer mi sistema basandome en el patron MVC? Sin usar el framework de asp.net mvc yo me cree un proyecto con las 3 capas que propone mvc de controllador , vista y modelo. ¿Seria MVC o n capas?
@yoanestradablanco1608
@yoanestradablanco1608 Жыл бұрын
Lo que me contaron en la universisad es una kaka ya decia yo que por mis lecturas de ddd mvc no era un patron de arquitectura gracias por el contenido
@CAGUANET121
@CAGUANET121 5 жыл бұрын
Manuel excelente tu vídeo, pero quisiera saber qué comprendería la lógica de negocio y la lógica de aplicación. Muchas gracias.
@ManuelZapata
@ManuelZapata 5 жыл бұрын
La lógica de negocio es básicamente la razón por la cual tu aplicación existe. Por ejempo, si tu sistema es para gestionar un restaurante, entonces aspectos en la lógica de negocio incluyen la toma de pedidos, facturación, asignación de meseros, etc. Por otro lado, la lógica de aplicación solo concierne al sistema y no a la empresa. Por ejemplo: manejo de permisos en la aplicación, gestión de caché, logging, entre otros.
@williamalfonso1505
@williamalfonso1505 3 жыл бұрын
Hola Manuel cual es la diferencia entre el modelo y las entity que defino en el projecto. Gracias esta chevere su canal.
@elgatosoft
@elgatosoft 3 жыл бұрын
No veo claro como el controlador pueda pertenecer a la capa de presentación (en la homologación que haces). Desde mi poca experincia, el controlador si trabaja con un protocolo específico (HTTP), pero el framework que utilizo permite generar controladores independiente de quien lo esté invocando. Justo ahora estamos conectando aplicaciones de escritorio (delphi) y aplicaciones en Angular a través de un mismo controlador
@paolagalarza2823
@paolagalarza2823 2 жыл бұрын
Manuel podrías aclarar un poco mas en el minuto 2:10, entendí que lógica de aplicación y lógica de negocio no tienen relación. Podrías detallar esas definiciones. Gracias por tomarte el tiempo para tus espectadores.
@ManuelZapata
@ManuelZapata 2 жыл бұрын
Hola Paola! Lógica de negocio es la razón por la cual tu sistema existe. Ejemplo: si tienes un software contable, los distintos métodos para calcular un impuesto son lógica de negocio. En el canal tengo un par de videos sobre esto. Lógica de aplicación hace referencia a ese código que se escribe como parte de la estructura de la aplicación. Por ejemplo. Si el producto fue guardado en la BD, redireccione a esta pantalla. Si el producto no fue guardado, mande un correo a XXX y lleve a esta otra pantalla.
@paolagalarza2823
@paolagalarza2823 2 жыл бұрын
Es lo que imaginé, pero necesitaba estar más clara. Muchas gracias Manuel por darte tiempo ;)
4 жыл бұрын
Muchas gracias! Quedó bien entendido, podríamos decir que el modelo de 3 capas es una arquitectura de software y mvc es un patrón de arquitectura?
@ManuelZapata
@ManuelZapata 4 жыл бұрын
Mucha gente clasifica MVC como un patrón de arquitectura. Lo que yo argumento en este vídeo es que es un patrón de presentación. El modelo de 3 capas es una especialización del patrón de capas.
4 жыл бұрын
@@ManuelZapata gracias
@ojmalagon
@ojmalagon 4 жыл бұрын
@@ManuelZapata Excelente explicación. Actualmente trabajo con una arquitectura por capas: en la capa de presentación usamos MVC, nuestra capa de negocio está construida con REST API y esta a su vez contiene la persistencia a datos. Saludos.
@beticohernandez9536
@beticohernandez9536 3 жыл бұрын
Hola, tienes mas videos relacionados con ese patron
@raulotanezmontiel767
@raulotanezmontiel767 3 жыл бұрын
Hola Manuel, para la parte de testing, ¿cómo se implementaria en MVC? Estoy trabajando actualmente con un proyecto personal y quiero implementar testing pero no logro entender bien como hacerlo o si se puede hacer.
@alejoreyes5263
@alejoreyes5263 4 жыл бұрын
Como sería la implementación de una capa de servicios? Mencionas que debe ser reutilizable por varios frameworks.
@ManuelZapata
@ManuelZapata 4 жыл бұрын
El primero requisito es que no estén amarrados a ningún framework. A partir de ahí, pueden ser solamente un conjunto de clases. Si quieres profundizar en el tema, Martin Fowler tiene un artículo sobre esto: martinfowler.com/articles/dblogic.html
@lvbernal
@lvbernal 5 жыл бұрын
Excelente video, Manuel. En tu propuesta, la capa de servicios para abstraer la vista y el controlador, es un API REST o es un conjunto de métodos que accedes como una librería externa? Seguramente eso depende del tamaño de la aplicación, pero cómo empezarías?
@ManuelZapata
@ManuelZapata 5 жыл бұрын
Muy buena pregunta Leonardo!! En mi propuesta, la idea es que capa de servicios sea totalmente independiente de algún tipo de UI, API REST, web service o similares. Por lo tanto, sería como una especia de librería que sería consumida directamente ya sea tu API REST o incluso una UI.
5 жыл бұрын
Un servicio está definido por una interfaz la clase que implementa la interfaz es responsable de cómo hacerlo puede usar un repositorio, un API test , leerse un archivo de texto etc. Un ejemplo que creo que se alinea buen bien con el temas del vídeo es la aplicación eshop on web github.com/dotnet-architecture/eShopOnWeb
@ManuelZapata
@ManuelZapata 5 жыл бұрын
muy buen aporte@! Las interfaces, junto con inyección de dependencias, ayudan mucho a dar flexiblidad al uso de los servicios en otras capas.
@neyserhuamantisnado6686
@neyserhuamantisnado6686 4 жыл бұрын
Buen video, me podrías indicar a que categoría de diseño de patrones pertenece el MVC?
@ManuelZapata
@ManuelZapata 4 жыл бұрын
Por lo general lo suelen catalogar como un patrón de arquitectura. En este video, yo intento demostrar porque no es así.
@adolfoivanec
@adolfoivanec 2 жыл бұрын
@@ManuelZapata Buenos dias estimado Manuel. Tengo la misma consulta de Neyser. Ya me quedo claro que MVC no lo consideras como un patron de arquitectura, sino como patron de presentacion. La consulta que me surge luego es a cual de las 3 categorias de patrones de diseño pertenece, si pertenece a Creacion, Estructura o Comportamiento. Desde ya muchas gracias y te felicito por el trabajo que haces, me haz ayudado mucho
@fernandoalbertohernandezhe9570
@fernandoalbertohernandezhe9570 4 жыл бұрын
algunas de sus ventajas son: Es mucho más sencillo agregar múltiples representaciones de los mismos datos o información. Facilita agregar nuevos tipos de datos según sea requerido por la aplicación ya que son independientes del funcionamiento de las otras capas. Crear independencia de funcionamiento. Facilita el mantenimiento en caso de errores. Ofrece maneras más sencillas para probar el correcto funcionamiento del sistema. Permite el escalamiento de la aplicación en caso de ser requerido.
@ManuelZapata
@ManuelZapata 3 жыл бұрын
Gracias por el aporte Fernando!
@joseluiscaicedo4096
@joseluiscaicedo4096 3 жыл бұрын
MVC puede ser considerado un modelo 4 +1 ?
@jeanhz1065
@jeanhz1065 3 жыл бұрын
El modelo mas bien no seria dependiente del controlador , ya que sin el controlador este no haria nada?
@Algedibarrios
@Algedibarrios 4 жыл бұрын
En un proyecto .Net Core por defecto se crea el manejo de datos en los Controladores, mis preguntas son: Los tengo que sacar las conexiones de los Controllers? Dónde y cómo lo hago? Gracias de antemano.
@ManuelZapata
@ManuelZapata 3 жыл бұрын
Sí, yo lo sacaría a su propia capa de acceso a datos. Saludos!
@jacksalvatierra7959
@jacksalvatierra7959 3 жыл бұрын
Hola Manuel
@cpaez2000
@cpaez2000 3 жыл бұрын
El detalle a aqui es que el MVC nacio para poner Orden a la estructura y no generar codigo espagueti. Y los modelos o patrones de capas (2,3,4 capas) nacieron (ademas de eso) para mejorar el performance de una aplicacion en base a miniservicios o programas independientes. Nacieron con 2 enfoques distintos. Por eso tu facilmente puedes ubicar el MVC en la capa de presentacion. Pero no solo ahi. Si haces una API usando por ejemplo NetCore ahi tambien encontraras el MVC pero no hay capa de presentacion como tal. Esta es la razon por la cual no se ponen de acuerdo y es porque nacieron con 2 enfoques distintos. En resumen no hay que mezclar peras con manzanas. MVC es para la estructura y los modelos de capas cada capa es un servicio independiente(Exe, dll) incluso puede ser que cada capa este corriendo en un servidor distinto a miles de kilometros uno de otro. Puedes hacer MVC con 1 sola capa por ejemplo si haces una aplicacion para IOS.
@jacksalvatierra7959
@jacksalvatierra7959 3 жыл бұрын
estas en linea?
@elkindiaz8200
@elkindiaz8200 3 жыл бұрын
hola Manuel tengo una pregunta esto que explica en video lo puedo implementar con laravel ?
@ManuelZapata
@ManuelZapata 3 жыл бұрын
No sabría decirte, Elkin. No conozco Laravel.
@jesusvallejo9908
@jesusvallejo9908 3 жыл бұрын
Saludos Manuel , es correcto que una aplicacion tenga logica dentro de una base de datos?
@ManuelZapata
@ManuelZapata 3 жыл бұрын
En mi opinión, no es correcto Jesus. Sin embargo, es una práctica común con procedimientos almacenados.
@jesusvallejo9908
@jesusvallejo9908 3 жыл бұрын
@@ManuelZapata comparto también tu punto de vista estába en duda. Es que considero q no es algo bueno tener lógica de lado de plsql si para eso están los microservicios.
@nicolasst225
@nicolasst225 4 жыл бұрын
Que diferencia haces entre logica de aplicacion y logica de negocio?
@ManuelZapata
@ManuelZapata 3 жыл бұрын
Nicolás, por aquí la respuesta: kzbin.info/www/bejne/iYHQk6usq7lqd9k
@tranquiloteov
@tranquiloteov 2 жыл бұрын
yo me pregunté lo mismo. Gracias por la respuesta.
@alxx736
@alxx736 2 жыл бұрын
Patron de arquitectura es lo mismo que estilo de arquitectura? Es muy contradictorio lo que hay en la Web
@alfredrodriguezgarcia2383
@alfredrodriguezgarcia2383 3 жыл бұрын
perdon, hay una arquitectura que lleva : entities, usecases, providers, repository, es lo mismo ya q es por capas me parece
@ManuelZapata
@ManuelZapata 3 жыл бұрын
Te refieres a Clean Architecture, Alfred?
@alfredrodriguezgarcia2383
@alfredrodriguezgarcia2383 3 жыл бұрын
@@ManuelZapata clean architecture es un patron?, porque lo llaman usescases arch.. me marea, lei in poco de Robert martin? Creo
@jmontenegro125
@jmontenegro125 2 жыл бұрын
podrias podrias podrias, jajajaja al final crean arquitecturas complejas para un simple CRUD.
@ManuelZapata
@ManuelZapata 2 жыл бұрын
Oye, con mi CRUD hecho en microservicios no te metas jejeje
@jmontenegro125
@jmontenegro125 2 жыл бұрын
@@ManuelZapata jajajaj no si es claro que los CRUD funcionan, mi comentario va a qué luego uno o dos catálogos entras a los proyectos y zaz una arquitectura con front y back divididos, MVC y N capas hahaha hacen más proyectos que catálogo.
@berto3538
@berto3538 3 жыл бұрын
El modelo NO DEBE TENER NEGOCIO NI LÓGICA !!!
@fheer22
@fheer22 Жыл бұрын
????????
@almatute
@almatute 4 жыл бұрын
Para mí tampoco es un patrón de arquitectura, he asistido a varias charlas donde los mismos consultores no llegan a un consenso.
@ManuelZapata
@ManuelZapata 4 жыл бұрын
Sí, es de esos temas donde no hay idea unificada.
@Joyragdoll
@Joyragdoll 6 ай бұрын
La convención es que es un Patrón de Arquitectura. El error es que muchos que vienen de .net y utilizan mvc (framework) y lian a los demás con los conceptos de lo que significa la arquitectura MVC.
@reinaldoguerradelarosa8100
@reinaldoguerradelarosa8100 2 жыл бұрын
Buen video pero se recomienda explicar ciertas palabras ya sea con un ejemplo o concepto sencillo.
@ManuelZapata
@ManuelZapata 2 жыл бұрын
Gracias por la recomendación. Qué palabras no quedaron claras?
@reyguero
@reyguero 2 жыл бұрын
@@ManuelZapata Varias amigo. Soy docente y esperaba usar su video como ejemplo para un curso pero note que varias palabras que usas solo las lees pero realmente no las explica. Así mismo das recomendaciones pero no el porque de las recomendaciones de resto todo bien.
@ManuelZapata
@ManuelZapata 2 жыл бұрын
@@reyguero me dejaste en las mismas. Esas palabras habrían servido para crear más contenido aclarándolas. A veces es difícil incluir todas las explicaciones en un video. Eso hace que los videos se tornen largos.
Patrón de arquitectura de plugins o microkernel
9:04
Manuel Zapata
Рет қаралды 12 М.
Layered architecture
9:41
Manuel Zapata
Рет қаралды 55 М.
If Barbie came to life! 💝
00:37
Meow-some! Reacts
Рет қаралды 75 МЛН
Before VS during the CONCERT 🔥 "Aliby" | Andra Gogan
00:13
Andra Gogan
Рет қаралды 10 МЛН
The Giant sleep in the town 👹🛏️🏡
00:24
Construction Site
Рет қаралды 20 МЛН
¿What is the MVC Patter?, Simple explanation
18:23
Fazt
Рет қаралды 121 М.
¿Qué es MVC?
16:18
hdeleon.net
Рет қаралды 33 М.
Qué son los Patrones de Presentación: MVC, MVP, MVVM ¿Son Arquitecturas de Software?
7:45
DevExpert - Programación Android y Kotlin
Рет қаралды 4,2 М.
¿VALE LA PENA SEGUIR USANDO MVC (MODEL-VIEW-CONTROLLER)?
12:11
Vida MRR - Programacion web
Рет қаралды 16 М.
¿Por qué Debes Aprender ARQUITECTURA de SOFTWARE?
20:34
hdeleon.net
Рет қаралды 30 М.
Patrón de arquitectura orientada a eventos
11:09
Manuel Zapata
Рет қаралды 27 М.
If Barbie came to life! 💝
00:37
Meow-some! Reacts
Рет қаралды 75 МЛН