[:fr]La parole est aux speakers : Mickaël Andrieu [:]

[:fr]Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Concevoir des applications PHP résilientes en 2019

Vous souhaitez créer une architecture en micro services, ou une API REST et un joli front en React parce que c'est à la mode. Mais que se passe-t-il quand l'un de vos micro services tombe, ou si un de vos appels à votre API met un peu trop de temps à répondre ?

En gros, comment gérez-vous vous la résilience de vos applications ?

En vingt minutes, je vous montrerai comment faire : notamment à l'aide d'une librairie PHP que j'ai créée et qui est intégrée dans le projet Open Source PrestaShop.

Vous comprendrez comment fonctionne un "Circuit Breaker", comment le configurer et comment le tester.

A la fin de cette session, vous aurez les clés pour ne plus craindre les problèmes de réseau. Et vous aurez acquis un nouveau réflexe: penser au pire, pour garantir le minimum vital à vos utilisateurs.

Katherine Johnson
24/10/2019
12:10-12:30

Entre résilience et surarchitecture, as-tu quelques pistes pour trouver un équilibre qui semble juste ?

On peut mettre en place la résilience à différents niveaux, que ce soit au sein du logiciel que l’on développe ou imaginer prendre en compte les risques au niveau de l’infrastructure. La bonne nouvelle pour le développeur/se, c’est que si les design patterns liés comme le Circuit Breaker sont difficiles à concevoir, leur utilisation est simple ! Mon unique conseil, c’est de commencer : une fois le réflexe pris chaque équipe saura évaluer le degré de criticité à appliquer sur une situation donnée et un bon architecte saura décider s’il faut régler ce problème au niveau du logiciel, de l’infrastructure, voire les deux ! À ce propos, ne ratez pas la conférence de Pascal Martin !

(suite…)

[:fr]La parole est aux speakers : Sylvain Combraque[:]

[:fr]Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Gérez le Traefik de vos services

Depuis quelques années nous ne développons plus des grosses applications monolithiques mais nous préférons les découper en plusieurs services afin de pouvoir déployer chaque service indépendamment les uns des autres et possiblement ne pas casser le coeur de l’application.

Nous voulons aussi déployer de nouveaux services et aussi rajouter des instances de services déjà déployés afin d'accroître la tenue de charge du serveur contenant notre application et cela à chaud, sans redémarrage du reverse-proxy. De plus nous aimerions avoir possiblement plusieurs applications totalement différentes, par exemple un serveur Teamspeak, un site web avec une API en PHP, un front en ReactJS, un petit serveur web en Go, et une instance d'un serveur web Tomcat.

Enfin nous voulons pouvoir déployer l'application très rapidement. Nous devrions avoir différents systèmes d'exploitation pour gérer tout cela, cependant grâce à Docker, à l'orchestration de Docker Swarm et la gestion des services grâce à Traefik nous allons le faire facilement.

Grace Hopper
25/10/2019
16:25-17:05

Tu vas nous présenter une conférence sur Traefik. Quelle est sa force par rapport à d’autres reverse proxy comme Nginx ou Varnish ?

Nginx et Varnish étaient très bien pour le déploiement d’applications monolithiques. Aujourd’hui c’est différent, on sépare notre application en plusieurs services indépendants ou non et on souhaite les déployer indépendamment les uns des autres, déployer plusieurs instances de ces services et retirer des instances sans avoir à redémarrer le reverse-proxy. Traefik permet de changer la configuration du mapping des services à chaud, ce qui est très pratique.

(suite…)

[:fr]La parole est aux speakers : Valentine Boineau[:]

[:fr]Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Symfony Checker is coming

Avez vous déjà entendu parlé de l'AST ? Peut-être pas... Le CFG et le SSA ? Encore moins ! J'aimerais vous présenter ces résultats d'algorithmes trop cools utilisés dans l'analyse de qualité de code avec lesquels j'ai eu l'occasion de travailler via un projet : le SymfonyChecker.

Grace Hopper
25/10/2019
12:10-12:30

Dans la description de ta conférence, tu mentionnes AST, CFG, SSA : as-tu des références à conseiller pour maîtriser ces concepts ?

