Keynote d'ouverture

Katherine Johnson 21/10/2021 09:00-09:15 - Niveau : N/A - Français

Bienvenue au Forum PHP 2021, premier événement de l'AFUP en présentiel en 2 ans !

Vers la sobriété numérique

Katherine Johnson 21/10/2021 09:30-10:10 - Niveau : N/A - Français

Les activités numériques représentent 4% des émissions de gaz à effet de serre au niveau mondial. Qui est responsable de ces émissions ? Pour la plupart, vous et moi - les développeurs. C'est à nous de mesurer et réduire les émissions de CO2 de nos sites webs et applications mobiles.

Sauf que c'est super dur et que personne ne sait vraiment comment faire.

Cette conférence vous aidera à mieux comprendre les enjeux de la sobriété numérique, et à vous donner des conseils pratiques pour embarquer dans cette nouvelle discipline, qui devient partie intégrante de notre métier.

ah, et ce n'est pas une de ces conférences sur le changement climatique qui vous met le moral dans les chaussettes. C'est plutôt l'inverse - vous sortirez avec des envies plein la tête et l'envie de vous y coller dès que possible.

N'ayez pas peur de refactoriser

Grace Hopper 21/10/2021 09:30-10:10 - Niveau : Grand public - Français

Refactoriser est une composante majeure de notre travail quotidien, et ce, même si nous faisons souvent abstraction de cette partie car nous pensons qu'elle est difficile, coûteuse et au final, peu impactante / importante. Malheureusement, cette approche mène souvent à des problèmes tardifs quand une librairie évolue, qu'une API est dépréciée ou que la CI échoue.

Dans ce talk, nous verrons comment intégrer toute une série d'outil dans notre travail quotidien et notre CI afin d'améliorer nos applications et se préparer à toute évolution, nous verrons aussi comment configurer ces outils pour obtenir des retours rapides et intégrer ces derniers via de nouvelles fonctionnalités ou correctifs.

Via une panoplie contenant Rector, Psalm, PHPStan, Infection et bien d'autres, nous avons enfin ce qu'il faut pour délivrer de la valeur plus souvent, de manière plus sécurisée et sans compromettre les performances ainsi que la qualité.

Il est enfin temps d'arrêter d'avoir peur de refactoriser, d'apprécier ces petits moments d'amélioration et de revenir enfin à la livraison de valeur sans craintes.

Symfony 6 : le choix de l'innovation et de la performance

Katherine Johnson 21/10/2021 10:15-10:55 - Niveau : N/A - Français

Lors de cette conférence, je vous invite à découvrir pourquoi Symfony est choisi aussi bien par des start-ups que des grands groupes pour créer leurs webapps.

Avec près de 3000 contributeurs en 10 ans, 185 composants et 8Md de téléchargements cumulés, Symfony est un projet open-source parmi les plus actifs et les plus utilisés. La clef de son succès : un capacité à se réinventer tout en continuité encadrée par une méthodologie de développement bien rodée, dopée aux idées apportées par une communauté de passionnés et de professionnels.

Comme annoncé, Symfony 6 sera publié fin novembre 2021. Comme prévu, les projets existants pourront l'adopter avec peu d'effort. Lors de cette conférence, je vous propose de passer en revue les nouvelles fonctionnalités de cette version, mais également de nous attarder sur la façon dont le projet est structuré, et de voir en quoi cela en fait un partenaire fiable dans la durée.

Faites-le en PHP !

Grace Hopper 21/10/2021 10:15-10:55 - Niveau : Intermédiaire - Français

Au fil des années et des versions, PHP est devenu un langage performant, complet et robuste. En prenant en compte également l’écosystème, pourquoi ne pas envisager d’utiliser PHP pour des applications qui lui semblaient interdites ?

Qui sait écrire des boucles en Bash ? Comment gère-t-on les erreurs des crons ? Comment faire de l’héritage en Python ? Comment écrire des tests unitaires pour Javascript ? etc.

Et si nous arrêtions de nous poser ces questions et que nous utilisions tout ce que propose le langage que nous connaissons ?

Nous pointerons les bénéfices d’utiliser PHP par des devs PHP (maintenabilité, rapidité, partage de connaissance, performance, robustesse…) et nous explorerons des exemples d’utilisation qui semblaient autrefois non standards (scripts, serveurs…).

Transformer une application RAD vers du DDD, pas à pas.

