symfony

Recursos de programación de symfony
Hablaré de cómo rediseñar un sitio con Symfony 2.4, con altas exigencias en rendimiento, aplicando nuevas tecnologías y formas de trabajo; para obtener como resultado un proyecto listo para ser migrado a Symfony3 y PHP7. La propuesta se basa en un caso real. En Acilia realizamos el rediseño de uno de los sitios de nuestro cliente Condé Nast Francia, el cual consistió en rehacer todo el HTML, CSS y JS del proyecto y ajustar los controladores para que respondieran a los nuevas cambios. Contábamos con un proyecto con mas de 4 años de antigüedad y un equipo de trabajo compuesto en un 50% por nuevos desarrolladores, por lo cual dijimos, ¡innovemos!. En esta charla les contaré, cómo partiendo de un proyecto viejo y con malas prácticas se puede lograr un código actual y limpio, aplicando nuevas tecnologías, para lograr un excelente producto para el cliente.
Entrevista a Marc Morera, Symfony Evangelist y recientemente nuevo emprendedor. Más info: http://codely.tv/entrevistas/marc-morera/ Marc nos explica toda su trayectoria. Desde cómo empezó como programador, y qué cosas le han ayudado a seguir aprendiendo, hasta sus pasos por el Open Source y la búsqueda de trabajo para un desarrollador.
Partimos de un reto: cómo cambiar una web con millones de visitas, con un entorno en constante cambio, con una deuda técnica crítica y un equipo aumentando en número, en procesos para la generación de software de manera automatizada, documentada, probada y coordinada para la consecución de nuestras metas. En esta charla se presenta el caso práctico de la implantación de Symfony como pieza fundamental del puzzle y la integración continua como camino a seguir. Pruebas, integración, bundles, bases de datos, rendimiento... Aspectos claves para la consecución de nuestros objetivos.
Después de estar trabajando casi dos años en el desarrollo de un conjunto de librerías (o core) que debían compartir el resto de proyectos de clientes de una agencia de publicidad, hemos aprendido muchas cosas de cómo hacer los third-party bundles extensibles y heredables permitiendo adaptarse a todo tipo de proyectos. En la charla explicaremos estrategias y mecanismos que ofrecen Symfony y Doctrine para conseguir sobreescribir las validaciones y formularios o extender las entidades de Doctrine, como son relaciones mediante interfaces, Load Class Metada event, mapped superclass, Doctrine ORM compiler pass y disciminator map. Todo ello acompañado de ejemplos prácticos.
Durante la charla se expondrán los diferentes tipos de deployment que se han utilizado recientemente, explicando sus ventajas y desventajas. También se mostrará el caso práctico de Trovit y cómo gestionamos el cambio de un sistema de despliegue caótico a uno mejor con Ansible y Jenkins.
¿Es React.js una librería o es un framework? En cualquier caso es una nueva forma de trabajar que, de la mano de Facebook, está revolucionando la forma de hacer proyectos web. Tiene unas características muy particulares que nos permiten, por ejemplo, renderizar código de React desde Symfony, e incluir componentes de React desde etiquetas Twig. En esta charla haremos una introducción, veremos cómo sacarle partido desde proyectos Symfony y daremos respuesta a problemas prácticos como ¿podemos generar formularios React.js desde Symfony?
Desde un punto de vista de mercado, WordPress es una opción muy utilizada a la hora de empezar un proyecto. Pero en ocasiones, se trata una elección forzada que no dispone de una estructura y buenas prácticas como Symfony posee. El objetivo de esta charla es mostrar cómo aplicar buenas prácticas de desarrollo cuando trabajemos con WordPress, implementando PSRs y desacoplando nuestro código para poder migrarlo en un futuro a otras opciones sin esfuerzo y dotarle de una buena cobertura de tests. Veremos cómo podemos desarrollar y mantener plataformas basadas en WordPress utilizando cosas como inyección de dependencias, rutas en anotaciones y controladores; cómo utilizar composer para plugins, themes y sus dependencias; cómo montar los despliegues y qué opciones tenemos para utilizar WordPress desde nuestros Bundes.
En los micro-servicios modernos, los cuales se basan en eventos, comunicación bidireccional, stream multiplexing y otras formas de sincronización de los datos, la arquitectura clásica basada en HTTP/REST no siempre es la mejor opción. Algunas veces las aplicaciones requieren servicios donde es necesario mantener una comunicación asíncrona de eventos fluyendo en ambas direcciones, por ejemplo, un cliente conectado por Websocket. ¿Qué hacer en estos casos si tenemos la gran mayoría de nuestros servicios implementados con Symfony o Silex y queremos tener comunicación en real time con un cliente? ¿Qué opciones tenemos, qué soluciones podemos aplicar y con qué trade-offs? El objetivo de la charla es dar respuestas a estas preguntas, basándonos en casos de usos reales en producción, comparar las distintas alternativas existentes y ver ejemplos prácticos de integración Silex/Symfony.
¿Te has preguntado alguna vez cómo estos conceptos de CQRS/ES se pueden aplicar en un proyecto PHP/Symfony? Para ello, echaremos un vistazo al código de nuestro último proyecto: un sistema de gestión de almacén. La charla mostrará cómo entendemos el DDD y cómo lo aplicamos en Ulabox, cómo cambia la arquitectura y el código de la aplicación cuando aplicamos CQRS y cómo tratar con Event Sourcing, cuando no hay entidades persistidas, solo eventos que generan proyecciones que se usan en el modelo de lectura. Es un proyecto con arquitecturas nuevas (CQRS-ES), con la mentalidad DDD-Arquitectura hexagonal, pero con una base muy importante de Symfony.
En Ulabox tenemos código de hace 6 años y nuestra aplicación principal está atrapada bajo el paradigma CRUD. Nuestro dominio cada vez es más complejo y al ritmo que crecemos no es sostenible seguir trabajando bajo esas premisas. Nos encanta Symfony, pero lo más importante es nuestra lógica de dominio. Seguimos usando Symfony, pero perseguimos liberar dependencias, huyendo de un modelo anémico y tomando una mentalidad más DDD. En la charla trataremos como mejorar nuestro código y orientarlo más a dominio. Concretamente: - Mejorar nuestro código es nuestra responsabilidad - ¿Cómo mejorar nuestros controllers? - Desacoplar nuestras entidades de Symfony Forms - Aplicar DDD y separar modelo de lectura y escritura (CQRS) - Identificar agregados raíz