C’est via mon tuteur, Titouan Galopin, que j’ai abordé ces différents sujets. J’avoue qu’à part farfouiller sur Internet je n’ai pas de réelles références en tête. Titouan a dû apprendre avec plein d’articles différents, je vais essayer d’en récolter quelques-uns d’ici le Forum PHP 2019 pour pouvoir les indiquer aux gens qui seront intéressés.

(suite…)

[:fr]La parole est aux speakers : Alex Rock[:]

[:fr]Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Neuroatypie et IT : quelques conseils

Un nouveau courant est né dans le monde de l'IT : recruter des neuro-atypiques, parce que leurs "capacités" seraient "meilleures".

Mais pourquoi ce mouvement est-il né, et la combinaison "neuro-atypie / IT" est-elle vertueuse ? Nous allons ensemble aborder ce sujet encore trop méconnu et le mettre en condition dans notre activité professionnelle.

Le déroulé de la conférence sera le suivant :

  • Description de ce qu'est l'autisme et ce que sont les neuro-atypies
  • Présentations des cas de recrutement d'autistes dans l'IT, qui les fait, et pourquoi
  • Des conseils pour améliorer les relations humaines avec les personnes neuro-atypiques
  • Vos questions, remarques et interrogations
Grace Hopper
24/10/2019
16:25-17:05

Tu avais présenté ce talk lors de l’AFUP Day 2019 à Lyon, en format 20 minutes. Tu le présenteras cette fois-ci en format 40 minutes : comment comptes-tu enrichir ce sujet ?

Alors en 20 minutes j’avais tenté d’être le plus concis possible, et ça m’a finalement mené à faire une phase de questions/réponses assez longue… Là, je souhaite enrichir le sujet avec bien plus d’explications sur deux neuro-atypies particulières qui sont au centre de ma conférence. Et, une fois de plus, consacrer du temps à la fin aux questions/réponses.

(suite…)

[:fr]La parole est aux speakers : Julien Pauli[:]

[:fr]Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

What's new with OPCache ?

OPCache, le cache d'OPCodes par défaut de PHP, évolue aussi vite que PHP lui-même. Après quelques rappels sur ce qu'est OPCache, nous passerons en revue ses fonctionnalités actuelles: cache, pré-cache, optimiseur, modèles de mémoire partagée, etc...

Nous verrons les différentes passes d'optimisation qu'OPCache opère sur les scripts, et nous rappelerons les différents paramètres de configuration d'OPCache, et comment les optimiser pour différents projets en production.

Katherine Johnson
24/10/2019
15:15-15:55

Ta présentation portera sur opcache. Quel niveau / prérequis sera nécessaire pour y assister ?

Il faut connaitre PHP, et idéalement savoir comment les langages de haut niveau sont fabriqués.

(suite…)

[:fr]La parole est aux speakers : Cindy Liwenge[:]

[:fr]Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Accueillir des junior·e·s en reconversion : comment éviter l'échec

Avec la multiplication des formations accélérées, on observe depuis quelques années une augmentation du nombre de développeur·euse·s en reconversion. Ces profils présentent une diversité importante et des compétences professionnelles riches. Toutefois, malgré l'apparente bienveillance de notre milieu, accueillir des junior·e·s en reconversion n'est pas aisé. Les premières expériences de ces développeur·euse·s sont déterminantes et, parfois, découragent certain·e·s, jusqu'à l'abandon. Comment réussir l'intégration des junior·e·s en reconversion ? Comment prendre en compte et valoriser leurs différences ? Et surtout : comment les retenir ?

Lors de ce talk, je partagerai mes expériences et les histoires (vraies) de succès et d'échecs. Grâce à ces REX et en nourrissant mon discours de références, je donnerai des pistes pour permettre aux équipes en place de préparer le terrain et de passer des paroles aux actes.

Grace Hopper
24/10/2019
12:10-12:30

Ta conférence porte sur le sujet du recrutement de profils en reconversion : qu’est-ce qui t’a poussée à soumettre ce sujet ?

Je suis moi-même une développeuse en reconversion. Ma propre expérience m’a inspirée. J’ai eu des wins comme des difficultés lorsque j’ai entamé ma carrière de développeuse. En échangeant avec d’autres personnes en reconversion, je me suis rendue compte que les formations accélérées ont pris notre milieu de vitesse. Je souhaite décomplexer les équipes tech, les encourager à choisir des profils comme le mien et aider les personnes en reconversion à trouver leur place.