Katherine Johnson 21/10/2021 11:25-12:05 - Niveau : Intermédiaire - Français

Comment migrer une application peu testée, développée avec des outils RAD, pour intégrer de nombreuses évolutions de règles métiers et par la même occasion la rendre plus compréhensible, en ayant une démarche orientée Domain Driven Design ? La réponse n’est pas si évidente.

On peut bien sûr opter pour une réécriture complète du système mais ce n’est pas sans problème. Comment continuer à délivrer des fonctionnalités ? Comment s’assurer que le nouveau système aura bien le même comportement que l’ancien ? Et surtout, combien de temps cela va t’il prendre ?

Une autre piste est de refactorer le code petit à petit, d’introduire les nouveaux concepts lorsqu’un besoin se fait sentir, sans avoir besoin de bloquer tout autre développement. C’est ce que nous avons choisi de faire pour migrer un backoffice construit autour du bundle Symfony EasyAdmin.

Dans ce retour d’expérience nous verrons comment nous avons commencé à mieux connaître les règles métiers en lisant le code et en animant des Event Storming. Nous parlerons de la manière dont nous avons réussi à créer un filet de sécurité avec des tests en nous laissant guider par le code coverage, ou encore de comment nous avons introduit graduellement les nouveaux concepts métiers à l’aide des interfaces avant de modifier la base de données. Tout au long de la conférence nous présenterons les difficultés rencontrées et ce que nous avons mis en œuvre pour les déjouer.

Advanced Git Magic

Grace Hopper 21/10/2021 11:25-12:05 - Niveau : N/A - Anglais

You've learned about atomic commits, rebasing, you're keeping your history clean... but now what? When does all the good stuff happen? When are you awarded for your good Git behavior? Join me in this talk to learn about some advanced Git tricks that has saved my proverbial butt more than once, and I'm sure it will do the same for you! Go anywhere in your history, fix rebase screw-ups you thought were permanent, and find out about the magic of combining bisect with regression tests to fix surprise bugs ??lightning?? fast.

Kairoi, et PHP se réconcilie avec les tâches planifiées

Katherine Johnson 21/10/2021 12:10-12:30 - Niveau : Intermédiaire - Français

Kairoi est un serveur qui permet aux applications web de planifier très facilement des tâches à exécuter dans le futur. C'est un remplaçant moderne de CRON, qui dispose de plusieurs caractéristiques qui vont particulièrement intéresser les développeurs PHP : contrairement à CRON, Kairoi a été conçu dès l'origine pour être configurable à la volée, précis au millième de seconde et scalable.

Le serveur, actuellement en phase de développement, est très simple à utiliser avec notre langage préféré, grâce à une bibliothèque client PHP développée en parallèle du serveur.

Kairoi, contrairement à CRON, tire parti au maximum des architectures distribuées. Il supporte des myriades de clients en parallèle en traitant les données de manière atomique. Il route dynamiquement les tâches à exécuter au moyen de règles configurables et les distribue, grâce aux processeurs, à tous vos workers.

Au cours de cette présentation, nous découvrirons ce nouvel outil Open Source et son intégration PHP.

Est ce que vous faites de la biologie sans le savoir?

Grace Hopper 21/10/2021 12:10-12:30 - Niveau : Grand public - Français

Apres cette année particulière, tout le monde est devenu un expert en medecine et en epidemiologie, mais savez vous que le code informatique peut etre soumis aux mêmes phénomènes que le code génétique? Comme le code génétique, le code informatique, surtout le PHP, peut "muter" de manière volontaire ou non sous les contraintes de production. Assiste-t'on emerveillé•e à l'emergence de nouvelles espèces qui échappent aux tests unitaires? Nous parlerons aussi de l'origine de la programmation orientée objet qui voit les classes comme des cellules biologiques, des algorithmes génétiques et bien sûr du jeu de la vie.

Plongée dans l'écosystème Laravel

Katherine Johnson 21/10/2021 14:25-15:05 - Niveau : Grand public - Français

Après une douzaine d'années à faire du développement backend sur Symfony, je me retrouve aujourd'hui directeur technique d'une agence qui travaille exclusivement sur Laravel, quel choc !

