Desarrollo web ágil con Symfony 2.1

Desde hace unas horas, ya está disponible en symfony.es/libro la versión actualizada para Symfony 2.1 del libro Desarrollo web ágil con Symfony2. Con esta actualización, el libro de Symfony2 ya está disponible en seis versiones: HTML5, PDF y EPUB, tanto para Symfony 2.0 como para Symfony 2.1.

(Aprovecho este momento para recordar que el libro se publica con una aplicación llamada easybook. Se trata de una aplicación construida con varios componentes de Symfony2 y que permite publicar fácilmente libros y documentos en HTML, PDF y EPUB.)

Para los amantes de las estadísticas, estos son los datos de cada versión:

  • Versión para Symfony 2.0: 23.842 líneas, 144.742 palabras y 1.132.070 caracteres.
  • Versión para Symfony 2.1: 23.789 líneas, 144.067 palabras y 1.124.051 caracteres.
  • Párrafos modificados de una versión a otra: 2.093.

Aunque todavía no utilices Symfony 2.1, esta actualización también te beneficia, ya que he aprovechado para repasar completamente todos los contenidos del libro. Así, en la versión 2.0 he corregido pequeños errores ortográficos (aunque prácticamente todos ya los habíais detectado vosotros), he cambiado algunas frases para mejorar las explicaciones y se han actualizado contenidos importantes, como la instalación y uso del SonataAdminBundle y el apéndice de Twig, actualizado hasta Twig 1.9.0.

Cómo conseguir la nueva versión

Cualquier persona que haya comprado el libro de Symfony 2.0 puede acceder a las dos versiones, sin importar cuándo lo compró. Igualmente, la gente que compre el libro a partir de ahora también puede acceder a la versión 2.0 anterior.

El acceso ahora se realiza a través de SensioLabs Connect, la red social profesional para programadores de Symfony. Para ello tienes que seguir estos pasos:

  • Entra en symfony.es/libro y pincha en Iniciar Sesión
  • Si tienes cuenta en SensioLabs Connect, introduce tu usuario y contraseña y da permiso a symfony.es para acceder a tu cuenta. Si no tienes cuenta en SensioLabs Connect, tienes que crearla. Es gratis y tardas menos de 1 minuto.
  • Al entrar de nuevo en symfony.es/libro verás que el enlace Iniciar Sesión ha cambiado por este otro enlace: Quiero leer el libro. Pincha en ese enlace.
  • En ese momento, nosotros recibimos tu solicitud, comprobamos (manualmente) tus datos y si todo es correcto, recibes un email avisándote de que ya puedes leer el libro y descargarlo.

Si has comprado el libro a nombre de otra persona, o te has registrado en SensioLabs Connect con otro email diferente al que compraste el libro, por favor envíame un email a [email protected] avisando del cambio.

Ayer debía haber sido un día muy feliz con la publicación de la nueva versión del libro. Lamentablemente, durante la mañana se produjeron bastantes errores técnicos que causaron muchas molestias a los lectores. Además de pediros disculpas, a continuación voy a contaros qué sucedió, por si os sirve para no cometer los mismos errores cuando hagáis algo parecido.

Aprendiendo de los errores cometidos

El proceso de activación del libro era sencillo: os envío un email, vosotros pincháis un enlace, me llega la petición y la activo. Lamentablemente, lo que sucedió fue que al pinchar el enlace se os mostraban mensajes de error de tipo 500. La siguiente lista resume cuáles fueron exactamente los errores que cometí:

  • Configurar demasiado el archivo security.yml: pensaba que al definir varios firewalls para diferentes partes de la aplicación y eliminar la seguridad en las partes que no lo necesitan mejoraría el rendimiento de la aplicación. Lo que realmente pasó fue que la configuración se volvió tan compleja que no era fácil detectar los errores que contenía.
  • Optimizar demasiado la aplicación: desactivé servicios, activé la caché HTTP, activé todas las cachés de Doctrine2 y muchas más cosas en previsión de la avalancha de usuarios que esperaba (y que efectivamente se produjo). Optimizar está bien, pero probar exhaustivamente las optimizaciones realizadas está mejor. Obviamente esto último no lo hice.
  • No planificar bien las notificaciones: mi plan era avisar del nuevo libro a la vez a todos los lectores. ¿El problema? El efecto bola de nieve: al producirse un error, lo sufrieron centenares de usuarios a la vez. Si hubiera segmentado las notificaciones por lotes de usuarios, me habría dado cuenta del error en el primer o segundo lote. ¿Otro problema de enviar todas las notificaciones a la vez? Google Apps en su versión gratuita tiene unos límites diarios de envío de emails bastante cortos (500 emails/día más o menos). Si vas a enviar miles de emails en un día, tienes un problema.
  • No tener tests unitarios: sin duda la causa principal de los errores es que no tengo ni un solo test unitario para esa parte tan crítica de la aplicación. Irónicamente, tengo tests para otras partes mucho menos importantes. Desde hace un tiempo soy un convencido de los tests (aunque no de la filosofía TDD) por lo que no tengo ninguna excusa para no haber creado los test.

