La parole est aux speakers : Frédéric Bouchery

Jusqu’au Forum PHP 2020, 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

Utopie de la généricité

Pourquoi, avec le temps, nos développements se complexifient ? Pourquoi n'arrivons-nous pas à conserver un code simple ? Quand on essaie de voir à plus long terme, souvent cela nous prend du temps, ce n'est pas simple à utiliser, et d'ailleurs, ce n'est pas utilisé ! Bref, est-ce possible de concevoir du code générique, réutilisable et qui dure longtemps ? Vous allez voir que la réponse n'est pas toujours évidente, et qu'il serait temps de fixer des règles.

Katherine Johnson
22/10/2020
09:30-10:10

Tu vas nous présenter un sujet que tu proposes à l’AFUP depuis le Forum 2016 : penses-tu que le timing coïncidait enfin pour pouvoir aborder ce thème en 2020 ?

Je ne sais pas si on peut parler de timing, car je n’ai pas l’impression qu’il y a spécifiquement un engouement particulier pour ce thème en 2020. Par rapport aux autres sujets que j’ai proposés, il doit être le seul sur le thème de la complexité et c’est un sujet qui semble toujours intéresser notre auditoire. D’ailleurs, avec ma conférence de 2013 et celle de l’année dernière, ça fera 3 conférences sur ce thème. Là, je vais aborder plus spécifiquement le problème de l’abstraction hâtive et de l’espérance de vie en bonne santé des développements.

(suite…)

La parole est aux speakers : Jean-Pierre Vincent

Jusqu’au Forum PHP 2020, 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

Performance : mais que se passe-t-il après le backend ?

Même avec un un code backend performant, l’utilisateur peut attendre plusieurs secondes avant de pouvoir utiliser votre interface : mais pourquoi ? Grâce à des exemples tirés de grands sites français (Le Monde, Cdiscount, Glamour …) nous allons voir les techniques modernes pour améliorer les performances d’un site, telles que perçues par l’utilisateur. Loin des seuls conseils poussés par Google LightHouse, nous verrons si HTTP/2 est vraiment une bonne affaire, ce que coûte un JS sous Webpack, si la compression d’images est une technique vaudou, et ce que peuvent faire graphistes ou intégrateurs pour accélérer un site. Outre les techniques nous verrons 2 outils phares de la perf et on discutera de comment gérer un projet de d'amélioration des perfs.

Grace Hopper
22/10/2020
14:30-15:10

À quel moment doit-on s’inquiéter des problématiques de performance dans un projet ?

Dans le cycle de release, un tout petit peu au début et beaucoup vers la fin du projet, lorsque 80% du code est écrit.
Au début il faut s’intéresser à la performance pendant la conception des maquettes et des schémas d’archi : où est-ce qu’on aurait à priori des temps d’attente qu’il va falloir designer pour faire patienter, quelles sont les fonctionnalités qui vont évidemment challenger la perf (listes infinies, images venant de contributeurs, plusieurs frameworks CSS/JS au même endroit …). Connaître les patterns de chargement classiques que l’on peut d’ores et déjà éviter est un plus, mais la plupart des technos modernes prévoient déjà ces cas-là.
Vers la fin, de manière pragmatique, on peut commencer à tester sa preview dans les conditions de production : avec la configuration serveur prévue (compression, protocole réseau, domaines, cache …), en y intégrant tous les tiers (pub, tracking, services externes …) et à partir du moment où environ 80% des fonctionnalités des pages ont été produites, on aura quelque chose de plutôt réaliste ! Quand je n’interviens pas sur la production, c’est à ces 2 moments-là qu’on fait appel à moi.

(suite…)

La parole est aux speakers : Benoit Jacquemont

Jusqu’au Forum PHP 2020, 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

Pourquoi 0.1 + 0.2 != 0.3, ou le monde mystérieux des nombres à virgule flottante.

Et oui, si vous exécutez le code ci-dessus en PHP, et dans la plupart des autres langages, celui-ci vous confirmera bien que 0.1 + 0.2 n'est pas égal à 0.3.

Mais ce comportement étrange peut s'expliquer, voire même se justifier.

Les nombres à virgule flottante ont le pouvoir de nous ouvrir un univers complet et souvent peu compris. À condition bien sûr de les utiliser correctement.

Cette conférence présentera un peu de théorie et beaucoup d'exemples concrets.

De la Première Guerre du Golfe, au moteur de rendu graphique de Quake, en passant par le fusée spatiale Ariane 5, nous verrons ensemble les avantages et les dangers potentiels de l'utilisation des nombres à virgule flottante.