(suite…)

[:fr]La parole est aux speakers : Frédéric Bouchery[:]

[:fr]Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

PHP Pragmatic Development

On ne va pas se mentir, DDD c'est bien, mais pas franchement facile à appréhender quand on débute. Et c'est bien là tout le problème : il n'y aurait que des développeurs seniors et des architectes sur nos projets, tout irait pour le mieux. Quand on parle d'expérience développeur (DX), il est donc nécessaire de prendre en considération ces jeunes inexpérimentés qui peuvent vite se perdre et enrayer notre belle machinerie.

Héritage, traits, injection de dépendances, agrégation, programmation évènementielle, programmation orienté aspect, etc. faisons le point sur les architectures actuelles en PHP et retrouvons un peu de pragmatisme pour le bien de nos projets et de notre santé mentale.

Katherine Johnson
24/10/2019
09:30-10:10

C’est une conférence que tu as déjà donnée à l’AFUP Day 2019 : quels retours as-tu eu de cette première prestation et quelles évolutions as-tu prévues pour le Forum PHP 2019 ?

Je n’ai pas eu l’occasion de beaucoup échanger avec les personnes présentes, car j’étais le dernier à passer et beaucoup sont partis rapidement. Les seuls retours que j’ai pu avoir étaient sur la forme ludique de ma prestation, et quelques adhésions par des personnes déjà convaincues par l’approche réfléchie du développement. Mais rétrospectivement, j’ai décidé de modifier en grande partie le contenu et la forme de cette présentation. J’ai introduit de nouvelles idées et je ne commence plus par la petite scène où j’ai fait croire à l’auditoire que j’ai changé le sujet de ma conférence. De nouvelles idées viennent renforcer sensiblement mon discours, et me semblent plus claires. Bref, c’est une nouvelle conférence.

(suite…)

[:fr]La parole est aux speakers : Aleth Gueguen (AFUP Day 2019 Rennes)[:]

[:fr]Jusqu’à l’AFUP Day 2019 Rennes, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Un-e professionel-le du numérique doit-il-elle avoir une éthique ?

Quand on écrit du code, est-ce qu'on a toujours conscience que cela peut avoir un impact sur la vie des gens ? Est-ce qu'on s'assure toujours de ne pas faire de mal (même si on veut sauver le monde) ? Un algorithme dit-il toujours la vérité ou est-ce que c'est seulement l'expression de notre opinion ? Je pense qu'il est important qu'on commence à se poser ces questions. Dans ce talk, je vous montrerai des exemples et des outils –comme le “Privacy" by Design Framework– pour nous aider à identifier les situations à risque et y répondre.

La Fabrique
17/05/2019
16:20-17:00

Dans certains pays (par exemple au Québec), il existe un code d’éthique pour les ingénieurs. Est-ce que ça te semble un exemple à suivre ?

Il y a effectivement au Québec une charte, liée à l’Ordre des Ingénieurs du Québec. Il est obligatoire de faire partie de cet ordre pour pouvoir exercer… Sauf pour les ingénieurs en informatique.
Pour remettre les choses en contexte, le corps des ingénieurs a été créé à l’origine pour construire des ponts, des barrages, des centrales nucléaires, des avions de guerre… toutes constructions complexes qui demandent une infrastructure énorme et sont faites dans des cadres très réglementés. Ainsi, l’éthique existe plus ou moins à travers la réglementation.
En France, on n’a pas cette notion du Corps des Ingénieurs qui devrait respecter une éthique, comme l’Ordre des médecins ou celui des avocats. C’est assez lié à l’Histoire, le corps des ingénieurs ayant été créé notamment pour être le bras « armé » du gouvernement (sans que cela les empêche de construire des ponts et des barrages, bien sûr).
De toute façon, on se rend bien compte que les constructions complexes ne peuvent pas se faire seul. Ce travail en équipe, ainsi que les besoins d’infrastructure évoqués précédemment, posent une « barrière » de protection éthique à l’entrée. Cette barrière n’existe pas dans l’informatique : pour écrire du software, il n’y a besoin que d’un PC (et à la limite d’une table et une chaise). Aujourd’hui, on se rend compte que le software peut avoir une influence terrible sur la vie des gens, avec Facebook par exemple.
Donc : est-ce qu’il faudrait instaurer un code d’éthique ? En France, le réflexe est souvent qu’il faut légiférer.
Bien qu’il ne soit plus possible aujourd’hui de créer un ordre (comme l’ordre des médecins ou des avocats), on commence tous à prendre conscience qu’il faut une éthique. Mais faut-il que ce soit réglementé ? C’est une autre question.
L’exemple du Québec n’est donc pas applicable à la France, et ce n’est pas forcément un exemple à suivre.

