PhpTour 2018 par Julien

Présentation du forum

Toute l’équipe Kiboko est allée les 17 au 18 Juin 2018 au dernier PhpTour, un événement de deux jours regroupant beaucoup de développeurs  autour du langage Php.

Durant ces deux jours, j’ai eu l’occasion de participer à de nombreuses conférences. Les conférences se déroulaient dans une salle de cinéma, de 9 heures à 18 heures, on ne manquait pas d’informations. Un membre de l’AFUP nous a présenté le PhpTour lors de la Keynote d’ouverture.

Avant de commencer, les conférenciers se présentaient et expliquaient brièvement leurs conférences en 30 secondes, de ce fait les participants du PhpTour pouvaient choisir d’aller dans telle ou telle conférence car deux conférences se déroulaient au même moment dans deux salles différentes du nom de Jarvis et de Morpheus, sous un format allant de 20 à 40 minutes.

Premier jour

Une des premières conférences à laquelle j’ai assisté a été “Retour sur 5 ans de CLI PHP pour importer le catalogue chez Deezer”.

Romain Cottard de Deezer nous a montré la façon dont est géré l’ajout de leur catalogue musical depuis la réception des albums par les maisons de disques jusqu’à la plateforme Deezer. Deezer n’est pas simplement une application Web mais aussi un catalogue disponible sur mobile et autres devices. Romain Cottard nous a montré comment d’une application d’un seul bloc il a réussi à diviser les différents processus de la gestion du catalogue.

« Bienvenue dans la matrice ! »

De par son titre, je m’attendais à quelque chose de complexe en tant que développeur junior, j’ai eu cette appréhension de ne rien comprendre, et bien j’ai eu tort car cette conférence est une de celles que j’ai le plus appréciées. Le conférencier Benoit Jacquemont d’Akeneo a réalisé une démonstration en ligne de commandes pour exécuter une application web, puis à lancé une commande de débogage qui nous a affiché une multitude de lignes incompréhensibles à première vue.
Benoit Jacquemont nous a convaincu d’utiliser cette manière de faire pour déboguer nos applications. En partant de “rien” et en suivant un raisonnement très logique, nous savons maintenant déboguer une application de A à Z.

Avant de manger, je voulais participer à tout prix à la conférence “Tenter de gagner (un peu) sa vie avec un projet open source”. Cette conférence évoquait un retour d’expérience de Nicolas Loeuillet. Il nous a raconté toute son expérience depuis son idée de développer une application mobile payante jusqu’à sa création et sa maintenance ainsi que ses contraintes temporelles.

Pendant la pause de midi, nous avons eu l’occasion d’échanger sur les différentes conférences auxquelles nous avons assisté. L’AFUP organisait un déjeuner chaque matin, de quoi grignoter tous les midis et de goûter à la pause de 4 heures. Tous ces moments permettaient de faire le point sur ce qu’on avait entendu précédemment.

Une des conférences que j’ai le plus apprécié fut “Éthique et macarons”. Laurent Chemla, un des principaux précurseurs d’internet (co-fondateur de Gandi) nous a montré sa vision de l’effet négatif que peut avoir internet aujourd’hui sur le comportement des gens. Il incitait tous les développeurs à réfléchir sur l’effet que leurs applications peuvent avoir sur le comportement des gens avant de les concevoir.

Juste avant de finir cette première journée, les organisateurs ont planifié différents Lightning-talks. Quelques conférenciers présentaient un sujet pendant cinq minutes, souvent des sujets annexes pour se divertir.

Le soir nous sommes allé à l’apéro organisé par l’AFUP au Circus dans le centre de Montpellier.

Pendant cette partie de l’événement, nous avons eu la chance de pouvoir discuter autour de plein de sujets tournant autour du Php, e-commerce… tout en dégustant de nombreux petits plats de charcuterie et de fromages proposé avec une distribution de boissons tout aussi agréable.
Ce passage de nuit m’a permis de découvrir la ville de Montpellier, j’ai d’ailleurs retrouvé une atmosphère très sympathique. Durant cette soirée j’ai eu la chance d’écouter le parcours fort intéressant de Romain Monceau speaker et lead développeur chez Akeneo.

Deuxième jour

Le lendemain, il ne faut pas se le cacher nous étions un peu fatigués. Dès la reprise des conférences, j’ai beaucoup apprécié les différentes conférences car beaucoup d’entre elles évoquaient Symfony, un outil que j’utilise tous les jours depuis le début de mon stage.
J’ai trouvé ça génial de pouvoir assister réellement aux conférences des développeurs de SensioLabs et d’échanger avec les créateurs de Symfony dont Kevin Dunglas.

