Charla - Cls

download Charla - Cls

of 64

Transcript of Charla - Cls

  • 8/17/2019 Charla - Cls

    1/64

     Agenda

  • 8/17/2019 Charla - Cls

    2/64

    S.O.L.I.D

  • 8/17/2019 Charla - Cls

    3/64

    SOLID

  • 8/17/2019 Charla - Cls

    4/64

    SOLID

  • 8/17/2019 Charla - Cls

    5/64

  • 8/17/2019 Charla - Cls

    6/64

    SOLID

    Single Responsibility

    Una clase jamás debería tener más de una razcual cambiar.

      Responsabilidad == Razón para cambiar

      Si una clase asume más de una responsabilidadtendrá más de una razón para cambiar.

      Acoplamiento de responsabilidades.

  • 8/17/2019 Charla - Cls

    7/64

    SOLID

  • 8/17/2019 Charla - Cls

    8/64

    SOLID

  • 8/17/2019 Charla - Cls

    9/64

    SOLID

    Open Closed

    Entidades de software (clases, módulos, funcioetc.) deberían estar abiertas para extensión pecerradas para modificación.

      Si un   cambio impacta a varios módulos, eaplicación no está bien diseñada.

      Debemos diseñar módulos que sirvan como basemódulos.

  • 8/17/2019 Charla - Cls

    10/64

    SOLID

  • 8/17/2019 Charla - Cls

    11/64

    SOLID

  • 8/17/2019 Charla - Cls

    12/64

  • 8/17/2019 Charla - Cls

    13/64

    SOLID

  • 8/17/2019 Charla - Cls

    14/64

    SOLID

  • 8/17/2019 Charla - Cls

    15/64

    SOLID

  • 8/17/2019 Charla - Cls

    16/64

    SOLID

  • 8/17/2019 Charla - Cls

    17/64

    Los clientes no deberían estar forzdepender de interfaces que no ut

     Las interfaces   “gordas”   o   “contaminadas

    dividirse en varios grupos de funciones. Cada grupo será implementado por distinto

    clientes.

    SOLID

  • 8/17/2019 Charla - Cls

    18/64

    SOLID

  • 8/17/2019 Charla - Cls

    19/64

    SOLID

  • 8/17/2019 Charla - Cls

    20/64

    UI

    Negocio

    Acceso a Datos Componentes

    SOLID

    WSDB

  • 8/17/2019 Charla - Cls

    21/64

    Conceptos MVC 

  • 8/17/2019 Charla - Cls

    22/64

    Tipos Aplicaciones WE

      Orientado a presentación AXIS

     SEED- N aplicación

      Orientado a servicios

     RSS

     Transmisión de comprobantes electrónicos

  • 8/17/2019 Charla - Cls

    23/64

    Tipos MVC    SERVER-SIDE

     Modelo, vista y controlador el ciclo de vidcomponentes es administrado por el semayoría de framework lo implementan .NETDJANGO.

      CLIENT-SIDE Modelo, vista y controlador es administra

    cliente (Navegador), por lo general se impleJavascript.

  • 8/17/2019 Charla - Cls

    24/64

    Servicios WEB   SOAP

     Simple Object Access Protocol, es un protocolo que dos objetos en diferentes procesos se comumedio de intercambio de datos XML.

     XSD-Describe la estructura y las restriccioncontenidos de los documentos XML.

     WSDL-Web Services Description Language,

    interfaz pública a los servicios Web   REST

     Interfaz que permite a los sistema comunicarse usanprotocolo HTTP.

     JSON-JavaScript Object Notation, es un formato ligeintercambio de datos

     HTTP-protocolo usado en cada transacción.

  • 8/17/2019 Charla - Cls

    25/64

    Componentes - Contened

      Siguiendo el flujo de crecimiento y evoluciósistemas, tenemos dos conceptos:

      Contenedores.

      Componentes.

  • 8/17/2019 Charla - Cls

    26/64

    Componentes - Contened

  • 8/17/2019 Charla - Cls

    27/64

    Tecnologías JEE 

  • 8/17/2019 Charla - Cls

    28/64

     JEE 

    Es un coespecificaciontecnológica, permite la coaplicaciones

    empresariales

    Componente/Escalabilidad Portabilidad,

    Seguridad

  • 8/17/2019 Charla - Cls

    29/64

     Aplicaciones Empresaria

    Capa

    Visual(JSF)

    App. Web Orientada Presentación

    Capa

    Servicios(EJB)

    Capa

    Datos

    J

    PA

    Hibernate

    EclipseLink

    TopLink

    UsuarioUsuario

    JDBC

    Usuario

    DML

    DML

  • 8/17/2019 Charla - Cls

    30/64

    Tecnologías

      JPA

     Tecnología que implementa ORM, rrepresentación de la base de datos en clas

      EJB

     Tecnología que oculta los servicios subya

    control transaccional, seguridad, concuintegración.

      JSF

     Tecnología que implementa el patrón MVC deservidor.

  • 8/17/2019 Charla - Cls

    31/64

    Tecnologías

  • 8/17/2019 Charla - Cls

    32/64

    View

    •   Dibuja la interfaz de usuario

    •   Solicita datos del modelo

    •   Envia eventos al modelo

    •   Permite que el controlador seleccione la siguiente vista

    Model

    •   Almacena del estado de laaplicación

    •   Responde a solicitudes dedatos

    •   Encapsula la logica denegocio.

    Display Submit

    page

    Reques

    t data

    •   Maneja la ruta de peticionhacia las paginas

    •   Mapea paginas contramodelo

    Data and

    transactions

    Controller 

    Tecnologías

    S id JEE

  • 8/17/2019 Charla - Cls

    33/64

    Servidores JEE 

  • 8/17/2019 Charla - Cls

    34/64

    Spring Framework 

  • 8/17/2019 Charla - Cls

    35/64

    Spring Framework 

    Spring es ualternativo atecnologías aplicacionesJavaEE.

    Las ideas quSpring se han las tecnoherramientas EJB  – JPA - CD

  • 8/17/2019 Charla - Cls

    36/64

      Aportes

     Las más novedosas de Spring se centran en los siguient  Data/NoSQL  HTML5/móviles  Aplicaciones sociales   Cloud

      Diferencia principal JEE y Spring Las tecnologías requieren del uso de un servidor de

    mientras que Spring necesita su conjunto de librerentre servidores.

      Spring proporciona tres elementos básicos: Servicios Enterprise

     Estereotipos configurables Inyección de dependencias

    Spring Framework 

  • 8/17/2019 Charla - Cls

    37/64

      Sin IoC

      Con IoC

    Spring Framework 

  • 8/17/2019 Charla - Cls

    38/64

    Spring Framework 

     Principales proyectos

  • 8/17/2019 Charla - Cls

    39/64

    Spring Framework 

      STS – Spring Tool Suite

     Es un entorno de desarrollo basado eproporciona una lista de funcionalidaimplementar, depurar, ejecutar y aplicaciones en Spring, incluyendo integracherramientas como Git, Maven, Jenkins.

  • 8/17/2019 Charla - Cls

    40/64

    Spring Boot 

    S

  • 8/17/2019 Charla - Cls

    41/64

    Spring Boot 

      Bondades

     Simplifica la construcción de los proyectos aplicando Convención sobre configuración.

     Flexible y pre-configurado, ofrece servicios ejecutarse.

     Permite usar la potencia de los módulos de el minimo conocimiento.

     Reduce el uso de XML, aplica el desaanotaciones (Programación declarativa).

    S i B

  • 8/17/2019 Charla - Cls

    42/64

    Spring Boot 

     Objetivos Disponer de funcionalidad out-of-the-box e

    de la naturaleza del proyecto (web, jpa, jbatch, etc).

     Dotar a las aplicaciones de herramientas quesu monitorización y auditoría (Log4j).

     Ofrecer una serie de características no fcomunes a los proyectos.

     Reducir la curva de aprendizaje.

    S i B t

  • 8/17/2019 Charla - Cls

    43/64

    Spring Boot 

      Ejemplo – Clases de consulta a una tabla

    S i B t

  • 8/17/2019 Charla - Cls

    44/64

    Spring Boot 

      Ejemplo – Clases de consulta a una tabla

    S i B t

  • 8/17/2019 Charla - Cls

    45/64

    Spring Boot 

      Que más nos ofrece

     Servidores embebidos, evita la dependservidores JEE, las aplicaciones se pueddirectamente sobre la JVM.

     Seguridad, la aplicación web contendrá aubásica.

     Spring Boot nos permite levantar un sbase de datos embebido, H2, HSLQ o DERBI

     Spring Data, usa JPA como ORM y ofrece ude interfaces para las operaciones CRUD.

     JDBCTemplate, nos permite trabajar uframework JDBC

    S i B t

  • 8/17/2019 Charla - Cls

    46/64

    Spring Boot 

     Otras características JMS, Integración entre procesos no bloquean NoSQL, enfoque hacia la bigdata.

     MongoDB Redis Cassandra

     Spring Batch, procesamiento masivo ysincronizado. Spring cloud, soporte para aplicaciones

    como servicios en la nube. String State Machine, librerías para la imple

    de componentes afectados por múltiples pro

  • 8/17/2019 Charla - Cls

    47/64

    Monolítico y Microservicio

    Microservicios

  • 8/17/2019 Charla - Cls

    48/64

    Microservicios

      Características arquitectura monolitica

     Despliegues de aplicaciones como una única

     Entidades rígidas, sin posibilidad de dividirla

     Almacén de datos compartido por toda la ap

     Una aplicación para todos los requisitos func

     Completamente desarrollada en un único leprogramación.

    Microservicios

  • 8/17/2019 Charla - Cls

    49/64

    Microservicios

      Estructura

     Se comparte la vista

     Desarrollo componentesde negocio de modoindependiente, pero sedespliegan como un

    único ente. Acoplado y dependiente

    de los objetos ORM

    Microservicios

  • 8/17/2019 Charla - Cls

    50/64

      Consecuencias

     Desarrollos y despliegues únicos.

     Aplicaciones con alta complejidad y tamaño.

     Largos ciclos de desarrollo.

     Compilaciones y despliegues eternos.

     Difícil de escalar y únicamente escalado hori

    Microservicios

    Microservicios

  • 8/17/2019 Charla - Cls

    51/64

      Cada programa hace una cosa, pero la hac

     Divide y vencerás

    Es una técnica de diseño de sistemascomo una colección de pequeñosservicios, cada uno ejecutándose ensu propio proceso, comunicándose conprotocolos ligeros como HTTP/Json.

    Microservicios

    Microservicios

  • 8/17/2019 Charla - Cls

    52/64

      Características

     Poliglotas: cada micro servicio puimplementado en un lenguaje de programac

     Tolerancia a fallos: Un fallo de un micro safectará al resto.

     Independientes: Ciclos de vida independient

     Escalado: Escalado eficiente y elástico.

     Autonomía: Cada servicio es desardesplegado de forma independiente.

     Facilita la colaboración entre desarrolladores

    Microservicios

    Microservicios

  • 8/17/2019 Charla - Cls

    53/64

      Estructura

    Microservicios

    Microservicios

  • 8/17/2019 Charla - Cls

    54/64

      Estructura

     Almacenes de datos independientes

     Cada aplicación implementa la soluciónecesidad funcional

     Interfaces de usuario independientes

    Microservicios

    Microservicios

  • 8/17/2019 Charla - Cls

    55/64

    Microservicios

    Un cambiorequiere que

    toda la

    aplicación sedespliegue

    Un

    so

    de

    seafe

    Microservicios

  • 8/17/2019 Charla - Cls

    56/64

    Microservicios

    Microservicios

  • 8/17/2019 Charla - Cls

    57/64

    Microservicios

    AcoplamientoDifícil documentaciónDifícil sincronizaciónInterrupción completa

    Microservicios

  • 8/17/2019 Charla - Cls

    58/64

    Microservicios

    Microservicios

  • 8/17/2019 Charla - Cls

    59/64

    Microservicios

    Menos Acoplamiento

    Comunicación mediante APIsHTTPPequeños e independientes

    Microservicios

  • 8/17/2019 Charla - Cls

    60/64

     Comunicaciones

     HTTP

     Sin intermediario

     Simple y natural

     Peticiones y respuesta rápidas

     Mensajes Requiere un MOM

     Añade complejidad

     Las transacciones no son bloqueantes

    Microservicios

    Microservicios

  • 8/17/2019 Charla - Cls

    61/64

      Empresas que lo utilizan

    Microservicios

    Preguntas

  • 8/17/2019 Charla - Cls

    62/64

    Preguntas

    ?

    Conozca más

  • 8/17/2019 Charla - Cls

    63/64

    Conozca más

    Agenda

  • 8/17/2019 Charla - Cls

    64/64

     Agenda