Nous tirerons de ces exemples des leçons que nous pouvons appliquer sur nos pratiques de développement quotidiennes.

La conférence couvrira également quand utiliser les nombre à virgule flottante, et quand les éviter (prix, facturation), et quelles sont les alternatives.

Katherine Johnson
23/10/2020
09:30-10:10

À chaque conférence que tu donnes à l’AFUP, tu prends des fondements parfois complexes dans le développement et tu arrives à les rendre très clairs. Quel est ton secret ?

Déjà merci pour le compliment ! Essayer de rendre les choses claires c’est effectivement ce qui m’anime pour faire ces conférences.

Je ne sais pas s’il y a un secret, mais j’essaye de me mettre à la place des personnes qui vont assister à la conférence, d’essayer de ne rien assumer en terme de prérequis, et de construire une progression qui puisse être suivie au fur et à mesure que le talk plonge au sein du sujet.

J’avoue aussi que je choisis aussi des sujets qui sont suffisamment circonscrits en terme de périmètre ce qui permet d’aller en profondeur sans avoir non plus à couvrir un très grand nombre de pré-requis.

(suite…)

La parole est aux speakers : Ben Smith

Jusqu’au Forum PHP 2020, 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

The new LAMP stack is Serverless

AWS Lambda, Amazon API Gateway, MySQL, PHP - it’s LAMP but not as you know it. In this session, I’ll show why there has never been a better time to build serverless applications with PHP.

Using this new LAMP stack to build serverless applications allows PHP developers to benefit from the agility and scalability enabled by the serverless paradigm, all without needing to manage servers. I’ll demo how to get started running your PHP code using functions as a service. You’ll learn how to connect to databases at scale with spiky workloads, and continue to use your favourite libraries and tools, without impacting performance or availability.

Learn how to become a serverless PHP developer, and use the world’s most popular web runtime to build scalable, agile apps without the server management

Grace Hopper
23/10/2020
15:15-15:55

Do you think that there is only one LAMP stack?

No – the original meaning of the acronym itself can be applied differently, depending on your flavour of language be it Perl, PHP, or Python. Then, there’s a number of variations of LAMP packages. LAPP substitutes PostgreSQL for MySQL, a WAMP stack uses Microsoft Windows. XAMPP is a cross-platform version of the bundle that can be downloaded and installed on Microsoft Windows, Mac OS X, Solaris, or Linux. Essentially, they all refer to an application stack that is typically both free to use and open source, which functions as a general purpose web server.

(suite…)

La parole est aux speakers : Antoine Bluchet

Jusqu’au Forum PHP 2020, 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

Propulser du temps réel avec PHP en 2020 !

Avec l'annonce du composant HTTP de Symfony en 2019 et son adoption courant 2020, de nouvelles possibilités de communication entre les applications PHP et le reste d'internet sont possibles ! Parmis elles l'utilisation de Mercure, un nouveau protocole construit sur la base de requêtes HTTP et de Server-Sent Events. Assemblés avec une application Symfony ces technologies permettent des usages dits de temps réel ! L'exemple courant est celui de la mise à jour des données de vos applications. Cela dit, qu'en est-il de la communication entre clients ? Voire entre serveurs ? Venez assister a un retour d'expérience autour d'un cas concret et découvrir ainsi de nouveaux axes d'amélioration pour des applications toujours plus réactives !

Grace Hopper
23/10/2020
09:30-10:10

Tu vas nous parler de temps réel au Forum PHP 2020, peux-tu nous énumérer les problématiques résolues avec ce genre de mise en place ?

Cela fait plusieurs années que nos applications se font de plus en plus réactives. On exécute d’ailleurs souvent nos requêtes HTTP via du Javascript. Cependant il est courant d’avoir besoin de mises à jour dans le navigateur en temps réel, par exemple le statut de disponibilité d’un utilisateur. Il existe plusieurs techniques pour ce faire et je vais parler principalement des Server-Sent Events qui sont des événements envoyés du serveur vers le client (mobile ou web). D’autres éléments d’une infrastructure logicielle pourraient aussi être concernés par ces mises à jour en temps réel…

(suite…)

La parole est aux speakers : Jonathan Van Belle

Jusqu’au Forum PHP 2020, 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

JSON en base de données, manipulons un peu cela

Une base de données relationnelle moderne peut facilement gérer du JSON. Avec quelques connaissances, vous pouvez facilement enrichir le comportement de votre modèle de données avec un soupçon de JSON. Nous verrons donc, comment utiliser certaines fonctionnalités avancées de mysql / mariadb et postgresql afin d'effectuer certaines recherches, créer des index, utiliser des colonnes virtuelles, etc. Au final, nous verrons que dans bien des cas, un peu de JSON résout pas mal de soucis, qu'une table ou plusieurs colonnes en plus, auraient rendu plus compliqué.