Pour finir cette journée :

1) “La pire meilleure idée : faire du batch processing avec Doctrine”, était une conférence sur la gestion de grande base de données dans une application. Je l’ai beaucoup apprécié car elle m’a permis de découvrir à quel point les problématiques peuvent changer au cours du temps dans une application.

2) Jouons tous ensemble à un petit jeu. La dernière grosse conférence était en fait une application web créée par Thomas Sieffert. Le principe était de se connecter sur le site en utilisant le QR code avec nos smartphones et on accédait ensuite à un quiz en temps réel, le fait qu’on voyait toutes les personnes connectées et les réponses en temps réel fut très impressionnant.

Ma vision personnelle

Ce fut une première pour moi de participer à un événement de ce type.
Il y avait une super ambiance dans notre équipe ainsi qu’avec les autres participants. En tant que stagiaire, je trouve génial d’avoir participé, cela m’a permis de tisser des liens forts au sein de l’équipe.
Ma participation au PhpTour m’a permis également d’ouvrir ma vision sur le métier de développeur php et de regarder autour de nous comment les autres développeurs peuvent travailler. Ce PhpTour m’a également permis de découvrir des nouvelles technologies, de nouvelles méthodes, et donc d’élargir ma vision de développeur.
J’ai retenu pas mal de choses et je suis très fier d’avoir mangé à côté de développeurs très expérimentés.

Pour conclure, je suis très satisfait de ce séjour montpellierrain et j’ai hâte de participer aux prochains AFUP days avec toute l’équipe Kiboko !!!

PhpTour 2018 par Camille

Premier Jour

Le 24 et 25 mai 2018 se déroulait la dernière édition du PHP Tour.

Étant stagiaire chez Kiboko, je n’imaginais pas avoir la chance de pouvoir me rendre à ce genre d’événement. Après 5h de voiture, nous voilà au Gaumont Odysseum, à Montpellier, qui a été réquisitionné pour l’occasion.

L’équipe Kiboko en route pour le PHP tour 2018

Après une razzia sur les stands des sponsors, c’est le sac pleins de goodies que nous assistons à la première conférence de la journée.

Nikolas Grekas nous explique comment Symfony 4 a pu tirer le maximum du potentiel du moteur de PHP7.

Arrive ensuite Jean Pasdeloup et Romain Cottard, qui nous résument 5 ans d’évolution de l’import du catalogue Deezer.

Puis vient la conférence qui pour moi a été la plus intéressante de la journée :

“Bienvenue dans la matrice !” de Benoit Jacquemont, qui travaille chez Akeneo. Il nous montre différents outils systèmes qui peuvent nous permettre d’intercepter et d’analyser les échanges entre les processus et le noyau Linux.

Une conférence technique, mais Benoît, très pédagogue, a su bien vulgariser ce qui se passait derrière un programme, comment les processus interagissaient entre eux, et comment trouver des solutions à des problèmes qui semblent à première vue très compliqués à résoudre.

Moi qui avais une vision très surfaite de comment fonctionnait un programme, j’ai pu grâce à cette conférence acquérir une vision un peu plus globale de la “Matrice”.

Nous découvrons peu de temps après le Speak de Nicolas Loeuillet, qui nous présente son projet, Wallabang, et son retour d’expérience sur le parcours qu’il a effectué lors de cette aventure. Il répond également à la fameuse question : Peut-on gagner sa vie avec un projet Open-source?

La réponse? Ça semble à première vue compliqué, mais pas forcément impossible.

La pause

Petite pause déjeuner, histoire de reprendre des forces pour l’après-midi, puis compétition inter-entreprise de BabyFoot, où nous avons malheureusement dû nous incliner face à l’adversité.

14h00 : reprise des hostilités avec Joel Wurtz, qui nous explique comment faire de l’asynchrone avec PhP de manière simple, sans finir avec le cerveau qui fume, et surtout sans callbacks (Et oui c’est possible !).

C’est à ce moment de la journée que j’ai du faire le choix cornélien, entre la conférence “Un autre regard sur la validation” de Quentin Pautrat, et “CQRS, Fonctionnel, Event Sourcing & DDD (Domain Driven Design)” d’Arnaud Lemaire.