Como nota positiva, gracias a vuestros mensajes y los pantallazos que me enviasteis del error he podido ver el aspecto del rediseño de symfony.es en muchos navegadores y sistemas operativos diferentes, algo así como un BrowserShots a medida.

Comentarios

  1. excelente trabajo !!

    David Quintanel el 10 de octubre de 2012, 13:40:45

  2. Javier, este trabajo es incredible, gracias a mis profesores de español por permitirme leer esto ahora ;)

    Loïc Caillieux el 10 de octubre de 2012, 17:22:45

  3. Felicitaciones! Excelente trabajo y excelente noticia el poder contar tan rápidamente con la versión 2.1 del libro. Javier, creo que se te escapó un detalle con la versión de Twig (1.9.0 y no 1.0.9).

    Moises Burgos el 11 de octubre de 2012, 6:34:15

  4. Muchas gracias a todos (merci beaucoup Loïc)

    Tienes razón Moisés. Acabo de corregir el número de versión. No si a alguien más le pasa, pero siempre me lío con el número de versión de Twig (y más ahora, que la nueva es 1.10.0).

    Javier Eguiluz el 11 de octubre de 2012, 8:13:59

  5. Gracias Javier, de tiempo que vuelvo a entrar a tu blog, el trabajo y la universidad me tienen loco xD .... Me matas las ganas de leer el libro, ahora en su nueva version.. =D ...

    Salu2

    Willy Tito Sucasaire el 13 de octubre de 2012, 7:47:21

  6. Muchísimas gracias por el trabajo realizado y también por la atención prestada a los que nos han surgido problemas tanto en el alta en Sensiolabs Connect como con la descarga del libro. Un saludo.

    Francisco J. Flores Palomo el 15 de octubre de 2012, 12:13:05

  7. Hola Javier ante todo gracias por todo y por ese gran libro que gracias a el he avanzado muchísimo en mi aprendizaje de symfony2. Te felicito a ti por todo el trabajo que haces para los hispano-hablantes y para los demás claro está. Sigue así que vas por muy buen camino Saludos desde Cuba, de un iniciado de symfony2...

    Dayrán A. V. el 15 de octubre de 2012, 16:24:54

  8. Bravo!, quiero empezar con symfony2, y este libro tiene una pintaza tremenda, muchísimas gracias.

    Francisco Lojo el 18 de octubre de 2012, 23:27:27

  9. ¡Muy buenas! Javier, ¿cuánto estás tardando en comprobar las solicitudes de envío de la actualización del libro? Entiendo que siendo un tema manual lleva su tiempo pero hace más de una semana que lo solicité y no me llega ningún correo (y tampoco quiero abrasar mandando más solicitudes :P). ¡Gracias y felicidades por el libro!

    Marcos Pérez el 22 de octubre de 2012, 16:48:29

  10. Hola! Compre tu libro hace tiempo, pero solo me llego el mail con la versión en pdf, Use la opción de "Quiero leer el libro" para obtenerlo en los demás formatos pero no tuve respuesta, te envíe un mail al mail que proporcionar pero tampoco, si pudieras darme una respuesta sobre esto te lo agradecería, tengo muchas ganas de poder tener el libro en otros formatos.

    Saludos!

    Diego Saint Esteben el 28 de octubre de 2012, 2:29:28

  11. Estamos igual, esperando el libro :(

    cristobal ponce el 31 de octubre de 2012, 21:49:47

  12. Quisiera saber de cuanto es la demora en adquirir el libro. Es decir cuanto tiempo pasa en que yo pague con paypal y me mandes el libro? y si el libro lo mandarias a mi e-mail o a donde?

    jose ignacio pergolesi el 24 de enero de 2013, 23:00:44

  13. Hola Javier, para los nostálgicos del papel ¿por que no te animas a publicar el libro en Lulu o algún otro?

    Aitor el 15 de febrero de 2013, 1:00:35

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

10 de octubre de 2012

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.