Katherine Johnson
23/10/2020
12:10-12:30

Qu’est-ce qui fait de JSON le format le plus adapté pour stocker des données non structurées en base ? Existe-t-il des formats alternatifs ?

JSON est structuré, mais souvent la structure fluctue fortement 🙂 Ce qui est intéressant avec le format JSON, c’est surtout qu’il nous est connu. C’est lisible par un humain, lisible par un ordinateur et dans le monde du web, c’est connu de toutes et tous ou presque. Il est aussi facile à réparer en cas de souci. C’est aussi une structure de donnée indépendante, qui n’est pas soumise à variation en cas de changement des choses, comme peut l’être un serialize (évolution des noms de classe, éventuellement incompatibilité avec des montées de version PHP, etc) et donc lisible par d’autres langages de programmation.

Des alternatives existent et elles vont vraiment varier d’un besoin à l’autre. JSON est requêtable en base de données depuis un certain temps déjà, avec des fonctions propres, là où d’autres formats ne le sont pas. Des alternatives pourraient-être : serialize/ubnserialize, JSONB (JSON sous format binaire), BSON (JSON binaire, mais limité), système de hashing… Il en existe beaucoup en fait, mais moins connus. Certains sont inspirés des nouveaux formats d’envoi par le réseau, d’autres sont d’anciennes pratiques. Et en fonction de votre infrastructure, d’autres possibilités s’ouvrent, mais là on s’écarte de la question je pense.

(suite…)

La parole est aux speakers : Olivier Dolbeau

Jusqu’au Forum PHP 2020, 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

Jane & Webby ou la vie de mes amies

Ca fait quelques temps que je traine avec Jane & Webby (la mascotte d'APIPlatform), deux de mes plus proches copines. Si on s'entends si bien tous les trois, ce n'est pas pour rien, en effet nous sommes tous trois fans de OAS, l'OpenAPI Specification.

Dans l'équipe, chacun sa spécialité ! Webby tente de suivre à la lettre les préceptes de l'OAS pour écrire de beaux documents conformes à la RFC, Jane n'a pas son pareil pour déchiffrer les écrits de l'OAS et en faire de superbes clients et moi... bon moi je ne fais que leur filer un coup de main pour que mes potes s'éclatent et ça me plait !

On a fait les 400 coups ensembles ! J'pourrais vous raconter la fois où on s'est amusé à donner des documentations diférentes à nos connaissances en fonction de nos affinités ! C'était dingue, notre meilleur pote avait accès à tout mais le type bizarre qu'on avait rencontré la veille n'avait presque rien ! 😀 Oh, y'a aussi la fois où, grand seigneurs, on a décidé d'aider nos copains en leur donnant accès à l'historique complet des opérations qu'ils avaient faites sur notre API ! 😀 C'était grandiose !!

On forme une équipe, on est soudés, on a peur de rien et si on fait un peu peur parfois, on ne mords pas, promis ! Allez venez, j'vais vous les présenter et vous comprendrez pourquoi ça se passe si bien entre nous. 🙂

Grace Hopper
23/10/2020
14:30-15:10

Dans ta bio tu te décris comme « feignant », en précisant que c’est une qualité. Pourrais-tu nous dire pourquoi ?

Je suis intimement persuadé que la fainéantise, dans le sens « partisan du moindre effort » est une qualité dans le développement. Par exemple, la fainéantise permet souvent de ne pas tomber dans le piège de l’over-engineering : commençons par faire au plus simple puis itérons plutôt que de « perdre du temps » à réfléchir à tous les cas possibles, actuels et futurs, avant d’écrire la moindre ligne de code.
Bien que je considère la fainéantise comme une qualité, j’avoue qu’il m’arrive parfois d’en abuser : « j’écrirai ce test plus tard », « ce n’est pas urgent, je vais mettre un TODO »… C’est tout de suite beaucoup moins vendeur, mais j’essaye de me soigner. 🙂

(suite…)

La parole est aux speakers : Karim Pinchon

Jusqu’au Forum PHP 2020, 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

Introduction à OpenID Connect

"T'as besoin d'une application pour authentifier tes utilisateurs ? Un serveur OAuth2 c'est ce qu'il te faut !"

C'est faux. Trop souvent le protocole OAuth2 est utilisé à tord pour authentifier des utilisateurs. Ce n'est pas fait pour ça. En revanche, un protocole relativement semblable existe dans ce but : OpenID Connect.

Je vous propose de vous expliquer comment fonctionne le protocole OpenID Connect et en quoi il est différent d'OAuth2, pour ne plus se tromper d'usage.

Katherine Johnson
22/10/2020
12:10-12:30

Tu as l’habitude de donner des cours de niveau Master. À ce niveau-là, comment prépare-t-on ses cours ? Quelles sont les différences avec la préparation d’un conférence ?

En effet, depuis quelques années je dispense un cours sur les Web Services d’une dizaine d’heures en M1. À ce niveau-là, j’essaie de proposer un cours en étant très précis sur certains concepts, mais je ne cherche pas à être exhaustif et à aborder tous les sujets. Il y a quelques années je donnais des cours en L1/L2 sur les bases du web, HTML, CSS, JS, PHP et là mon approche était différente : j’essayais d’aborder beaucoup de sujets sans forcément les « creuser » au maximum. L’idée étant qu’en L1/L2 on est sur de la découverte alors qu’en Master je considère qu’on doit commencer à avoir une certaine maîtrise des sujets. Un exemple : REST est encore en 2020 un style d’architecture très mal compris, et je pense que c’est en partie dû à des enseignements qui ne sont pas assez précis, qui ne vont pas au bout des choses.
Concernant les différences entre la préparation d’un cours et d’une conférence je dirais que ça dépend :). J’ai déjà fait des présentations assez proches d’un cours magistral lorsque je voulais faire découvrir un nouvel outil par exemple. Dans ce cas, on essaie de passer en revue les fonctionnalités de l’outil, et on a quelque chose d’assez linéaire. Pas forcément très fun mais ça peut être très bien quand même. Sur d’autres types de sujets, on sait qu’on ne pourra pas parler de tout alors on n’aborde qu’une petite partie du sujet mais en choisissant un axe particulier. Et puis, pour un talk il y a des contraintes bien différentes. L’une d’elles est que l’on a très peu de temps. Réussir à proposer quelque chose d’intéressant en 10, 20 ou 40 minutes ce n’est pas simple, lors d’un cours, on a plusieurs heures, on peut se permettre des digressions ou des anecdotes pour essayer d’accrocher les étudiants.