(suite…)

[:fr]La parole est aux speakers : Yvonnick Frin et Benjamin Cavy (AFUP Day 2019 Rennes)[:]

[:fr]Jusqu’à l’AFUP Day 2019 Rennes, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Laravel et Vue : une stack simple et efficace pour le WEB

Un développeur heureux produit du meilleur code. Laravel et Vue ont bien compris ce concept et nous proposent des APIs élégantes, expressives et faciles à prendre en main. Elles nous permettent de construire des applications web en un rien de temps.

Laravel est un framework implanté depuis 5 ans dans l’écosystème PHP, façonné de manière à pouvoir construire des APIs REST rapidement. Il embarque aussi tout un ensemble d’outils pour faciliter les tâches quotidiennes du développeur.

Vue js est un framework léger et performant, orienté composant qui gagne rapidement en popularité dans l’écosystème Javascript. Les nombreuses fonctionnalités présentes “out of the box” dans le framework permettent de se concentrer sur ce que l’on veut réaliser plutôt que sur la manière de le réaliser.

Au travers du live coding d’une petite application permettant d’enregistrer vos gifs favoris, nous allons vous présenter la synergie qui existe entre ces deux frameworks.

La Fabrique
17/05/2019
14:00-14:40

Malgré toutes les louanges qu’on entend sur Laravel et Vue, on a l’impression qu’ils sont peu utilisés en France. Comment l’expliquez-vous ?

Y: Cela peut s’expliquer par le fait que Symfony était déjà présent bien avant Laravel et a su s’améliorer au fur et à mesure pour garder leurs utilisateurs. De plus Symfony a été réalisé par un français et nous sommes chauvins c’est bien connu !

B: En ce qui concerne Vue.js il est arrivé un peu après les autres (angular et react) donc beaucoup de choix techniques avaient sans doute déjà été faits, et je pense qu’en France on aime bien la “stack unique” dans une entreprise.

(suite…)

[:fr]La parole est aux speakers : Kévin Dunglas (AFUP Day 2019 Lille)[:]

[:fr]Jusqu’à l’AFUP Day 2019 Lyon, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Symfony Panther : tester vos applis web avec de vrais navigateurs n’a jamais été aussi simple

Que ce soit quelques lignes de jQuery ou des Progressive Web Apps React/Vue.js/Angular complètes, toutes les applications web modernes contiennent du JavaScript. L’écosystème PHP et les frameworks tels que Symfony ou Zend proposent des outils pour réaliser des tests fonctionnels et de bout en bout (E2E), malheureusement ils se contentent d’effectuer des requêtes HTTP (Guzzle, Symfony WebTestCase, Zend Test PHPUnit) et des assertions sur le HTML généré côté serveur (BrowserKit). Ils ne sont pas capables d’exécuter le code JavaScript, de générer du HTML côté client, de tester si un élément est visible ou non, si une boîte de dialogue (alert, prompt) est bien affichée au clic… De plus, ces outils de test ne permettent pas de détecter les éventuels bugs touchant des navigateurs spécifiques.

