Nos impressions sur la SymfonyCon 2014 à Madrid
Nous étions présents à Madrid pour la seconde édition de la #SymfonyCon. Cet événement international nous a permis une fois de plus de rencontrer nos pairs, et d’assister à quelques très bonnes conférences. Je reviens dans cet article sur les quelques sessions auxquelles nous avons assisté.
Section intitulée a-rel-nofollow-noopener-noreferrer-href-http-qafoo-com-resources-presentations-symfonycon-madrid-2014-feature-flags-with-symfony-html-feature-flags-a-par-benjamin-eberleiFeature Flags par Benjamin Eberlei
Benjamin a présenté sa vision des « feature flags », avec une base d’implémentation pour débuter.
La mise en place de feature flags, courante sur de gros projets, permet d’activer progressivement de nouvelles fonctionnalités ou de ne donner un accès qu’à certains utilisateurs. Mais ils sont rarement abstraits, et reviennent souvent à une série de if/elseif/else
.
Avec des feature flags en place, il devient envisageable de merger beaucoup plus de code dans la branche master
(ie. la branche de production), même pour des fonctionnalités non finalisées, permettant ainsi de faire des tests utilisateur plus facilement. Flickr pratique cette méthode dont le nom nous rappelle SVN : le « trunk-based development ».
Les flags doivent tout de même être régulièrement nettoyés. En effet, inutile de garder un flag pour une fonctionnalité en production et sans limitation particulière.
Côté implémentation :
- un
onKernelRequest
peut servir à modifier à la volée le_controller
d’une route ; - les Services Factory sont utiles pour instancier une version ou une autre d’un service en fonction d’un flag.
Il existe des bundles aidant à gérer ces problématiques, mais Benjamin recommande de commencer petit avec votre propre implémentation.
Section intitulée a-rel-nofollow-noopener-noreferrer-href-http-slides-seld-be-file-2014–11–27-five-weird-tricks-to-become-a-better-developer-html-five-weird-tricks-to-become-a-better-developer-a-par-jordi-boggianoFive Weird Tricks to Become a Better Developer par Jordi Boggiano
Le premier talk non technique (et non composer ?) de Jordi, avec l’objectif de nous faire lever la tête du guidon et de nous donner une meilleure perspective sur les « bonnes pratiques », non pas pour notre code, mais pour nous, nos collègues et nos clients.
Section intitulée thinkThink
Ne jamais hésiter à reporter des problèmes sur les petites choses qui nous semblent cassées ou non optimales. Montrer le problème est la première étape de sa résolution.
Pour chaque demande, il est important de comprendre l’utilité de la fonctionnalité demandée, ainsi que de mesurer sa valeur ajoutée.
Section intitulée empathieEmpathie
Se mettre dans les chaussures des autres est primordiale car chaque décision que nous prenons affecte d’autres personnes, d’autres développeurs, et très certainement nous-même, dans quelques mois.
Par exemple, il est intéressant de penser à l’interface utilisateur… du code. Il est courant de voir des constructeurs écrit de cette façon :
<?php
class User {
public function __construct($name, $enabled, $admin, $age);
}
Du côté utilisateur, le code est très obscur :
new User("toto", true, false, 21);
Il est difficile de lire et de comprendre à quoi correspond chaque paramètre.
Jordi recommande :
- d’apprendre à se taire et à écouter les autres ;
- écouter, et non « attendre son tour pour parler » !
- toujours demander si quelque chose n’est pas clair ;
- reformuler le message pour être sûr qu’il est compris ;
- se soucier des gens, sans jugement.
Section intitulée chillChill
Épargnez vous le burn-out : la fatigue, le stress et le manque de motivation sont des tueurs, à la fois pour votre productivité et pour vous.
Il faut passer plus de temps à perdre du temps. Ne pas utiliser son téléphone aux toilettes, par exemple ! 5 minutes sans informations / twitter / emails… c’est 5 minutes pendant lesquelles votre tête se repose. En voilà un bon protips® !
Section intitulée pragmatismePragmatisme
De plus, qui est payé pour faire de belles abstractions ? Jordi insiste sur le fait que le client ne se soucie pas de la beauté d’une interface, et l’abstraction faite pour la beauté du geste est souvent inutile ou prématurée.
Section intitulée faire-des-concessionsFaire des concessions
Pour finir, faire des concessions. Développer est une suite sans fin de concessions :
- usage mémoire VS usage CPU ;
- espace disque VS qualité d’image ;
- librairie tierce VS snippet…
Il n’existe pas de bonne réponse pour tous les cas, vous devez rester flexible et prendre ces décisions avec votre équipe, afin de servir au mieux les besoins métier. D’un projet à un autre, tout peut changer.
Section intitulée the-dx-initiative-par-ryan-weaverThe DX Initiative par Ryan Weaver
The Developer Experience (DX) Initiative, c’est faire plus avec moins de temps de développement, d’apprentissage, ou de complexité.
La communauté Symfony travaille sur de nombreuses fonctionnalités dans ce sens, sous le nom de DX, dont certaines apparaissent dans la toute récente version 2.6 (taguée pendant la keynote de clôture !).
La conclusion est de ne pas hésiter à reporter les problèmes même mineurs, aussi bien dans la documentation que dans le core.
Section intitulée a-rel-nofollow-noopener-noreferrer-href-http-fr-slideshare-net-pgodel-symfonycon-madrid-2014-rock-solid-deployment-of-symfony-apps-rock-solid-deployment-of-symfony-apps-a-par-pablo-godelRock Solid Deployment of Symfony Apps par Pablo Godel
La conférence de Pablo Godel n’a pas été aussi intéressante que son nom le laissait entendre. Il s’agissait surtout d’une liste des outils les plus utilisés dans une stack Web moderne (de Docker à Kibana). La cible était probablement des gens qui déploient via FTP, et la présentation n’était pas orientée Symfony si ce n’est une mention de Capifony.
Section intitulée a-rel-nofollow-noopener-noreferrer-href-http-fr-slideshare-net-javier-eguiluz-symfony-tips-and-tricks-symfony-tips-amp-tricks-a-par-javier-eguiluzSymfony Tips & Tricks par Javier Eguiluz
Très bonne conférence, et surprenamment technique. Parmi les points marquants, nous pouvons noter :
- la méthode
addClassesToCompile()
deDependencyInjection\Extension
qui permet d’ajouter des classes dans le fichiercache/{env}/classes.php
et ainsi d’économiser des appels à l’autoloader ; - il ne faut pas utiliser
sprintf
dans le logger, il y a maintenant un support des{placeholders}
avec le PSR log processor (à activer) ; - le tag
{% do %}
de Twig, apparu dans la version 1.5 ; - l’option doctrine
schema_filter
qui permet de dire à l’ORM quelles sont les tables qu’il ne doit pas chercher à gérer.
Il y avait aussi beaucoup d’astuces concernant Assetic, que vous retrouverez dans les slides.
Section intitulée a-rel-nofollow-noopener-noreferrer-href-http-moquet-net-talks-symfonycon-2014-lt-openlocalization-a-par-matthieu-moquetLT OpenLocalization par Matthieu Moquet
Matthieu nous a présenté rapidement mais avec efficacité son projet Openl10n.io permettant de gérer les traductions d’une application. On y trouve une API Symfony2 couplée à un front BackboneJS avec une refonte en cours sur AngularJS. Un projet prometteur que nous allons surveiller !
Section intitulée growing-and-managing-communities-for-large-open-source-projects-par-jen-lamptonGrowing and managing communities for large Open Source projects par Jen Lampton
La seconde journée a démarré avec cette conférence plénière sur l’open source et la gestion de projet. Le sujet aurait pu être intéressant mais j’ai eu le sentiment qu’il concernait surtout des projets de taille importante, comme Drupal & Symfony, et donc, des problématiques qui ne nous touchent pas.
Avoir un projet qui prend de l’ampleur apporte de nombreuses choses :
- une validation du besoin ;
- une pérennisation ;
- un plus grand nombre de ressources.
Mais il y a aussi des mauvais côtés :
- il devient difficile de contrôler le scope du projet ;
- tous le monde n’est pas d’accord sur ce qui doit faire partie du Core ;
- un brouillard se crée : quelques 14k bugs sur Drupal, par où commencer ?
Jen a donc présenté quelques solutions pour palier ces problèmes – solutions appliquées par Drupal – à l’attention des responsables de la communauté Symfony.
Section intitulée sylius-par-pawel-jedrzejewskiSylius par Paweł Jędrzejewski
Solution e-commerce déjà bien connue dans l’éco-système Symfony, Paweł nous a présenté la série de Bundle et surtout l’intérêt de leur utilisation plutôt que l’écriture d’un système propre.
J’y ai appris l’intégration du CMF, l’apparition récente du multi-store et multi-warehouse, ainsi que l’implémentation du moteur de recherche Elasticsearch qui vient d’être mergée, j’ai hâte de pouvoir y jeter un oeil.
Section intitulée a-rel-nofollow-noopener-noreferrer-href-http-fr-slideshare-net-aferrandini-artificial-neural-network-in-a-tic-tac-toe-symfony-console-application-symfonycon-2014-artificial-neural-network-aArtificial Neural Network
Sujet très intéressant que nous avons rarement l’occasion de voir en conférence. Ariel Ferrandini et Eduardo Gulias ont réalisé un Tic Tac Toe jouable en mode console, réalisé avec le composant Symfony, et dôté d’une intelligence artificielle… en PHP (enfin presque) !
Bien que pour un jeu de ce type, l’algorithme minimax est le plus pertinent, c’est ici un réseau de neurones qui a été implémenté. Le but étant de permettra à l’IA d’apprendre et de s’améliorer au cours du temps, les deux développeurs ont choisi d’utiliser libfann (Fast Artificial Neural Network), une librairie écrite en C, et son extension PECL.
Une belle introduction, même si l’aspirine était nécessaire après en avoir compris tous les concepts :)
Section intitulée le-hack-day-du-samediLe Hack Day du samedi
Après les deux jours de conférence se tenait, avec le support d’Heroku, un Hack Day au sein même de l’hôtel. Plus d’une centaine de personnes étaient présentes et on a compté une centaine de pull request sur symfony/symfony
uniquement, sans parler de tous les autres projets comme la documentation, elle aussi très ciblée.
Nous avons nous-même apporté notre pierre à l’édifice et joué avec Heroku, avant de nous rendre dans le centre de Madrid pour profiter des tapas et de la sangria :)
Section intitulée notre-impression-generaleNotre impression générale
Au final, une conférence agréable même si l’organisation aurait sûrement quelques protips® à reprendre d’événements organisés par des associations telles que Paris Web ou Forum PHP – en terme d’accueil, communication et confort du public. En effet il était par exemple impossible d’entendre les questions du public sans micro, l’organisation des lightning talks n’était pas parfaite non plus.
Le programme était diversifié et globalement intéressant, mais j’ai trouvé que de nombreuses sessions n’étaient pas en rapport avec Symfony, ou n’élevaient pas l’état de l’art. L’usage de Varnish par exemple est déjà très bien documenté, et plusieurs conférences ont pris beaucoup de temps à parler d’outils de type Grunt / Bower alors qui deviennent des standards dans tous les projets Web.
La prochaine édition se déroulera à Paris, pour les 10 ans de Symfony, et il y a fort à parier que nous y seront présents – surtout pour le karaoké !
Cet article porte sur la conférence SymfonyCon Madrid 2014.
Commentaires et discussions
10 ans de Symfony à #SymfonyCon Paris
Une semaine après l’excellente édition 2015 du Forum PHP, l’équipe de JoliCode poursuit dans sa lancée et s’est donnée rendez-vous à la SymfonyCon de SensioLabs. Après Madrid, Symfony revient souffler sa 10ème bougie à Paris. Et quel meilleur endroit que les Folies Bergère pour fêter…
Lire la suite de l’article 10 ans de Symfony à #SymfonyCon Paris
Nos articles sur le même sujet
Ces clients ont profité de notre expertise
Dans le cadre d’une refonte complète de son architecture Web, Expertissim a sollicité l’expertise de JoliCode afin de tenir les délais et le niveau de qualité attendus. Le domaine métier d’Expertissim n’est pas trivial : les spécificités du marché de l’art apportent une logique métier bien particulière et un processus complexe. La plateforme propose…
L’équipe d’Alain Afflelou a choisi JoliCode comme référent technique pour le développement de son nouveau site internet. Ce site web-to-store incarne l’image premium de l’enseigne, met en valeur les collections et offre aux clients de nouvelles expériences et fonctionnalités telles que l’e-réservation, le store locator, le click & collect et l’essayage…
Travailler sur un projet US présente plusieurs défis. En premier lieu : Le décalage horaire. Afin d’atténuer cet obstacle, nous avons planifié les réunions en début d’après-midi en France, ce qui permet de trouver un compromis acceptable pour les deux parties. Cette approche assure une participation optimale des deux côtés et facilite la communication…