J’ai fini par choisir le speak d’Arnaud car je ne connaissais aucun des concepts énoncés ci-dessus.

Au programme beaucoup de théories sur des concepts architecturaux assez complexes, à une cadence très soutenue (environ une centaine de slides en 40 minutes, autant dire qu’il fallait s’accrocher, surtout après avoir bien mangé).

Mais le sujet était plus qu’intéressant et permettait d’entrevoir différentes approches d’un projet, de choisir la bonne manière d’organiser son code suivant le besoin, et surtout d’expliquer des concepts qui peuvent paraître très nébuleux aux premiers abords.

Un peu d’Ethique

Enfin, pour finir cette belle journée, Laurent Chemla nous a proposé une conférence-débat sur un sujet plus que polémique en ce moment, j’ai nommé : Le respect de la vie privée,  et plus particulièrement la responsabilité des développeurs par rapport à celle-ci.

Et en plus il distribuait des macarons.

Apéro communautaire

Consommations offertes par l’Afup, ça c’est cool.

Deuxième jour

Lever à 8 heures, on attaque avec Kévin Dunglas , que je suis sur les réseaux sociaux déjà depuis un bon moment.

Il nous montre les différences entre les architectures REST et GraphQL, l’alternative proposée par Facebook. Démonstrations à l’appui, il nous explique les avantages, les inconvénients, le tout à travers son framework : Api Platform.

Toujours au top, des explications toujours clairs, un vrai plaisir d’assister à ses talks.

Caching with PSRS

Hannes Van De Vreken nous présente ici les différences entre le PSR-6 et le PSR-16, comment le mettre en place sur nos  applications, et chose très importante :  Comment bien gérer son cache.

Petite pause

On fait le plein de café et de viennoiseries, et on y retourne !

Un peu d’événements dans un monde linéaire

Une autre de mes conventions préférées, car la gestion des événements a longtemps été un concept assez abstrait pour moi, et Julien Vinber a su éclairer les choses grâce à des exemples très complets.

Il nous montre aussi les différences entre la gestion d’événements synchrones et asynchrones (RabbitMQ)

Et pour la fin…

Et pour finir ce PHP tour, on se retrouve avec Romain Monceau qui nous présente son retour d’expérience de l’utilisation de doctrine pour traiter des processus lourds, de type import de gros volumes de données et des problèmes qui en découlent à travers un exemple qui nous parlera à tous :

L’import d’un immense catalogue de bières dans notre base de données !

A travers cet exemple léger, on a pu voir que changer notre manière de développer peut apporter d’énormes gains de performance, ce qui sur de gros volumes peut nous faire gagner un temps précieux.

Ma vision de ce tour

C’est le premier événement de ce genre auquel j’assiste et sûrement pas le dernier. Outre les conférences toutes très intéressantes, ce que j’ai préféré dans ce tour, c’est de pouvoir rencontrer et de surcroit échanger avec d’autres développeurs qui ont pour la plupart beaucoup plus d’expériences que moi, et de voir à quel niveau ils ont pu arriver et surtout l’ampleur des projets qu’ils entreprennent .

La réforme RGPD

La Règlementation Générale sur la Protection des Données (RGPD) entre en application le 25 mai 2018. Cette règlementation adoptée par le Parlement Européen concerne toutes les entreprises qui font du business avec des citoyens Européens, même si elles sont établies en dehors de l’Europe.

Les autorités de régulation vont vérifier toute l’organisation et les process des entreprises, mais aussi toutes les sauvegardes sur toutes les infrastructures et tous les software utilisés par les entreprises. De très lourdes amendes sont prévues pour punir les fraudeurs.

Kiboko fait un tour d’horizon de ce qu’ont prévu ses partenaires et de ce que vous devez faire de votre côté.

OroCommerce et OroCRM

Bien sûr, OroCommerce collecte, stocke et utilise les données personnelles des clients. Mais dans le même temps, la plateforme permet de faire ressortir très facilement les données stockées et les lieux de collecte, ce qui  est primordial lors des audits de conformité. Pour vous aider, OroCommerce vous proposera dès le début du mois de mai une aide pour que vous soyez en conformité avec la RGPD.

