Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

1

Share

Download to read offline

Refactorizando Pccomponentes.com con Symfony

Download to read offline

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.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Refactorizando Pccomponentes.com con Symfony

  1. 1. Un poco de historia •De tienda física a tienda online •Posicionamiento + desarrollo rápido •Departamentos •Dept. Informática •Almacén y entrega rápida
  2. 2. Nos buscan y nos encuentran Sesiones anuales desde 2011 a 2015 Fuente: Google Analytics-PcComponentes Pedidos anuales desde 2011 a 2015 Fuente: PcComponentes La evolución de sesiones y pedidos en los últimos cinco años ha seguido una marcada tendencia creciente, siendo más acentuada en el caso de los pedidos finalizados por clientes.
  3. 3. Nuestra competencia  Nuestra diferenciación reside en la especialización dentro del sector de la tecnología e informática.  Somos líderes en precio, servicio y calidad dentro del sector. Somos la tienda online especializada en tecnología más visitada de España por encima de empresas como Media Markt, Fnac, Redcoon y Worten.
  4. 4. Nuestro Black Friday 2015  PcComponentes fue la tienda online con más visibilidad de España, por encima de la competencia y tan sólo por debajo del agregador Cupones Mágicos y los resultados de noticias, manteniendo una visibilidad del 5.28%.  Posicionamiento sin precedentes como tienda online líder de tecnología : PcComponentes junto a Amazon.
  5. 5. Aplicaciones por departamento
  6. 6. Aplicaciones por departamento (simulación)
  7. 7. Deuda técnica Ward Cunningham• Negocio necesita nueva funcionalidad • Productos no acabados o con errores conocidos en producción • Velocidad a corto plazo, suma complejidad • Frustración, miedo a desplegar, horas extras… • Limite cuando el gasto es mayor que el ingreso
  8. 8. Vamos a cambiar (refactorización) •Intentos CORE SLIM •Arquitectura nueva (API RESTFULL) • Lenguaje común • Cache •Códigos de error y excepciones (1xx, 2xx, 3xx, 4xx 5xx) • Estándares de código (PSR1-PSR2-PSR4) •IDE •Aplicación de un framework
  9. 9. Arquitectura
  10. 10. Elección del framework
  11. 11. Frameworks
  12. 12. ¿Qué bundles puedo usar y cómo? •Cuando creo uno •Estudio de previo •Adaptación a nuestro contexto •Descarte por incompatibilidad
  13. 13. ¿Donde pongo toda mi lógica? MANAGER CONTROLADOR VISTAMODELO
  14. 14. ¿Donde pongo toda mi lógica? MANAGER CONTROLADOR VISTAMODELO MANAGER
  15. 15. Nelmio • Obtiene datos por introspección • Posibilidad de hablar de swagger • Hay que acordarse de desactivarlo en producción!! • Junto con doxygen
  16. 16. Nelmio
  17. 17. Validadores • Entidades complejas con asserts • Uso de Constraints • Custom Validation
  18. 18. Excepciones (InvalidArgumentsException)
  19. 19. Seguridad • Autenticación basada en Oauth 2.0 •FOSOAuthServerBundle • Client (cliente confiable ej. Frontend, cron) •Resource owner password (usuario + pass ej. login) • SSL
  20. 20. Refactorizar Base de Datos •Base de datos compleja 3500 tablas aprox •Bases de datos cambiantes •Consultas muy pesadas •Refactorizar comportamiento y semántica
  21. 21. DOCTRINE • Capa intermedia con alguna lógica • ORM – DQL & DBAL – MYSQL • Mapear entidades • Extensiones (Ej. Translatable) • Console comands • Crear entidades • Ejecutar consultas • Información de errores
  22. 22. DOCTRINE TRANSLATABLE
  23. 23. REDIS • Cache de datos en RAM Ej. Datos del carro de compra • 581 entradas en menos de 5 mins • Mejora en 50 ms algunas llamadas
  24. 24. Rendimiento
  25. 25. Seguimos adelante • Microservicios • Colas de mensajes • RabbitMQ • Resque • ElasticSearch (ej. buscadores, detalles de artículo) • Test (selenium + nightwatch) • Despliegues (Ansible)
  26. 26. PC Equipo + Leandro Lorena María Carlos Adrián Alberto Vioque Sergio Pedro Diego Pedro Raja Jero Y familias
  27. 27. Agradecimientos
  28. 28. https://linkedin.com/in/mario-marin https://twitter.com/mariomarin13 mario.marin@pccomponentes.com https://twitter.com/symfony_mur
  • zokosa

    Sep. 24, 2016

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.

Views

Total views

1,368

On Slideshare

0

From embeds

0

Number of embeds

320

Actions

Downloads

13

Shares

0

Comments

0

Likes

1

×