Más con Symfony

15.1. Obteniendo lo mejor de la comunidad

Entre las muchas formas de obtener ventajas de la comunidad de Symfony, algunas están tan integradas con la forma de utilizar el framework, que no somos conscientes de que no existirían de no ser por la propia comunidad. La principal es el propio uso de Symfony. Aunque el framework Symfony inicialmente fue desarrollado por una empresa y su apoyo al framework sigue siendo muy fuerte, Symfony nunca hubiera llegado a donde está sin el gran apoyo de la comunidad. Así que veamos las diferentes formas en las que puedes aprovechar la comunidad.

15.1.1. Soporte

Todos los programadores, sobre todo los que empiezan con el framework, llegan alguna vez a un punto a partir del cual no saben cómo continuar. Afortunadamente, Symfony dispone de una comunidad muy amigable dispuesta a ayudarte con prácticamente cualquier pregunta que plantees. Existen diferentes formas de conseguir respuestas, pero en general casi siempre que planteas una pregunta puedes obtener una respuesta rápidamente.

15.1.1.1. Antes de preguntar

Antes de plantear una pregunta utilizando alguno de los métodos explicados a continuación, es recomendable que tu mismo intentes buscar la solución. Puedes utilizar un buscador generalista como Google, pero si quieres realizar una búsqueda más específica, es preferible que utilices los archivos de las listas de correo, sobre todo el archivo de la lista symfony-users.

15.1.1.2. Preguntar

Resulta muy importante aprender a realizar buenas preguntas. Aunque parece una tontería, es muy importante pensar bien lo que vas a preguntar. Comprueba también que tu pregunta no haya sido ya resuelta en la amplia documentación del proyecto. Si quieres obtener más y mejores respuestas, te recomendamos que sigas estas recomendaciones:

  • Piensa bien la pregunta y asegúrate de formularla con claridad. Explica bien lo que estás haciendo (o al menos intentando), lo que no puedes hacer y sobre todo, menciona claramente todos los errores que se están produciendo.
  • Describe brevemente todo lo que ya has intentado, incluyendo referencias a la documentación que has utilizado para describir el problema, las posibles soluciones que has encontrado en los buscadores o archivos de listas de correo y cualquier otra cosa que has probado para solucionar el problema.

15.1.1.3. Listas de correo

El proyecto Symfony dispone de varios grupos en Google Groups organizados por temática. Estas listas de correo son la mejor forma de estar en contacto con los usuarios y desarrolladores de Symfony. Si trabajas con Symfony y buscas soporte para los errores y dudas que te surjan, entonces deberías visitar el grupo symfony users en inglés o el grupo symfony-es en español. En estas listas de correo puedes encontrar desde usuarios principiantes hasta usuarios avanzados que controlan cualquier aspecto del framework. Al grupo en inglés también acuden todos los creadores de Symfony. Debido al gran número de usuarios de esos grupos, es muy probable que encuentres a alguien que pueda responder a tu pregunta. Existen otros grupos con diferentes propósitos:

  • symfony-devs: para las discusiones sobre el propio desarrollo de Symfony (pero no para soporte sobre cómo se utiliza Symfony)
  • symfony-docs: para las discusiones sobre la documentación de Symfony
  • symfony-community: para las discusiones sobre las iniciativas de la comunidad

En cualquier caso, debes tener en cuenta que las listas de correo son un medio mucho menos directo que otras formas de comunicación como por ejemplo el IRC. En ocasiones pasarán horas o incluso días hasta que des con la respuesta que estabas esperando. Te aconsejamos que seas receptivo a cualquier pregunta que se te formule sobre tu problema y que no seas muy impaciente.

Además, en las preguntas enviadas a la lista de correo es necesario que incluyas mucha información sobre tu entorno: configuración, ORM que utilizas, sistema operativo, soluciones que has intentado y han fallado, etc. Incluso en algunos casos es recomendable que añadas en el email ejemplos de tu código para aportar más información de contexto sobre tu problema.

15.1.1.4. IRC

IRC es la forma más rápida de obtener respuestas debido a su característica de tiempo real. Symfony dispone de su propio canal llamado #symfony en la red de Freenode, donde a lo largo del día se dan cita decenas de usuarios de Symfony. Sin embargo, debes tener en cuenta que aunque haya más de 100 personas conectadas, la mayoría se encuentran en su puesto de trabajo y por tanto no pueden estar pendientes continuamente el canal IRC. Por tanto, aunque se trata de un medio en tiempo real, en ocasiones cuesta un tiempo obtener las respuestas.

Debido a sus características, no es posible mostrar grandes bloques de código en el canal IRC. Así que describe detalladamente tu problema en el IRC y si quieres mostrar un trozo de código o un archivo de configuración, utiliza sitios como pastebin.com y añade el enlace correspondiente en el canal IRC. Si no haces caso a esta recomendación y llenas el canal IRC de código, el resto de usuarios lo entenderá como una falta de cortesía y será difícil que obtengas una respuesta a tu problema.

