Introducción al curso

1

Introducción al curso de Profesional de Arquitectura de Software

Atributos de calidad

2

Definición

3

Atributos: Idoneidad funcional

4

Atributos: Eficiencia de ejecución

5

Atributos: Compatibilidad

6

Atributos: Usabilidad

7

Atributos: Confiabilidad

8

Atributos: Seguridad

9

Atributos: Mantenibilidad

10

Atributos: Portabilidad

11

Tensiones entre atributos

12

Analizando PlatziServicios

Patrones de arquitectura

13

Patrones monolíticos vs distribuidos

14

Patrones: Modelo Vista Controlador

15

Patrones: Capas

16

Patrones: Orientado a eventos / Provisión de eventos.

17

Patrones: Microkernel - Plug-ins

18

Patrones: Comparte-nada

19

Patrones: Microservicios

20

Patrones: CQRS

21

Patrones: Hexagonal - Puertos y adaptadores

22

Patrones: Diseño orientado al dominio

23

Combinando patrones de arquitectura

24

Analizando nuevamente PlatziServicios

Diseño de una arquitectura

25

Pararse en hombros de gigantes

26

Herramientas y partes de un diseño: Tipos de conectores

27

Conectores: Llamado asincrónico / sincrónico. Modelo Cliente servidor.

28

Conectores: Enrutador, difusión

29

Conectores: Pizarra, repositorio, colas, modelo PUBSUB

30

Escenarios y tácticas

31

Escenarios: Disponibilidad, detección, reparación

32

Escenarios: Reintroducción y prevención

33

Escenarios: Mantenibilidad

34

Escenarios: Prevenir efectos dominó y diferir enlace

35

Escenarios: Eficiencia de ejecución

36

Escenarios: Seguridad

37

Escenarios: Capacidad de prueba

38

Escenarios: Usabilidad

39

Validar las decisiones de diseño: Arquitectura en evolución

40

Último análisis a PlatziServicios

Modelado y documentación de arquitectura

41

Cómo comunicar la arquitectura: Vistas y Puntos de vista

42

Documentación vs implementación

43

Conclusiones del curso

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Patrones: Modelo Vista Controlador

14/43
Recursos

Este es uno de los patrones mas nombrados. El modelo vista controlador, separa a nuestra aplicación en tres grandes partes.

Aportes 21

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

El Modelo Vista Controlador, separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.

Es un modelo maduro y que ha demostrado su validez en todo tipo de aplicaciones y multitud de lenguajes y plataformas de desarrollo.

**-El Modelo **que contiene una representación de los datos que maneja el sistema, su lógica de negocio, y sus mecanismos de persistencia.
-La Vista, o interfaz de usuario, que compone la información que se envía al cliente y los mecanismos interacción con éste.
**-El Controlador, **que actúa como intermediario entre el Modelo y la Vista, gestionando el flujo de información entre ellos y las transformaciones para adaptar los datos a las necesidades de cada uno.

El mundo de Patrones puede ser confuso y más si no hay bases o contexto, por ello dejo un resumen de como a mi me ha sido fácil comprenderos…

  • Estilos Arquitectónicos: se refieren a estructuras y como los componentes se comunican. "Nivel Infraestructuras"
    Ejemplo: Cliente-Servidor, Arquitectura-Capas, Monolitico, MicroKernel, P2P, SOA, Microservicios, EDA, REST
  • Patrones Arquitectónicos: soluciones implementadas bajo un estilo arquitectonico. "Diseño Alto Nivel"
    Ejemplo: Circuite-Brake, Saga, Dahsboard, Sharding, MVC, Throttling, Polling, WebHook, LoadBalance, Pipes & Filters, Event Bus, Dashboard, CQRS, Cache Aside, Publisher/Suscriber, Backends for Frontends
  • Patrones de Diseño de Software: técnicas para resolver problemas comunes en el desarrollo de software, estan divididos en 3 categoria: (Diseño Bajo Nivel)
    ->CREACIONALES<-
    Singleton, Prototype, Builder, Factory Method, Abstract Factory, Object Pool
    ->ESTRUCTURALES<-
    Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
    ->COMPORTAMIENTO<-
    Iterator, Command, Observer, Tempalte Method, Strategy, Chain of Responsability, Interpreter, Mediator, Moment, Null Object, State, Visitor
<h3>Modelo - Vista-Controlador</h3>