En France quand on parle de Laravel, le débat tourne vite au troll (parce que Symfony = cocorico, donc Laravel forcément = satan). Mais loin des clichés Laravel est un framework étonnant qui, en plus d'être très accessible, se démarque par un écosystème varié et complet, qui permet d'économiser le développement de fonctionnalités génériques (panneau d'admin, CRUD, gestion des abonnements, authentification, etc.).

L'écosystème Laravel est composé de projets open-source, mais aussi de projets SaaS complets qui peuvent vraiment changer la donne (je suis par exemple tombé amoureux de Laravel Forge), mais est-ce que la France est prête pour le business à l'américaine ?

Guide pratique de lutte contre le "syndrome de l'imposteur"

Grace Hopper 21/10/2021 14:25-15:05 - Niveau : Grand public - Français

Il paraît que les devs sont particulièrement touché-e-s par ce fameux syndrome, mais concrètement, on fait quoi pour s'en débarrasser ?

Je vous entraîne avec moi dans ce guide pratique, à la fois retour d'expérience et "WIP", car c'est sur la durée que tout se joue. Bien sûr je m'appuierai sur d'autres excellentes ressources sur le sujet, mais je vous parlerai surtout... de ma pomme !

Que faire quand on découvre une nouvelle mission ou une nouvelle entreprise et qu'on a l'impression que tout le monde est super balèze... sauf soi ? Quand on débute, qu'on vient de se reconvertir ? Quand on a appris sur le tas ou avec une formation courte ? Comment faire de la veille efficace, comment progresser ? Et comment exprimer à son équipe ses doutes pour obtenir de l'aide ? Et quand on est en télétravail complet, super loin des collègues, on fait comment ? Ça en fait des questions hein ? Vous voulez que j'en pose encore une ou deux ou ça va ?

Bref, si vous aussi vous voulez progresser dans votre métier et vous sentir à la hauteur, et que vous n'avez pas forcément la possibilité ou l'envie de passer soirs et week-end à coder... Cette conf est pour vous !

Du Domain-Driven-Design avec API Platform

Katherine Johnson 21/10/2021 15:10-15:50 - Niveau : Intermédiaire - Français

Chez Les-Tilleuls.coop, on aime bien se servir d’API Platform. Principalement parce qu’il répond à beaucoup de questions en matière de conception d’API web, mais également pour sa simplicité d’usage.

Cette simplicité a cependant un coût qui se fait généralement sentir lorsqu’on a besoin de sortir du cadre.

Le fait est que chez Les-Tilleuls.coop on aime aussi beaucoup travailler sur des applications à fortes contraintes métier, et encore plus sortir du cadre. Et quand ça s’y prête, on le fait en s’appuyant sur les principes du DDD.

Architecture hexagonale orientée message, logique métier découplée de l’infrastructure, … Tant de préceptes qui deviennent des prérequis lorsqu’il s’agit de mettre le métier au centre de nos applications tout en assurant la bonne maintenabilité de celles-ci.

Mais est-ce que tout cela n’irait pas à l’encontre de ce que propose un framework orienté RAD tel qu’API Platform ?

Peut-on réellement découpler notre logique métier de ce framework via les techniques liées au DDD sans pour autant lui faire perdre de son intêret ?

La réponse est oui, et durant ce talk nous allons vous montrer comment.

Ne jetez plus mon code !

Grace Hopper 21/10/2021 15:10-15:50 - Niveau : Intermédiaire - Français

Quoi de plus frustrant que de découvrir au moment de la mise en production que le développement ne correspond pas au besoin ? Depuis 16 ans, nous expérimentons et nous nous adaptons au contexte de nos clients pour faciliter au mieux la phase de conception et de spécification fonctionnelle, pour guider le développement et optimiser la phase de recette.

Il n'y a pas de solution miracle, mais nous vous présenterons nos succès et nos échecs sur notre chemin de l'optimisation de production de valeur pour les utilisateurs de nos applications.

Accessibilité & SEO : et si on relevait le niveau ?

Katherine Johnson 21/10/2021 16:20-17:00 - Niveau : Grand public - Français

Nous vous proposons, avec nos deux expériences conjointes de développeuse web et d'intégratrice experte en accessibilité, de faire le point sur les bonnes pratiques d’accessibilité et de SEO à appliquer sur votre page en cours de développement. Pour vous accompagner dans cette démarche, nous vous proposons un outil intégré au profiler Symfony, Accesseo, qui vous aidera à rendre vos interfaces plus accessibles, et donc à rendre le monde plus beau.

En tant que développeuses et développeurs web, nous créons des interfaces qui ont vocation à être vues dans d'innombrables situations humaines et/ou matérielles. Mener des stratégies d’accessibilité et de SEO, c’est un métier. Cependant, au cours du développement, nous pouvons déjà améliorer nos interfaces en étant sensibles aux bonnes pratiques d’accessibilité. Certaines ne nécessitent parfois que peu d'efforts et de temps, et peuvent grandement améliorer l'expérience de navigation des humains (et des robots d’indexation !).

Agilité "at scale"

Grace Hopper 21/10/2021 16:20-17:00 - Niveau : Grand public - Français

Mon expérience personnelle de l'agilité "à grande échelle"

Les bonnes idées, les moins bonnes, pour appliquer (ou pas) un modele organisationnel pouvant permettre l'agilité au dessus d'une architecture SI pas forcément construite pour cela.

Comment redéfinir les responbilités entre de nouvelles équipes produits quand les règles métiers existantes sont dispersés sur des briques techniques différentes (base de données relationelles, moniteur transactionnel, bus d'entreprise, applications...)?

Y aller pas à pas, intégrer de fait qu'organisation et architecture SI s'influencent réciproquement, qu'un mauvais choix d'organisation finira par se répercuter sur la technique, et inversement. Et surtout être suffisament agile pour se permettre de pas l'être de façon systématique et de ne pas appliquer une méthode de façon dogmatique.

Mini conférences AFUP

Katherine Johnson 21/10/2021 17:05-17:30 - Niveau : N/A - Français

En fin d’après-midi de notre première journée de conférences, nous vous proposons une série de mini talks consacrées à l’AFUP et aux coulisses de ses pôles les plus actifs. Cécile Helary Hamerel convie Adrien Gallou, Cédric Mourizard et un représentant d'antenne, tous les trois membres actifs des pôles Mentorat, Baromètre (dont l’enquête 2021 vient de démarrer) et Antennes pour discuter et échanger autour de ces groupes de travaux, agissant souvent dans l’ombre de l’AFUP tout au long de l’année mais sans qui la communauté ne serait pas autant riche d’activités aujourd’hui.

Sous-représentation des femmes en sciences et en informatique : comment y remédier ?

Katherine Johnson 21/10/2021 17:35-18:05 - Niveau : N/A - Français

Comment se fait-il que les femmes ne représentent aujourd'hui que 15 % des ingénieurs en informatique alors qu'elles étaient près de 50% dans les années 1980 ? Après avoir dressé un état des lieux sur la sous-représentation des femmes en informatique et en sciences plus généralement, je reviendrai sur les causes de cette sous-représentation, et notamment sur le rôle joué par le poids des normes et des stéréotypes. Dans la dernière partie de la présentation, je proposerai différents leviers d'action visant à renverser la tendance et à attirer plus de femmes dans ces filières.

Des tests unitaires pour nos règles de conception

Katherine Johnson 22/10/2021 09:30-10:10 - Niveau : Intermédiaire - Français

Pour qu’une équipe fonctionne bien, on applique des conventions de codage, mais aussi des conventions d’architecture et de conception. Seulement, autant on peut valider les conventions de codage avec des outils comme PHP-CS-Fixer, vérifier que notre code fonctionne dynamiquement avec PHPUnit ou détecter des erreurs avec des analyseurs statiques, mais comment vérifier que les règles de conception de l’équipe sont respectées ? Au sein de l’équipe Klaxoon, nous développons une solution qui complète le code review en testant automatiquement les règles de conception de l’équipe. Explications et démonstration avant une libération prochaine du code.

Synchroniser ses applications plus rapidement avec du low-code

Grace Hopper 22/10/2021 09:30-10:10 - Niveau : Grand public - Français

Avec de plus en plus de services dans le cloud et toujours autant de legacy, il est souvent nécessaire de connecter nos applications à des services en ligne, comme la base de données articles vers le e-commerce ou une base de données clients depuis une CRM.

Et c’est là que nos soucis commencent : entre API exotiques, des fichiers plats, ainsi que le manque d’outillages dans le monde de PHP, le développeur a le sentiment d’être Tom Hanks sur son île, seul au monde.

Comment se construire des outils pour s'en sortir ? Quelles stratégies mettre en place pour ne pas y laisser trop de plumes ?

Nous allons aborder l'utilisation d'un ETL en PHP.

L’architecture ESA : le futur des API web

Katherine Johnson 22/10/2021 10:15-10:55 - Niveau : Confirmé - Français

Cela fait déjà plus de 10 ans que je recherche les meilleures approches possibles pour concevoir des API web, que j’étudie méticuleusement les différents styles architecturaux existants et émergeants, et que je teste la quasi totalité des outils dédiés aux API web.

Fort de l’expérience acquise en développant de nombreuses API web “à la main”, j’ai décidé de créer un framework dont but est de simplifier cette tâche et de faire en sorte que les API qui l’utilisent respectent automatiquement les meilleures pratiques du domaine. Ce projet démarré pendant l’hiver 2014 est devenu le framework API Platform, l’un des outils les plus populaires pour créer des API. Un outil reconnu par l’ensemble de l’industrie comme l’un des plus simple à utiliser et en même temps comme l’un des plus avancés, si ce n’est le plus avancé, en matière de respect des standards (HATEOAS, RDF, Hydra, GraphQL…) comme des bonnes pratiques.

Le développement d’API Platform m’a permis de découvrir un nombre de cas d’usage toujours plus important et d’étudier de nouvelles pistes pour améliorer la performance, la fiabilité, la sécurité et l’évolutivité des API web.

Et bien entendu, grâce aux retours, challenges et suggestions de la communauté, de nouvelles idées me sont venues. Parmi elles, la possibilité d’utiliser HTTP pour permettre aux clients de s’abonner aux changements effectués sur les resources et de les recevoir en temps réel. C’est devenu le protocole Mercure. Plus tard, celle d’utiliser les nouvelles capacités des protocoles HTTP/2 et HTTP/3 (et en particulier le multiplexing) couplé à la possibilité de permettre au client d’indiquer au serveur de quelles données il aura besoin, afin d’améliorer la performance des API web et de permettre une mise en cache bien meilleure qu’avec les approches traditionnelles. C’est le protocole Vulcain.

Aujourd’hui, je souhaite vous proposer une nouvelle architecture pour les API web, basée sur ces années de travail de R&D ainsi que sur l’état de l’art de l’écosystème frontend (et oui !). Cette proposition, c’est l’architecture ESA.

ESA est une architecture novatrice, rompant avec les approches traditionnelles, qui permet de créer des API plus fiables, plus performantes et moins consommatrices en resources. Cette architecture renoue avec les grands principes REST/HATEOAS tout en tirant partie au maximum des nouvelles capacités fournies par la plateforme web. ESA promeut une approche mixte, mêlant synchrone et asynchrone, qui permet à la fois une très grande simplicité de développement et d’utilisation, des performances rarement atteintes, et la possibilité pour les clients d’avoir toujours des données à jour par rapport à celles dont dispose l’API. Finalement, ESA propose de s’appuyer sur les standards existants pour exposer une documentation “in-band” permettant la création de clients génériques, capables de découvrir les capacités de l’API au runtime.

Venez découvrir ESA, l’architecture qui va changer vos API web !

Sylius sans e-commerce, pourquoi et comment ?

Grace Hopper 22/10/2021 10:15-10:55 - Niveau : Intermédiaire - Français

Après plusieurs années d'utilisation de Sylius pour du e-commerce, cette solution fait ses preuves et continue son bout de chemin à la vitesse d'une fusée ! Son utilité en dehors de ce cadre peut surprendre mais est tout à fait justifiée et le but est de vous le montrer. Après un bref tour d'horizon sur comment "retirer" la partie e-commerce de Sylius, nous verrons comment il peut vous être utile pour vos projets quels qu'ils soient.

À la recherche des licornes : les limites du théorème CAP

Katherine Johnson 22/10/2021 11:25-12:05 - Niveau : Grand public - Français

Si vous êtes architecte de base de données, vous vous êtes certainement déjà retrouvé dans la situation suivante : vous demandez quels sont les objectifs de DMIA ou PDMA et on vous répond qu'aucune perte de données, pas plus qu'une perte de disponibilité n'est acceptable. Si vous rencontrez des personne qui connaissent le théorème de Brewer (ou CAP), on pourra vous répondre qu'une disponibilité de 99,999% pourra être acceptable, tout en soulignant que la demande est en-dessous du 100%, impossible à obtenir. Durant cette session, nous explorerons le théorème de Brewer, ce qu'il signifie pour les SGBDR et quels compromis doivent être faits. Ensuite, nous étudierons différentes architectures, leurs cas d'usage et comment les classifier en terme de perte de données et de disponibilité.

Faites confiance aux développeurs.euses de votre équipe : voyez plus loin que les fonctionnalités

Grace Hopper 22/10/2021 11:25-12:05 - Niveau : N/A - Français

Deadlines, besoins produit, pression forte et fonctionnalités à livrer : nos projets ont besoin de nous ! L'amélioration du quotidien se perd dans un second plan, alors qu’elle a un impact majeur sur l'augmentation de notre productivité et la qualité et maintenabilité de notre code.

Constatant que nous voulions augmenter notre confort de travail, nous avons, depuis plus d'un an, mis en place des réunions techniques bi-hebdomadaires pour prendre le temps de discuter de notre plateforme et nos outils, au-delà des fonctionnalités. Chaque membre de l'équipe contribue ainsi à améliorer son expérience de travail et notre produit.

À travers notre vécu, nos erreurs et des exemples techniques concrets, repensez vous aussi au développement de votre produit.

Fiber: la porte ouverte sur l'asynchrone

Katherine Johnson 22/10/2021 12:10-12:30 - Niveau : Intermédiaire - Français

Parmi les nouveautés apportées par Php 8.1, les Fibers tiennent une place particulière. Il s’agit certainement d’une fonctionnalité qui aura un impact majeur sur l’écosystème Php, tout en ayant un impact mineur sur le code que vous écrivez tous les jours. Les Fibers sont comme des générateurs améliorés, des fonctions interruptibles, mais qui peuvent s’imbriquer de manière transparente avec d’autres fonctions. Il est donc enfin possible de créer des fonctions similaires à await et async pour rendre la programmation asynchrone moins intrusive dans notre code et permettre la compatibilité avec les frameworks existants. Voici une introduction à ces nouveaux concepts, ainsi que des exemples concrets de ce que cela permettra dans l’écosystème Php.

Les design patterns racontés aux enfants

Grace Hopper 22/10/2021 12:10-12:30 - Niveau : Grand public - Français

Les ressources au sujet des designs patterns ne manquent pas sur le net ou dans la littérature. Il y a quelques années de cela, j’ai eu envie à mon tour d’y apporter une lecture personnelle, dans le but principal de les mémoriser facilement. J’ai alors créé avec un ami une bande dessinée, 11 histoires accessibles à des enfants en bas âge, mais qui parleront aux développeurs. Dans cette présentation, nous en lirons une ensemble.

Au delà du sujet technique lui-même, j'aimerais encourager tout ceux qui ont des projets personnels à les mener à bien, en partageant ce qui m'a permis d'aller au bout de cette bande dessinée.

Qualité front, pourquoi c'est aussi le travail du dev back !

Katherine Johnson 22/10/2021 14:25-15:05 - Niveau : Grand public - Français

Devops, la démarche vous parle, c’est à la mode. Mais savez-vous communiquer entre devs front et devs back ? Comprenez-vous les enjeux du travail de vos collègues ? Quand vous créez une url, pensez-vous aux impacts SEO ? Quand vous nommez un fichier PDF, savez-vous que cela aura un impact sur l’expérience utilisateur ?

Le dev back n’est pas cantonné à traiter des sujets techniques, il a son mot à dire sur le résultat final et pour cela il doit connaître les impacts de son travail et savoir communiquer avec les devs front, le Product-Owner ou le client.

En pratique, les développeurs et équipes front, les product owners et équipes SEO sont de plus en souvent amenés à travailler avec des checklists de bonnes pratiques et notamment celle proposée par Opquast, disponible sous licence creative Commons BY-SA. Cette checklist très orientée vers les utilisateurs et donc plutôt vers les équipes front peut à tort être réservée à ces équipes

Pourtant, de nombreuses règles orientées front ou expérience utilisateur devraient directement être gérées par des développeurs back. À travers des exemples issus de thématiques évidemment orientées back comme la sécurité ou les performances, nous montrerons que non seulement les bonnes pratiques front sont directement utiles aux développeurs back, mais qu’elles ont un impact direct sur la qualité de leur travail quotidien, et que cela fait aussi partie de leur responsabilité et de la qualité de leur travail.

Comment sauver la planète en ne faisant rien.

Grace Hopper 22/10/2021 14:25-15:05 - Niveau : N/A - Français

Supprimez vos mails, arrêtez le streaming... blablablabla. Le numérique est aujourd'hui souvent pointé du doigt à cause de son impact sur l'environnement. Je vous propose de nous poser un peu sur les chiffres pour comprendre ce qu'il en est réellement et vous donner des clés pour savoir ce qu'est l'éco-conception de services numériques. Mon but est de vous donner envie d'en savoir plus et surtout de vous convaincre que vous avez plus de pouvoir que vous ne pensez sur ces questions là. Petit spoil: certain•e•s d'entre vous en font déjà sans le savoir.

Typage automatique de code PHP

Katherine Johnson 22/10/2021 15:10-15:50 - Niveau : Confirmé - Français

Le typage en PHP a considérablement muri ces dernières années, et c’est désormais un outil classique dans la trousse des développeurs et développeuses PHP. Naturellement, le prochain défi est la montagne du code historique : c’est à dire, toutes les applications qui ont été construites sans typage, mais avec des validations explicites et des arguments à usage large. Et en plus, une application PHP moyenne définit des milliers de méthodes, arguments et propriétés à auditer. Même sans support explicite des versions précédentes, le typage est une pratique courante de nombreux projets : cela donne des structures de code détectables et simples à moderniser. Les types scalaires sont alors un premier pas, suivi des validations plus strictes et des simplifications. Et avec les outils d’assistance les plus avancés, ces detections produisent des pull requests en masse, entièrement automatiques ! Voilà une aide bienvenue pour la qualité du code. Il ne vous reste plus que la conception du systeme de types lui-même !

Les Exception : le trou dans la raquette du typage

Grace Hopper 22/10/2021 15:10-15:50 - Niveau : Confirmé - Français

Ces dernières années les outils d'analyse statique du code (comme Psalm ou PHPStan) se sont imposés dans nos projets. Ils permettent de nous montrer des erreurs en l'espace de quelques secondes sans avoir à exécuter notre code.

Les exceptions font également partie intégrante de nos projets car elles offrent une manière simple pour sortir du chemin d'exécution nominal. Cependant ce mécanisme opère en dehors du système de typage (puisqu'elles n'apparaissent pas dans la signature des fonctions) ce qui empêche les outils d'analyse statique de vérifier que chaque Exception est gérée correctement. Ce manque d'outillage nous impose de faire cette vérification via des tests fonctionnels (donc plus lents à détecter les problèmes).

On verra comment le pattern Monad (via Either et Maybe) venant de la programmation fonctionnelle nous permet de gérer nos exceptions d'une manière compréhensible par les outils d'analyse statique. Le but étant d'accélerer et d'augmenter la fiabilité de la gestion des erreurs en supprimant le besoin d'écrire des tests nous même.

WorkAdventure de la genèse à aujourd'hui : Retour d'expérience sur 1 an d'univers virtuels

Katherine Johnson 22/10/2021 16:20-17:00 - Niveau : N/A - Français

Pour le grand retour du forum PHP en édition physique (enfin!), parlons un peu de l'expérience des éditions online! Vous avez peut-être eu l'occasion de tester WorkAdventure lors des dernières éditions, un lieu virtuel pour se rencontrer, travailler et socialiser à mi-chemin entre jeu vidéo rétro et visioconférence. Bébé du confinement, je vais vous présenter la genèse du projet, son développement et les challenges rencontrés. Nous parlerons d'architecture technique, de moteurs de jeux vidéos web, de WebRTC, de temps-réél, de scaling, de containers et de Kubernetes, de performances, d'optimisation et d'économie d'énergie, de sandbox et d'exécution de code tiers... alors accrochez vos ceintures, sortez vos manettes de Super-Nintendo et vos webcams, je vous emmène en balade dans un univers pixelisé!

Bref, j’ai migré une Bank As A Service en serverless

Grace Hopper 22/10/2021 16:20-17:00 - Niveau : N/A - Français

Pendant 2 mois, j'ai aidé Treezor, une "bank as a service" à migrer une partie d'un bon gros monolithe php en microservices serverless. Ceci grâce à Bref qui permet de faire tourner du code php sur AWS Lambda.

Dans ce talk, je vous montrerai comment construire une application serverless sur AWS lorsqu'on vient de Symfony ou Laravel. Mais vous verrez également les obstacles à surmonter pour que faire du serverless en PHP soit aussi simple qu'en javascript.

Vous ressortirez avec les réponses aux questions suivantes :

  • fat lambda monolithique Symfony ou function php event-driven ?
  • Comment vivre sans son ORM favori et avec du NoSQL ?
  • Dois-je tout plaquer pour me mettre au framework Serverless ?
  • Est ce que le serveless est le futur du web ?

Keynote de cloture

Katherine Johnson 22/10/2021 17:35-17:45 - Niveau : N/A - Français

Ce n'est qu'un au revoir ! Rendez-vous à l'AFUP Day 2022

En poursuivant votre navigation sur ce site, vous acceptez l’utilisation des cookies pour améliorer votre navigation. plus d'infos

1. Qu’est-ce qu’un cookie?

Un Cookie est un petit fichier texte enregistré sur votre terminal (ordinateur, tablette, smartphone, etc.), à l’occasion de la consultation d’un service en ligne grâce à votre logiciel de navigation. Il permet à son émetteur d’identifier le terminal dans lequel il est enregistré, pendant la durée de validité ou d’enregistrement du Cookie. Lors de la consultation de notre site Internet, des informations relatives à la navigation de votre terminal sont susceptibles d'être enregistrées dans ces fichiers dits "Cookies". Ces derniers sont installés sur votre terminal, sous réserve des choix que vous auriez exprimés concernant les Cookies et que vous pouvez modifier à tout moment.

2. A quoi servent les cookies émis sur notre site ?

Seul l’émetteur d’un cookie est susceptible de lire ou de modifier les informations qui y sont contenues.
Les cookies utilisés sur notre site permettent :

3. Vos choix concernant les cookies

Vous disposez de différents moyens pour gérer les cookies. Tout paramétrage que vous pouvez entreprendre sera susceptible de modifier votre navigation sur notre site et sur Internet en général et vos conditions d'accès à certains services de notre site nécessitant l'utilisation de cookies. Vous pouvez à tout moment exprimer et modifier vos souhaits en matière de cookies, par les moyens décrits ci-dessous. L'accord sur les cookies L'enregistrement d'un cookie dans un terminal est essentiellement subordonné à la volonté de l'utilisateur du terminal, que celui-ci peut exprimer et modifier à tout moment et gratuitement à travers les choix qui lui sont offerts par son logiciel de navigation. Si vous avez accepté dans votre logiciel de navigation l'enregistrement de cookies dans votre terminal, les cookies intégrés dans les pages et contenus que vous avez consultés pourront être stockés temporairement dans un espace dédié de votre terminal. Ils y seront lisibles uniquement par leur émetteur.

Le refus des cookies Si vous refusez l'enregistrement de cookies dans votre terminal, ou si vous supprimez ceux qui y sont enregistrés, vous ne pourrez plus bénéficier d'un certain nombre de fonctionnalités qui sont néanmoins nécessaires pour naviguer dans certains espaces de notre site. Tel serait le cas si vous tentiez d'accéder à votre compte ou à votre abonnement qui nécessite de vous identifier. Tel serait également le cas lorsque nous, ou nos prestataires, ne pourrions pas reconnaître, à des fins de compatibilité technique, le type de navigateur utilisé par votre terminal, ses paramètres de langue et d'affichage ou le pays depuis lequel votre terminal semble connecté à Internet. Le cas échéant, nous déclinons toute responsabilité pour les conséquences liées au fonctionnement dégradé de nos services résultant de l'impossibilité pour nous d'enregistrer ou de consulter les cookies nécessaires à leur fonctionnement et que vous auriez refusés ou supprimés. Les choix offerts par votre logiciel de navigation Vous pouvez configurer votre logiciel de navigation de manière à ce que des cookies soient enregistrés dans votre terminal ou, au contraire, qu'ils soient rejetés, soit systématiquement, soit selon leur émetteur. Vous pouvez également configurer votre logiciel de navigation de manière à ce que l'acceptation ou le refus des cookies vous soient proposés ponctuellement, avant qu'un cookie soit susceptible d'être enregistré dans votre terminal. Pour la gestion des cookies et de vos choix, la configuration de chaque navigateur est différente. Elle est décrite dans le menu d'aide de votre navigateur, qui vous permettra de savoir de quelle manière modifier vos souhaits en matière de cookies. Selon votre navigateur, consultez le lien ci-dessous pour configurer votre navigateur et refuser les cookies :