Cuando preguntes algo en el canal IRC, estate atento a las respuestas y se receptivo a cualquier pregunta que te planteen sobre tu problema. Algunas veces es posible que te sugieran incluso modificar tu forma de afrontar el problema. Puede que los que te sugieren esto tengan razón o puede que no hayan analizado correctamente tu situación, pero en cualquier caso deberías describir detalladamente tu problema siempre que te lo pregunten. Como los demás usuarios no conocen tu proyecto en su totalidad, puede que hayan hecho suposiciones que no son correctas una vez que explicas con detalle tu problema. No te ofendas si se encuentras en una situación como la anterior, ya que los demás sólo están intentando echarte una mano.

Cuando la actividad del canal es muy intensa, asegúrate de añadir a tus respuestas un prefijo con el nombre de la persona que te hizo la pregunta. De esta forma facilitas tu conversación y también las conversaciones de los demás usuarios, que pueden ignorar fácilmente tus mensajes por no formar parte de sus conversaciones.

15.1.2. Correcciones de errores y nuevas funcionalidades

Se trata de algo que normalmente damos por hecho, pero es necesario recordar que todo el código fuente de Symfony es fruto de un gran esfuerzo por parte de la comunidad. Obviamente la empresa Sensio y Fabien Potencier en particular dedican muchísimo esfuerzo al proyecto, pero incluso su trabajo es en parte de la comunidad, ya que al publicar su proyecto como software libre, han demostrado su interés por la comunidad. Todos los demás programadores que también trabajan solucionando errores y añadiendo nuevas características también lo hacen por la comunidad. Así que cuando estés trabajando con Symfony (o con cualquier otro proyecto de software libre) recuerda que puedes hacerlo en gran parte gracias al esfuerzo de la comunidad.

15.1.3. Plugins

Symfony dispone de un gran sistema de plugins, que permite instalar fácilmente cualquier plugin externo en un proyecto Symfony. El sistema de plugins es muy flexible y se basa en el instalador de PEAR y su sistema de canales. Además de los plugins que incluye el propio Symfony, existe una enorme cantidad de plugins que han sido desarrollados y son mantenidos por la comunidad. El sitio web de los plugins muestra todos ellos ordenados por categoría, ORM utilizado y versión de Symfony que soportan. Gracias al esfuerzo de la comunidad es posible encontrar plugins para casi todas las funcionalidades comunes de las aplicaciones web de hoy en día.

15.1.4. Conferencias y eventos

Interactuar con otros miembros de la comunidad por medios digitales está bien, pero mucho mejor es hacerlo en persona a través de las conferencias y el resto de eventos que se organizan. La mayoría de conferencias relacionadas con PHP y muchas otras no directamente relacionadas con PHP cuentan con la presencia de miembros de la comunidad de Symfony. Algunos de ellos incluso realizan presentaciones en esas conferencias, así que es una buena forma de aprender.

Además de las conferencias generalistas, existen algunos eventos dedicados exclusivamente a Symfony, como el Symfony Live, el Symfony Day y el SymfonyCamp. Todos estos eventos cuentan con el apoyo de algunas empresas, pero la mayor parte del trabajo lo realiza la comunidad. Asistir a alguno de estos eventos es una buena forma de aprender y de estar con contacto con los miembros más importantes de la comunidad. Si puedes asistir a alguno de estos eventos, te recomendamos encarecidamente que lo hagas.

Últimamente también han surgido muchos grupos de usuarios de Symfony en todo el mundo. Estos grupos no suelen contar con el apoyo de las empresas, sino que simplemente son reuniones periódicas que realizan los programadores de Symfony que se encuentran próximos geográficamente. Asistir a alguna de estas reuniones requiere muy poco esfuerzo y te va a servir para crear toda una red de contactos profesionales que te puede ayudar a solucionar tus problemas, buscar un trabajo o conocer a otros programadores de Symfony.

15.1.5. Reputación

Si quieres conseguir una buena reputación, debes estar presente en la comunidad, la gente debe verte, tienes que hablar con los demás miembros de la comunidad y en general, es necesario ser muy activo. Ganarte una buena reputación puede parecer poco útil salvo para satisfacer tu ego, pero en realidad puedes ganar mucho gracias a una buena reputación. Si por ejemplo estás buscando trabajo y lo comunicas a la comunidad, es posible que una o dos personas se pongan en contacto contigo para ver si encajas dentro de sus ofertas. Sin embargo, si te has trabajado la reputación, es seguro que vas a recibir muchas ofertas de trabajo y para puestos mucho más interesantes.

Igualmente, si estás buscando programadores y lo comunicas a la comunidad, obtendrás algunas respuestas. Si trabajas tu reputación y comunicas una oferta de trabajo, recibirás decenas de respuestas y podrás elegir entre alguno de los miembros más importantes de la comunidad.