Panther est une toute nouvelle bibliothèque qui permet - grâce au standard WebDriver du W3C - de piloter tous les navigateurs modernes (Chrome, Firefox, Safari, Edge…) directement en PHP pour réaliser des tests fonctionnels et E2E, ou du web scraping. Panther implémente la très pratique API publique du composant BrowserKit de Symfony, ce qui lui permet d’exécuter les tests écrits avec le composant de test fonctionnel de Symfony et les scripts utilisant la bibliothèque de web scraping Goutte sans avoir à les modifier ! De plus, il implémente l’API de PHP WebDriver, et donne accès à toutes les fonctionnalités avancées du protocole du même nom, parmi lesquelles la possibilité d’effectuer des captures d’écran ou exécuter des scripts JavaScript personnalisés dans le contexte d’exécution de la page.

Panther s’installe à l’aide d’un simple « composer require » et tout ce dont il a besoin pour fonctionner c’est un navigateur (pas de Selenium ou autre). Il détecte la structure de l’application, lance un serveur web pour la servir, trouve l’installation locale de Chrome ou de Firefox et les démarre en mode « headless » sans qu’aucune configuration ne soit nécessaire ! Il s’intègre également avec les solutions d’intégration continues populaires tel que Travis et fonctionne avec Docker. Encore mieux, il est compatible avec les services SauceLabs et BrowserStack pour tester votre application sur toutes les plateformes mobiles et bureaux possibles et imaginables.

Lors de cette présentation, vous découvrirez l’ensemble des capacités du félin et son fonctionnement interne !

Auberge Stéphane Hessel
17/05/2019
15:30-16:10

Tu as créé Symfony Panther pour tester les applications web et tu nous en parleras lors de l’AFUP Day 2019 Lille : quelle est la spécificité de ce composant vis-à-vis d’autres outils de testing ?

Panther est un outil de test de bout en bout (end-2-end) dont les deux objectifs principaux le différencient fortement des autres outils dédiés à l’écriture de ce type de tests :

– il s’intègre parfaitement avec les outils de tests unitaires et fonctionnels déjà fournis avec Symfony
– il est très facile à mettre en oeuvre : pas besoin d’installer Selenium, de configurer un serveur web, de préparer une base de données de test… tout est automatique.

Concrètement, Panther implémente l’API publique de BrowserKit. C’est aussi celle que respectent l’outil de test fonctionnel de Symfony (WebTestCase) et Goutte, la bibliothèque de web scraping. Il est donc très facile de porter des tests existants utilisant l’un de ces outils : il n’y a qu’une seule API à apprendre pour les maîtriser tous, là où d’autres outils de tests E2E vous demandent d’apprendre une nouvelle API (CodeCeption, Dusk) voire un autre langage de programmation (Nightwatch, Cypress, …).

La différence avec WebTestCase et Goutte, c’est que Panther va lancer un vrai navigateur web pour exécuter les scénarios de navigation. Panther va exécuter le code JavaScript et effectuer le rendu CSS. Il devient donc possible de tester le code front, et donc de s’assurer que la page sera totalement fonctionnelle lorsque l’utilisateur s’y rendra (pas d’erreur JS bloquante, pas d’éléments HTML importants masqués en CSS…).

Si vous utilisez React, Vue.js ou même jQuery pour réaliser la couche de présentation de votre projet, Panther vous permet désormais de la tester aussi naturellement que si vous aviez utilisé Twig. Si vous utilisez les fonctionnalités temps réel apportées par Mercure (qui dépendent de JavaScript côté client), Panther vous permet également de les tester.

De plus, Panther fournit des fonctionnalités supplémentaires telles que la possibilité de simuler des clics de souris sur des éléments précis (pratique pour tester des applications utilisant canvas ou WebGL), de prendre des captures d’écran, ou d’exécuter du code JS dans le contexte d’exécution du navigateur.

Panther s’appuie sur le protocole WebDriver, standardisé par le W3C, et sur la bibliothèque PHP WebDriver de Facebook (à laquelle j’ai beaucoup contribué au cours du développement de ce nouvel outil). Il peut donc manipuler n’importe quel navigateur moderne (Chrome par défaut, mais aussi Firefox, Edge…), est compatible avec Selenium et avec les services de “browser testing” en SaaS (SauceLabs, BrowserStack…).

Durant ma présentation, je vous présenterai en détail comment ça marche ! Notez d’ailleurs que – bien qu’il fasse partie de ce projet – Panther n’a aucune dépendance à Symfony, il peut fonctionner avec n’importe quel projet PHP (et même non-PHP).
(suite…)