(suite…)

La parole est aux speakers : Damien Alexandre

Jusqu’au Forum PHP 2020, 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

État de l'art d'Elasticsearch avec PHP

Tout le monde utilise Elasticsearch, mais qui en comprend vraiment les particularités ? Dans ce talk je vous expose mes recommandations sur la mise en place du moteur de recherche dans un applicatif Web et les pièges dans lesquels nous tombons le plus souvent. Du tuning de pertinence à la mise à jour de mapping en production sans perte de service, vous apprendrez à maîtriser et reprendre confiance dans votre utilisation d'Elastic avec PHP.

Katherine Johnson
22/10/2020
10:15-10:55

Ta conférence portera sur l’état de l’art sur Elasticsearch avec PHP. Tu l’as déjà donnée en 2019 lors de l’AFUP Day, qu’est ce qui changera par rapport à celle-ci au Forum PHP 2020 ?

L’état de l’art en soit n’a pas évolué depuis 2019 mais les logiciels sur lesquels nous pouvons nous reposer oui.
Par exemple Elastica 7.0 est enfin disponible (depuis Juin), Elastically est stable et propose de nouveaux ponts vers Symfony…
En plus donc de ces quelques changements, j’aimerais parler d’APM, une solution de monitoring de performance applicative dont l’extension PHP est en cours de développement.

(suite…)

La parole est aux speakers : Gabriel Caruso

Jusqu’au Forum PHP 2020, 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 8: a new version, a new era

PHP 8 is coming, and you might be wondering: what are the new features? Have they fixed that weird bug? Is my application getting any faster? Can I support both PHP 7 and 8 versions in my library or framework?

In this talk, we are going to spend some time looking at everything that has changed in PHP 8, both internally and externally, either new features and changes of behavior (Break Compatibility, you know them).

As one of the Release Managers, Gabriel Caruso is going to tell you all about it, giving you the resources to get the latest major version of PHP, that is scheduled for November 2020, up and running!

Katherine Johnson
22/10/2020
11:25-12:05

In your opinion, which feature is the most interesting in PHP 8?

Choosing one among the best features in PHP 8.0, I’d say https://wiki.php.net/rfc/union_types_v2. The main reason is that now, with this feature on PHP 8.0, methods, properties, and everything else that had an annotation to indicate it, can be replaced with actual types, and we’ll have much cleaner codebases.

(suite…)