La próxima versión de Drupal delegará parte de su funcionamiento en los componentes de Symfony2.
Para conocer realmente cómo se está proyectando esta evolución, es importante conocer qué es Symfony2, cuáles son sus componentes y unas pinceladas relativas a su funcionamiento.
Para ello, se explican brevemente los componentes que ya están siendo incorporados al core de Drupal8.
Este documento presenta una introducción a la programación reactiva con RxJava. Explica que RxJava es una librería Java que implementa el patrón Observer para manejar eventos de forma asíncrona mediante observables. También describe algunos de los operadores más comunes como map, filter y zip que permiten transformar y combinar observables de forma declarativa. Finalmente, menciona algunas ventajas de este paradigma como la simplificación de la concurrencia y la mejora de la legibilidad del código.
Este documento presenta una introducción a los hilos (threads) en Java, el framework de ejecutores y CompletableFutures. Explica conceptos clave como concurrencia vs paralelismo, estados de los hilos, creación y ejecución de hilos, sincronización, wait/notify y join. También describe las interfaces del framework de ejecutores, factories de ejecutores y el uso de futures. Finalmente, introduce CompletableFutures, explicando cómo ejecutar tareas asíncronas y métodos de composición.
Este documento trata sobre la programación avanzada de subprocesos en Java. Explica que un subproceso es similar a un programa secuencial con un inicio, secuencia y fin. Luego describe tres tipos de subprocesos: embebidos, reusables y múltiples. Finalmente, detalla el ciclo de vida de un subproceso y las clases relacionadas como Thread y Runnable.
Este documento describe una presentación sobre la orquestación de microservicios como la realiza Netflix. La presentación explica por qué es necesaria la orquestación de microservicios, las diferencias entre orquestación y coreografía, el sistema de orquestación de Netflix llamado Conductor, y cómo Mutua Madrileña ha definido su arquitectura de aplicaciones usando orquestación de procesos y servicios.
Este documento presenta las principales características de Java 8 como el manejo de fecha y hora con la clase Clock y las clases DateTime, la programación funcional mediante expresiones lambda, el uso de Optional para evitar nulos, los streams de colecciones para iterar de forma declarativa sobre conjuntos de datos, y CompletionStage para trabajar de forma asíncrona y no bloqueante.
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
Presentación enfocada a mostrar las funcionalidades más importante de los micro framework Spark y Ratpack. Dando una inducción a los conceptos básicos en su utilización del protocolo HTTP y los servicios REST.
Impartida en la segunda edición en el Barcamp 2014, Pontificia Universidad Católica Madre y Maestra (PUCMM), Santiago de los Caballeros, República Dominicana.
Este documento presenta una introducción a la programación reactiva con RxJava. Explica que RxJava es una librería Java que implementa el patrón Observer para manejar eventos de forma asíncrona mediante observables. También describe algunos de los operadores más comunes como map, filter y zip que permiten transformar y combinar observables de forma declarativa. Finalmente, menciona algunas ventajas de este paradigma como la simplificación de la concurrencia y la mejora de la legibilidad del código.
Este documento presenta una introducción a los hilos (threads) en Java, el framework de ejecutores y CompletableFutures. Explica conceptos clave como concurrencia vs paralelismo, estados de los hilos, creación y ejecución de hilos, sincronización, wait/notify y join. También describe las interfaces del framework de ejecutores, factories de ejecutores y el uso de futures. Finalmente, introduce CompletableFutures, explicando cómo ejecutar tareas asíncronas y métodos de composición.
Este documento trata sobre la programación avanzada de subprocesos en Java. Explica que un subproceso es similar a un programa secuencial con un inicio, secuencia y fin. Luego describe tres tipos de subprocesos: embebidos, reusables y múltiples. Finalmente, detalla el ciclo de vida de un subproceso y las clases relacionadas como Thread y Runnable.
Este documento describe una presentación sobre la orquestación de microservicios como la realiza Netflix. La presentación explica por qué es necesaria la orquestación de microservicios, las diferencias entre orquestación y coreografía, el sistema de orquestación de Netflix llamado Conductor, y cómo Mutua Madrileña ha definido su arquitectura de aplicaciones usando orquestación de procesos y servicios.
Este documento presenta las principales características de Java 8 como el manejo de fecha y hora con la clase Clock y las clases DateTime, la programación funcional mediante expresiones lambda, el uso de Optional para evitar nulos, los streams de colecciones para iterar de forma declarativa sobre conjuntos de datos, y CompletionStage para trabajar de forma asíncrona y no bloqueante.
Web framework ligeros y micros en java barcamp 2014Carlos Camacho
Presentación enfocada a mostrar las funcionalidades más importante de los micro framework Spark y Ratpack. Dando una inducción a los conceptos básicos en su utilización del protocolo HTTP y los servicios REST.
Impartida en la segunda edición en el Barcamp 2014, Pontificia Universidad Católica Madre y Maestra (PUCMM), Santiago de los Caballeros, República Dominicana.
Este documento presenta un curso sobre programación web con tecnología Java. Explica los contenedores web, servlets, JSP y el protocolo HTTP. También cubre temas como sesiones, el patrón MVC, entornos de desarrollo y despliegue de aplicaciones web con Java.
Este documento describe los conceptos fundamentales de las API REST y su desarrollo con MongoDB. Explica que una API REST permite aprovechar desarrollos existentes para nuevas aplicaciones mediante recursos accesibles a través de URIs y acciones HTTP. También describe cómo Spring Initializr facilita la generación de proyectos con sus dependencias, y los pasos básicos para crear clases, servicios y formularios en Angular para el desarrollo de una API REST con MongoDB.
El documento habla sobre ASP.NET MVC, un framework para desarrollo web que ofrece separación de preocupaciones, URLs limpias y un modelo de programación más performante. Explica conceptos como modelos, vistas y controladores, y características como Razor, rutas, y jQuery. También cubre SignalR, una biblioteca que permite comunicaciones en tiempo real entre el servidor y el cliente.
Este documento proporciona una introducción a Entity Framework, un ORM para .NET que permite a los desarrolladores trabajar con datos relacionales usando objetos de dominio. Explica los componentes clave de EF como EDM, LINQ y Entity SQL, y discute temas como el mapeo objeto-relacional, estilos de desarrollo, consideraciones de rendimiento y estrategias de herencia.
Este documento proporciona una introducción a Entity Framework. Explica que Entity Framework es un ORM que permite a los desarrolladores trabajar con datos de base de datos usando objetos de dominio. Describe los componentes clave de Entity Framework como EDM, modelos conceptuales y de almacenamiento, y mapeo. También cubre conceptos como LINQ, Entity SQL y acceso a datos con ADO.NET y LINQ. Finalmente, discute consideraciones de rendimiento como caché, consultas compiladas y estrategias de herencia.
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptxSibilinoAndante
El documento presenta una introducción al desarrollo web con ASP.NET Core MVC. Explica los conceptos clave de ASP.NET Core, ASP.NET Core MVC, la estructura de un proyecto MVC, y los componentes clave como controladores, vistas y modelos. También cubre temas como Razor, scaffolding, transferencia de datos y implementación de acciones.
El documento proporciona una introducción a Entity Framework. Explica que Entity Framework es un ORM que permite a los desarrolladores trabajar con datos relacionales usando objetos de dominio. Describe los componentes clave de Entity Framework como EDM, LINQ to Entities y Object Services. También cubre conceptos como ORM, POCO objects y LINQ y ofrece consideraciones para mejorar el rendimiento.
Este documento presenta el patrón Action-Domain-Responder (ADR) como una alternativa al patrón MVC tradicional para aplicaciones web. ADR separa las responsabilidades en acciones, dominio y respuesta. Las acciones gestionan las peticiones, el dominio contiene la lógica del negocio y el responder genera la respuesta. ADR tiene ventajas como una separación más clara de responsabilidades, clases más pequeñas y testeables, y favorece el uso de patrones de diseño y principios SOLID.
El documento habla sobre los frameworks de capa de presentación. Explica que un framework es un conjunto de clases que facilitan y agilizan el desarrollo de aplicaciones web. Describe algunos frameworks como Struts y Spring MVC, indicando sus características principales como el modelo de programación, sistema de navegación, validación, configuración e internacionalización.
This slides are about what is drupal? and why you should use drupal. The target for this slides are students of last courses of web apps development.
This slides was created by:
@keilovecraft
@Nesta_
This slides are based on http://www.slideshare.net/zekivazquez/taller-drupal-jornadas-software-libre-uca (by @RabbitLair)
Corporación de Industrias Tecnológicas S.A. - Capacitaciones en Informática - Programación con CodeIgniter
www.CorpintecSA.com
contacto@CorpintecSA.com
Este documento describe los conceptos básicos de los sistemas distribuidos y Oracle 9i. Explica tres arquitecturas de sistemas distribuidos (teleproceso, servidor de archivos y cliente-servidor), los componentes de la arquitectura de Oracle 9i como la instancia, SGA y PGA, y los privilegios de sistema y objetos en Oracle 9i. También resume los roles y perfiles en Oracle 9i y los pasos para instalar y configurar una base de datos como la creación de tablespaces, usuarios, esquemas y tablas.
Este documento presenta Docker, una plataforma de contenedores que permite empaquetar aplicaciones junto con todas sus dependencias para ejecutarlas de forma aislada. Explica los beneficios de Docker para desarrolladores y startups, como facilitar el despliegue de aplicaciones y la gestión en la nube. También describe el ecosistema de Docker incluyendo clientes, servidores, imágenes, registros y buenas prácticas de orquestación y monitorización.
Este documento presenta una introducción a las tecnologías y patrones de desarrollo más populares para la creación de aplicaciones web modernas de una sola página. Comienza explicando los beneficios y retos de las aplicaciones SPA y continúa describiendo marcos como Angular, patrones como MVVM, y herramientas como TypeScript, Webpack y Bootstrap que ayudan a crear aplicaciones escalables, mantenibles y con buenas prácticas de desarrollo.
Este documento describe los servicios web REST con MongoDB. Explica brevemente HTTP, API y REST. Luego describe cómo crear una API RESTful con recursos, URI, acciones de HTTP y MongoDB. Finalmente, detalla las herramientas como Spring Initializr, NetBeans y la estructura de paquetes para el desarrollo de la API REST.
El documento introduce los conceptos básicos de los web services y .NET remoting. Explica las características y ventajas de ambos, incluyendo que los web services usan HTTP y XML para permitir la interoperabilidad entre lenguajes, mientras que .NET remoting permite la comunicación entre aplicaciones mediante canales y expone objetos .NET de forma remota. También incluye ejemplos simples de "Hola Mundo" para ambos en C#.
Pues volvemos de nuevo a la carga con un nuevo meetup donde os vamos a contar cómo podeis optimizar al máximo los recursos que CloudHub nos ofrece como por ejemplo:
1.- Saber dimensionar el número de operaciones por API
2.- Aplicar buenas prácticas para no saturar los recursos
3.- Aprovechar al máximo el 0.1 vCore
4.- Cuando escalar vertical y horizontalmente un API
5.- Utilizar herramientas de análisis de código como Sonar
Este documento explica la tecnología Java RMI (Remote Method Invocation) para la creación de objetos distribuidos en Java. Describe los conceptos básicos de objetos distribuidos, la arquitectura RMI, el uso de stubs y skeletons, y provee un ejemplo completo de un servidor y cliente RMI.
Este documento presenta un curso sobre programación web con tecnología Java. Explica los contenedores web, servlets, JSP y el protocolo HTTP. También cubre temas como sesiones, el patrón MVC, entornos de desarrollo y despliegue de aplicaciones web con Java.
Este documento describe los conceptos fundamentales de las API REST y su desarrollo con MongoDB. Explica que una API REST permite aprovechar desarrollos existentes para nuevas aplicaciones mediante recursos accesibles a través de URIs y acciones HTTP. También describe cómo Spring Initializr facilita la generación de proyectos con sus dependencias, y los pasos básicos para crear clases, servicios y formularios en Angular para el desarrollo de una API REST con MongoDB.
El documento habla sobre ASP.NET MVC, un framework para desarrollo web que ofrece separación de preocupaciones, URLs limpias y un modelo de programación más performante. Explica conceptos como modelos, vistas y controladores, y características como Razor, rutas, y jQuery. También cubre SignalR, una biblioteca que permite comunicaciones en tiempo real entre el servidor y el cliente.
Este documento proporciona una introducción a Entity Framework, un ORM para .NET que permite a los desarrolladores trabajar con datos relacionales usando objetos de dominio. Explica los componentes clave de EF como EDM, LINQ y Entity SQL, y discute temas como el mapeo objeto-relacional, estilos de desarrollo, consideraciones de rendimiento y estrategias de herencia.
Este documento proporciona una introducción a Entity Framework. Explica que Entity Framework es un ORM que permite a los desarrolladores trabajar con datos de base de datos usando objetos de dominio. Describe los componentes clave de Entity Framework como EDM, modelos conceptuales y de almacenamiento, y mapeo. También cubre conceptos como LINQ, Entity SQL y acceso a datos con ADO.NET y LINQ. Finalmente, discute consideraciones de rendimiento como caché, consultas compiladas y estrategias de herencia.
5.- PPT 2022 05 U01 T01 Desarrollo de Servicios Web I (1915).pptxSibilinoAndante
El documento presenta una introducción al desarrollo web con ASP.NET Core MVC. Explica los conceptos clave de ASP.NET Core, ASP.NET Core MVC, la estructura de un proyecto MVC, y los componentes clave como controladores, vistas y modelos. También cubre temas como Razor, scaffolding, transferencia de datos y implementación de acciones.
El documento proporciona una introducción a Entity Framework. Explica que Entity Framework es un ORM que permite a los desarrolladores trabajar con datos relacionales usando objetos de dominio. Describe los componentes clave de Entity Framework como EDM, LINQ to Entities y Object Services. También cubre conceptos como ORM, POCO objects y LINQ y ofrece consideraciones para mejorar el rendimiento.
Este documento presenta el patrón Action-Domain-Responder (ADR) como una alternativa al patrón MVC tradicional para aplicaciones web. ADR separa las responsabilidades en acciones, dominio y respuesta. Las acciones gestionan las peticiones, el dominio contiene la lógica del negocio y el responder genera la respuesta. ADR tiene ventajas como una separación más clara de responsabilidades, clases más pequeñas y testeables, y favorece el uso de patrones de diseño y principios SOLID.
El documento habla sobre los frameworks de capa de presentación. Explica que un framework es un conjunto de clases que facilitan y agilizan el desarrollo de aplicaciones web. Describe algunos frameworks como Struts y Spring MVC, indicando sus características principales como el modelo de programación, sistema de navegación, validación, configuración e internacionalización.
This slides are about what is drupal? and why you should use drupal. The target for this slides are students of last courses of web apps development.
This slides was created by:
@keilovecraft
@Nesta_
This slides are based on http://www.slideshare.net/zekivazquez/taller-drupal-jornadas-software-libre-uca (by @RabbitLair)
Corporación de Industrias Tecnológicas S.A. - Capacitaciones en Informática - Programación con CodeIgniter
www.CorpintecSA.com
contacto@CorpintecSA.com
Este documento describe los conceptos básicos de los sistemas distribuidos y Oracle 9i. Explica tres arquitecturas de sistemas distribuidos (teleproceso, servidor de archivos y cliente-servidor), los componentes de la arquitectura de Oracle 9i como la instancia, SGA y PGA, y los privilegios de sistema y objetos en Oracle 9i. También resume los roles y perfiles en Oracle 9i y los pasos para instalar y configurar una base de datos como la creación de tablespaces, usuarios, esquemas y tablas.
Este documento presenta Docker, una plataforma de contenedores que permite empaquetar aplicaciones junto con todas sus dependencias para ejecutarlas de forma aislada. Explica los beneficios de Docker para desarrolladores y startups, como facilitar el despliegue de aplicaciones y la gestión en la nube. También describe el ecosistema de Docker incluyendo clientes, servidores, imágenes, registros y buenas prácticas de orquestación y monitorización.
Este documento presenta una introducción a las tecnologías y patrones de desarrollo más populares para la creación de aplicaciones web modernas de una sola página. Comienza explicando los beneficios y retos de las aplicaciones SPA y continúa describiendo marcos como Angular, patrones como MVVM, y herramientas como TypeScript, Webpack y Bootstrap que ayudan a crear aplicaciones escalables, mantenibles y con buenas prácticas de desarrollo.
Este documento describe los servicios web REST con MongoDB. Explica brevemente HTTP, API y REST. Luego describe cómo crear una API RESTful con recursos, URI, acciones de HTTP y MongoDB. Finalmente, detalla las herramientas como Spring Initializr, NetBeans y la estructura de paquetes para el desarrollo de la API REST.
El documento introduce los conceptos básicos de los web services y .NET remoting. Explica las características y ventajas de ambos, incluyendo que los web services usan HTTP y XML para permitir la interoperabilidad entre lenguajes, mientras que .NET remoting permite la comunicación entre aplicaciones mediante canales y expone objetos .NET de forma remota. También incluye ejemplos simples de "Hola Mundo" para ambos en C#.
Pues volvemos de nuevo a la carga con un nuevo meetup donde os vamos a contar cómo podeis optimizar al máximo los recursos que CloudHub nos ofrece como por ejemplo:
1.- Saber dimensionar el número de operaciones por API
2.- Aplicar buenas prácticas para no saturar los recursos
3.- Aprovechar al máximo el 0.1 vCore
4.- Cuando escalar vertical y horizontalmente un API
5.- Utilizar herramientas de análisis de código como Sonar
Este documento explica la tecnología Java RMI (Remote Method Invocation) para la creación de objetos distribuidos en Java. Describe los conceptos básicos de objetos distribuidos, la arquitectura RMI, el uso de stubs y skeletons, y provee un ejemplo completo de un servidor y cliente RMI.
3. Sobre mí
●
Magd Kudama
●
Programador web
●
@MagdKudama
●
http://magdkudama.com
4. Pongámonos en situación
●
El uso Drupal ha crecido exponencialmente en los
últimos años
●
La comunidad crece, los requerimientos crecen y por
tanto el CMS crece
● Muchos desarrolladores en el proyecto, inmensidad de
módulos
● Pero no hay suficientes desarrolladores del core Drupal
● Es necesario estandarizar el CMS a su nivel más bajo
●
Se delegará el funcionamiento de algunas partes de
Drupal a componentes Symfony
5. ¿Symfony?
Framework: Conjunto estandarizado de conceptos,
prácticas y criterios para enfocar un tipo de
problemática particular, que sirve como referencia
para enfrentar y resolver nuevos problemas de índole
similar.
Son diseñados con la intención de facilitar el
desarrollo de software, permitiendo a los
diseñadores y programadores pasar más tiempo
identificando requerimientos de software.
Todos sabemos leer :)
6. Características Symfony2
●
Requiere PHP 5.3
●
Full-stack web framework
●
(Infinitamente) Flexible
●
Extensible
●
Tiene lo mejor de cada casa
7. La boda: Drupal8 & Symfony2
●
Symfony basa su funcionamiento en componentes
altamente desacoplados y genéricos
●
Drupal integrará algunos componentes Symfony2
9. Componentes que integrará Drupal8
Es un tema tratado en la actualidad, pero hay
componentes confirmados:
– HttpFoundation
– HttpKernel
– ClassLoader
– EventDispatcher
– Routing
– DependencyInjection
Pero habrán más, seguro...
12. HttpFoundation (1)
●
Define una capa orientada a objetos para la
especificación HTTP
●
En PHP, una request viene representada por una
serie de variables globales
●
Y una respuesta está definida por funciones
●
HTTPFoundation aglutina el funcionamiento de los
objetos Request y Response en una capa OOP
13. HttpFoundation (2)
●
Algo tenemos claro: HTTP es simple
●
De alguna forma tenemos que lograr que la
simplicidad de una petición HTTP se vea plasmada en
la práctica
●
HTTP Foundation permite centrarse en el viaje desde
request hasta response
●
Abstraerse de los extremos, centrándose en la lógica
de la aplicación
14. HttpFoundation (3) - Request
●
Las variables globales PHP se sustituyen por
propiedades de HTTPFoundation
●
Hay propiedades para obtener, updatear y filtrar los
datos de la request
●
También para acceso a datos de sesión de usuario
15. HttpFoundation (4) - Request
Creamos la request a partir de las variables globales de
la petición PHP
O creamos una request y hacemos el override
de las variables globales
16. HttpFoundation (5) - Response
●
Tenemos la request... Hemos manipulado los datos, y
nos encontramos en la parte final del ciclo de vida de
la petición: la respuesta
●
El objeto Response se encarga de enviar los datos al
cliente, a partir de la información de la Request.
●
Es posible indicar cabeceras, manejo de cookies,
control de caché, datos de sesión, redirecciones...
19. HttpKernel (1)
●
Es el punto de partida perfecto para crear un
framework
●
Se sitúa en lo alto de HTTP Foundation
●
Se encarga de la parte dinámica de HTTP
●
Estandarizar el manejo de peticiones
●
HTTPCache, Asserts, excepciones...
21. ClassLoader (1)
●
Cargador de clases universal
●
Permite la carga automática de clases siempre y
cuando sigan una serie de normas (estándar PSR-0,
seguir la convención de nombres propuesta por
PEAR)
●
Si las clases de tu proyecto cumplen los requisitos, no
necesitarás NADA más
●
Sólo se cargan las clases que se usan, y los ficheros
son mucho más limpios
24. EventDispatcher (1)
●
Implementación del patrón de diseño Observer
●
Define dependencias entre objetos
●
Cuando uno de los objetos cambia su estado, el
observador se encarga de "avisar" al resto de objetos
dependientes
●
El funcionamiento es simple: uno o varios observadores
se suscriben a un sujeto, quien se encarga de
notificarles cuándo un evento ha tenido lugar
●
Una de las mejores maneras de desacoplar el código y
hacerlo más flexible
28. Routing (1)
●
Mapping de peticiones HTTP
●
Se asocia un nombre único a un controlador
●
Ruta: Definición de la regla que permite al sistema
mapear una request a un controlador
29. Routing (2)
El funcionamiento en Symfony es sencillo:
●
Se crea una colección de rutas (RouteCollection)
●
El Matcher se encarga de extraer los metadatos de
la request, para así asignarla a un controlador
●
Problema: Las rutas se crean en tiempo de
ejecución. Drupal requiere cientos de rutas, por lo
que la solución que propone el componente no
escala lo suficiente
30. Routing (3)
Se sustituye el sistema de Routing que viene por
defecto en Symfony por Chain Routing:
●
No rutea nada por sí solo
●
Las rutas se definen en la BD, y se agrupan por
prioridad
●
Se registran la lista de routers, y se tratan por
orden para hacer el matching y generar las rutas
necesarias
●
Para encontrar la ruta, se utiliza un algoritmo best-
fit (el que más se ajuste)
32. DependencyInjection (1)
● Patrón de diseño orientado a objetos, en el que se
suministran objetos a una clase en lugar de ser la propia
clase quien cree el objeto
● Es una implementación de IoC. El principal cometido del
contenedor es el de gestionar el ciclo de vida de los objetos
● Existe un contenedor (DIC) encargado de crear los servicios
y las dependencias entre ellos
● Mejoran las pruebas unitarias, y consiguen una arquitectura
mucho más clara y flexible
● Estandariza y centraliza la forma en la que los objetos son
construidos