Les données personnelles

  • Toutes les données servant aux indicateurs de performance (KPIs), comme les demandes de contact, les comptes client, les demandes de devis, etc. sont concernées par la RGPD.
  • Les lieux de stockage sont divers : les bases de données de OroCommerce (MySQL ou PostgreeSQL), les serveurs d’indexation et de recherche de données (Elasticsearch, Redis), les identifiants pour les accès aux serveurs ou aux pages
  • Les intégrations : OroCommerce intègre différents systèmes comme par exemple des fournisseurs d’identité, des programmes de mailing de masse, des logiciels de gestion du e-commerce, etc. Il va falloir demander à chaque utilisateurs son autorisation pour collecter ses données personnelles et également définir des règles concernant l’échange de ses données avec les systèmes intégrés.

Le consentement des clients

OroCommerce a développé une fonctionnalité spécifique pour la gestion des réponses aux demandes de consentement à la collecte, au stockage et à l’utilisation des données personnelles des clients. Cette fonction devrait être disponible début mai 2018.

Les droits des utilisateurs

  • Droit d’accès : les formulaires de OroCommerce permettent aux utilisateurs d’accéder à leurs informations personnelles stockées.
  • Droit de rectification : les outils de gestion de données permettent de répondre aux demandes de correction des clients concernant leurs données personnelles.
  • Droit à la portabilité des données : avec OroCommerce, les données des utilisateurs sont exportables au format CSV.
  • Droit à l’effacement : grâce aux fonctions de recherche, les entités où sont stockées les données personnelles à effacer sont facilement identifiables et donc les données facilement effaçables. Ceci à l’exception des données récupérées dans certains champs tels que « adresse de facturation », « adresse de livraison », etc. Pour ces cas là, il faudra effacer les données manuellement. En ce qui concerne les données transitant dans les systèmes connectés à OroCommerce, il sera nécessaire de leur faire une demande d’effacement. D’autre part, la fonction de webtracking de OroCommerce étant très puissante, il conviendra de vérifier si il y a des données à effacer. Enfin, il faudra également faire attention à ce que les restaurations de données après une défaillance de système ou après un backup ne soient pas des données préalablement effacées…

Autres points

  • Transfert des données personnelles interdit en dehors de l’Europe. Oro étant une entreprise américaine, il est impératif de dérouter chaque donnée fournie vers un des services client de Oro situés en Europe.
  • Confidentialité des données. L’infrastructure très sécurisée de OroCommerce protège les données sensibles qui sont stockées. OroCommerce a adopté le processus de conformité ITIL et est certifié PCI DSS (norme de sécurité pour le stockage des numéros de cartes de paiement).
  • Conservation des données. Les données conservées doivent l’être dans une limite de temps définie. Lorsqu’un utilisateur de site web accepte les cookies, son consentement n’est valable que pendant 13 mois. Au delà, le traitement des cookies est obsolète et doit faire l’objet d’une nouvelle demande de consentement. D’autre part, il y a obligation d’effacer toutes les données personnelles des clients inactifs depuis 3 ans. OroCommerce est capable de retrouver et de filtrer ses données périmées et ainsi de les supprimer.

Magento

Pour être en conformité avec la réforme RGPD, la personnalisation des produits de Magento n’est pas nécessaire, mais requiert cependant la mise en place d’un processus spécifique pour les cas où l’utilisateur demanderait à avoir accès, à corriger ou à supprimer ses données personnelles. Les équipes de Magento sont à votre service pour vous aider dans cette démarche.

Toutes les données personnelles stockées par les applications de Magento sont inventoriées. Elles sont donc facilement retrouvables pour les cas où un utilisateur souhaiterait intervenir dessus. Toute la documentation à ce sujet sera disponible sur le site de Magento à partir du 1er mai, et une équipe dédiée à vos questions concernant la réforme RGPD est à votre service. Magento travaille actuellement sur un outil interne permettant de simplifier ses demandes. Il se pourrait que cet outil soit ensuite rendu disponible si il y a une forte demande.

Il est à noter qu’avec le Magento Business Intelligence, il est possible de gérer ses processus de conformité soi-même directement via l’interface.

Chaque utilisateur doit être informé sur les données personnelles qui sont collectées et à quelles fins, et quelles sont les données qui peuvent être transmises à des tiers et dans quel but. La politique de confidentialité de Magento répond à cette nécessité pour toutes les informations collectées via des sites web Magento.

D’autre part, Magento Commerce permet de gérer dans les attributs clients, les consentements des utilisateurs à être la cible d’opérations de prospection directe.

Enfin, notons que même s’il n’y a aucune obligation à cela, Magento est certifié PCI (sécurité pour les cartes de paiement) et SOC (sécurité de l’information), et est en cours de dossier pour la certification du « Privacy Shield Program » (sécurité des données transférées à l’extérieur de l’UE).

