Mejorando la experiencia de uso de Symfony

A menudo a los programadores nos gusta centrarnos solamente en los aspectos tecnológicos de las tecnologías que usamos. Symfony por ejemplo es muy popular porque permite crear aplicaciones PHP de alta calidad y fáciles de mantener aplicando todas las buenas prácticas populares de la industria informática.

Sin embargo, hay un aspecto en el que Symfony podría (y debería) mejorar todavía mucho más: la experiencia de uso para los programadores. Por eso hoy se ha presentado una iniciativa llamada Developer Experience con la que Symfony quiere mejorar increíblemente su experiencia de uso.

La idea consiste en localizar primero aquellos puntos en los que Symfony es demasiado complicado, demasiado aburrido o simplemente no da la talla. Después, todas estas ideas se añaden como issues en el repositorio oficial de Symfony bajo la etiqueta DX (de Developer Experience). Y por último, la comunidad decide sobre cada idea y se implementan aquellas ideas aprobadas.

Para todos aquellos programadores que queráis echar una mano, estos son los primeros pasos a seguir:

1) Echa un vistazo a la etiqueta DX en el repositorio oficial de Symfony. Ahí verás que ya se han propuesto las primeras ideas para mejorar Symfony. Añade tus propias ideas o comenta las ideas propuestas por otras personas.

2) Añade la etiqueta DX a tu propio repositorio o pide que la añadan en los proyectos que utilizas. Esta iniciativa no consiste solamente en mejorar el core de Symfony. Queremos mejorar toda la comunidad Symfony/PHP para hacerte la vida más sencilla. Y para ello, necesitamos detectar los problemas de otros proyectos, tales como librerías y bundles.

3) Hackday de la comunidad. El próximo 5 de julio vamos a organizar el primer hackday cuyo objetivo es resolver el máximo número de issues marcados con la etiqueta DX. Más adelante se explicarán todos los detalles.

4) Apostando fuerte por la usabilidad para principiantes. Mantener la retrocompatibilidad del código es tan importante que Symfony nunca va a renunciar a ello. Pero queremos apostar muy fuerte por mejorar el uso del framework para los programadores que están empezando con Symfony. Por eso queremos incentivar que la gente publique posts sobre Symfony orientados a principiantes y queremos simplificar el código de algunos aspectos de Symfony, como por ejemplo la nueva notación de las plantillas Twig.

Por último, nos gustaría agradecer el increíble trabajo realizado por Ryan Weaver al proponer y liderar esta iniciativa. Para los que no lo conozcáis, Ryan es la persona que gestiona toda la documentación de Symfony (más de 4.000 commits y más de 82.000 cambios en el repositorio symfony-docs), además de ser responsable del sitio KnpUniversity donde puedes encontrar screencasts de alta calidad sobre Symfony.

Comentarios

  1. Saludos javier coloque un issue pero no se como poner la etiqueta DX ya que según se tengo entendido debo ser colaborador en el repositorio.

    Piero Recchia el 18 de junio de 2014, 16:13:17

  2. Piero, tienes razón sobre lo de ser colaborador en el repositorio. Como yo tampoco lo soy en ese repo, no puedo añadir la etiqueta DX. Pero como has puesto el mensaje sobre la etiqueta DX, creo que entenderán el motivo del issue.

    Javier Eguiluz el 18 de junio de 2014, 17:01:53

  3. Hola javier,

    Como yo tampoco soy colaborador y no tengo buen ingles, te lo comento por este medio a ver si vos lo podes poner.

    Lo que me cuesta y me hace perder bastante tiempo es la inyección de dependencias y no poder resolver un service en cualquier lado y últimamente estuve trabajando con laravel y veo que en ese framework lo resuelven con App::make() ver: http://laravel.com/docs/ioc

    Saludos.

    carlos mouriño el 18 de junio de 2014, 19:45:42

  4. Carlos en Symfony2 obtener un Servicio mendiante en Contenedor de Servicios (Service Container) haciendo uso de inyección de dependencias es tan fácil como hacer esto desde tu controlador: $foo = $this->get('foo');

    Ó Hacer esto en cualquier lugar donde inyectes al contenerdor de servicio (container): $this->container->get('foo');

    http://symfony.com/doc/current/book/service_container.html

    Sin embargo sí hay otras cosas a mejorar para Symfony. Me gustaría que se facilitara la configuración de Administración de Usuarios, es algo tediosa y complicada, y FOSUser no resuelve todos los problemas.

    Que fácilmente se den alternativas a la administración de Usuarios y Grupos de Usuarios, por ejemplo, Symfony por defecto lleva los permisos mediante roles, sería genial que se pudieran llevar los permisos a nivel de controladores y niveles de acceso a este, sin tener que hacer uso de un bundle de terceros, de esta forma el proyecto sería más dinámico y no tendrías que quemar en tu código los permisos mediante Roles cada vez que crees un nuevo Rol sino que le das permisos a ese Rol medinate una interfaz amigable a uno o más controladores a un nivel de acceso específico. Espero que me haya sabido explicar.

    José Gabriel González el 19 de junio de 2014, 13:48:56

  5. José Gabriel González tiene razón la configuración de Administración de Usuarios no debe ser tan complicada, así como su integración con redes sociales :).

    Keven Saldaña Altamirano el 25 de junio de 2014, 7:40:03

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

18 de junio de 2014

Etiquetas

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.