La comunicación más importante es la Vista-modelo, porque es importante separar la vista (Como se ve el sistema) del Conocimiento (Que es lo que el sistema puede hacer). De esta manera ambos pueden crecer escalarmente.


Los siguientes son variantes de este patron:

  • Model-View: ASP.net, C#
  • Modelo vista Presentador: Cambia el rol de usuario por un coordinador de vistas, Sin embargo siguen separadas las vistas de modelos.
  • Flux: Se preocupa por como fluyen los datos, este patron plantea la comunicación de una sola vía separando los tres componentes.

En esta clase se habló del patrón de diseño Modelo Vista Controlador (MVC), el cual establece la separación de responsabilidades de la siguiente manera:

- Modelo: El estado del sistema
- Vista: La presentación
- Controlador: Las acciones del usuario.

De ahí que también se mencionaron variantes de este patrón de diseño, como:
Modelo Vista VistaModelo (MVVM) Donde el ViewModel contiene toda la lógica de presentación. Permite abstracción de lógica de la vista. Ejemplo: C# y ASP.NET.
Modelo Vista Presentador (MVP): Donde el Presenter lleva toda la lógica de presentación. Es un coordinador o intermediario, es quien va a mediar entre la vista y el modelo, sin que estos interactúen entre sí.
Flux: Maneja el flujo de datos (Cómo fluyen los datos). Aquí se maneja la comunicación en una sola vía. Se elimina la comunicación bidireccional que había entre modelo y controlador. Se deja de lado esa comunicación triangular del MVC.

Apuntes:

Modelo Vista Controlador

Separa a nuestra aplicación en tres grandes partes: El Modelo, La Vista, El controlador. Podemos hacer que la visa cambie sin que el modelo tenga que cambiar y a su vez agregar acciones de usuario que aprovechen el mismo modelo y la misma vista.

Modelo - vista - controlador .

les dejo aquí algo para complemetar el material del curso. Fuente wikipedia.

  • Modelo: Es la representación de la información con la cual el sistema opera, por lo tanto gestiona todos los accesos a dicha información, tanto consultas como actualizaciones, implementando también los privilegios de acceso que se hayan descrito en las especificaciones de la aplicación (lógica de negocio). Envía a la ‘vista’ aquella parte de la información que en cada momento se le solicita para que sea mostrada (típicamente a un usuario). Las peticiones de acceso o manipulación de información llegan al ‘modelo’ a través del ‘controlador’.

  • Conrtolador: responde a eventos (usualmente acciones del usuario) e invoca peticiones al ‘modelo’ cuando se hace alguna solicitud sobre la información (por ejemplo, editar un documento o un registro en una base de datos). También puede enviar comandos a su ‘vista’ asociada si se solicita un cambio en la forma en que se presenta el ‘modelo’ (por ejemplo, desplazamiento o scroll por un documento o por los diferentes registros de una base de datos), por tanto se podría decir que el ‘controlador’ hace de intermediario entre la ‘vista’ y el ‘modelo’

  • La Vista: Presenta el ‘modelo’ (información y lógica de negocio) en un formato adecuado para interactuar (usualmente la interfaz de usuario), por tanto requiere de dicho ‘modelo’ la información que debe representar como salida.

Uso
Arquitectura para aplicaciones World Wide Web en los principales lenguajes de programación.
Marcos web como Django y Rails .

Este patrón, también conocido como patrón MVC, divide una aplicación interactiva en 3 partes, como:

  • modelo — contiene la funcionalidad y los datos básicos

  • vista : muestra la información al usuario (se puede definir más de una vista)

  • controlador : maneja la entrada del usuario

Muy flojas las explicaciones de los conceptos en este curso. Para algo más claro y rico en contenido, recomiendo visitar este enlace del Blog del señor Martin Fowler: https://martinfowler.com/eaaDev/uiArchs.html#ModelViewController

Por que dice “mas erroneamente utilizado” al principio? sorry no me quedo claro.

Modelo Vista Controlador.
Separa nuestra aplicación en tres partes.

Y los frameworks por ejemplo Laravel usa este patrón MVC ?

Descripcion de las tres capas

Angulat tambien usa el modelo MVC si mal no estoy

¿Este patrón puede ser de tipo monolítico, distribuido o los dos?

Me esta diciendo que esta mal hacer un modelo por cada entidad?, o un controlador por cada vista?

En mi trabajo, me ha tocado entrevistar a muchos recursos que en su CV indican dominar este patrón y al preguntarles sobre el muy pocos saben realmente de que se trata.

Excelente… muy bien explicado-