Google Analytics

Pour être en conformité avec la réforme RGPD, Google Analytics se met également à jour.

Voici les points principaux:

  • Durée de conservation des données. Les paramètres de conservations des données sont plus précis qu’auparavant. Vous devrez ainsi vérifier pour chacune d’entre elles  sa durée et faire les modifications si nécessaire.
  • Suppression des données. Dès le 25 mai, vous pourrez utiliser un outil Google Analytics spécifique pour effacer toutes les données personnelles d’un utilisateur.
  • Protection des données. Grâce à toutes les règles concernant la collecte et l’utilisation des données, ces dernières sont sécurisées.
  • Consentement de l’utilisateur. Il vous faudra définir un processus pour être en conformité avec cette règle de consentement de l’utilisateur.
  • Conditions contractuelles. Pour les entreprises basées en Europe, votre contrat avec Google Analytics à d’ores et déjà été mis à jour concernant le rôle de Google vis à vis de la réforme RGPD. En revanche, les entreprises à l’extérieur de l’UE doivent aller dans les paramètres de leur compte pour accepter les nouvelles conditions du contrat.

Sources :

Le point sur la version 2.2 d’Akeneo

Pour répondre aux souhaits de ses clients et partenaires, Akeneo a crée une nouvelle version de son PIM, disponible aussi bien dans la Community Edition que dans la Enterprise Edition. Ses améliorations portent sur la productivité dans l’interface utilisateur du PIM, et sur l’efficacité dans la gestion de produits et produits avec variantes.

Amélioration du management produits avec variantes

  • On peut désormais filtrer les données exportées pour les attributs de modèles de produits de la même façon que pour les exports produits. Il y a un nouvel onglet « contenu » pour exporter les données par canal, paramètres régionaux, catégories, familles, etc. D’autres attributs peuvent également être ajoutés selon les besoins. Il y a également, dans l’onglet « paramètres globaux », une nouvelle option qui permet d’exporter des fichiers ou des images.
  • Les délais pour certaines actions sont réduits : par exemple, il est possible de supprimer une famille de variantes depuis les paramètres de produits avec variantes. Il est également possible de supprimer des produits ou des modèles de produit en backend, ce qui permet de continuer à travailler sur le PIM simultanément.
  • Dans la version entreprise, on peut gérer des règles sur les modèles de produit. Cette nouvelle fonctionnalité permet de définir des règles d’attribut au niveau du modèle de produit. On peut aussi créer un import spécifique de modèle de produits avec règles, ou encore retrouver des produits ou des modèles de produits via le module de recherche en fonction des ces règles.

Amélioration de la grille de proposition (version entreprise uniquement)

Grâce à la possibilité de filtrer les propositions par attributs, l’utilisation de la grille de proposition est plus simple. Les utilisateurs peuvent faire des recherches sur des labels de produits ou sur des étiquettes de produits dans la grille de proposition, et filtrer de façon à avoir un aperçu rapide des modifications de produits proposées.

Des améliorations sur la productivité attendues

  • Une nouvelle action de masse sur les valeurs d’attribut permet de gagner du temps. Ainsi, les nouvelles valeurs s’ajoutent au lieu de remplacer les valeurs existantes. Et il n’est plus nécessaire de devoir passer par les phases d’export / mise à jour / import des produits via un fichier Excel ou CSV.

  • Les utilisateurs peuvent définir et afficher leur fuseau horaire, et ainsi savoir quand ont été faites les dernières mises à jour.
  • L’emplacement du filtre de sélection du groupe d’attribut et du nom du groupe d’attribut actuel ont été modifiés de façon à être toujours visibles, même lorsque l’utilisateur descend dans la page.
  • Auparavant disponible avec une extension depuis le Marketplace, le bundle « règles de classification » sera dorénavant inclu dans la version entreprise de Akeneo 2.2. Ce bundle permet de supprimer ou déplacer des produits depuis n’importe où dans l’arborescence. C’est vraiment une amélioration notable pour l’archivage des produits. Il sera de plus possible de définir une règle permettant de n’archiver que le produit ou d’archiver le produit et ses dérivés.

Et si vous souhaitez en savoir plus sur Akeneo, n’hésitez pas à nous contacter.

Release Notes 2.2 (anglophone) : https://www.akeneo.com/wp-content/uploads/2018/03/Akeneo_Release_Notes_2.2_EN.pdf