Tagged Interview speaker

La parole est aux speakers : Pascal Martin

Jusqu’à l’AFUP Day 2021, 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

No-code, ou le développement d’applications ouvert à d’autres métiers !

Construire une application sans coder ? C’est une idée que j’entends depuis le début de mes études… Et c’est la promesse de no-code ! D’ailleurs, pendant que des discours déclarent que nos enfants doivent apprendre à coder à l’école, nous écrivons nous-même déjà des applications no-code ! N’avez-vous pas lancé Excel récemment ?

Ces dernières années, l’approche no-code a évolué et devient petit à petit un concept viable. Des entreprises, startups ou mastodontes, se lancent sur ce marché et publient des outils et solutions qui aident à rivaliser avec certaines des applications que nous aurions pu développer nous-même… Je ne parle bien sûr pas (encore?) de supprimer nos métiers… Mais est-ce que no-code ou low-code ne permettraient pas à d’autres profils que les nôtres d’avancer plus rapidement sur leurs projets ?

À travers cette introduction, vous découvrirez un pan de l’approche no-code et j’espère vous montrer que le développement d’applications n’est plus réservé qu’aux développeurs… Et que nos langages préférés ne sont plus la réponse à toutes les questions !

Tours
11/06/2021
14:45-15:05

D’où t’est venue l’idée de proposer ce talk « No-code, ou le développement d’applications ouvert à d’autres métiers ! » ? Une tendance du marché ?

Un peu de tendance du “marché”, sans doute, oui. Cette tendance correspond d’ailleurs à ce que certains et certaines faisaient déjà. Et elle répond à un besoin.

Doit-on toujours passer des jours à développer une fonctionnalité ou une application alors que, parfois, quelques clics dans un outil suffiraient ?

Et si cette seconde approche était accessible à un plus grand nombre de personnes ? Si elle leur permettait de gagner en autonomie, de créer un service utile, ou d’apporter de la valeur à leur entourage, sans devoir apprendre un langage de programmation ?

L’écriture de livres techniques est un double défi, car on doit s’assurer de ne pas dire de bêtises, mais aussi s’assurer de bien l’écrire. Accordes-tu autant d’importance à la technique qu’au français dans tes rédactions ou laisses-tu cette partie aux correcteurs ?

Déjà, des bêtises, il en reste toujours une ou deux, hélas…

“Bien écrire” est très subjectif et dépend beaucoup du domaine. Pour un livre technique, les attentes sont différentes de celles d’un roman ou de poésie et je pense que “bien écrire” est encore plus difficile pour un livre qu’on lit pour le plaisir. Toutefois, je pense que la lisibilité a un impact sur la compréhension et j’accorde donc une certaine importance au français (ou à l’anglais) dans mes textes. Aussi, les lecteurs et lectrices risquent d’arrêter de lire si j’écris trop mal…

Les personnes qui relisent ou éditent mes livres participent bien sûr à sa qualité, y compris rédactionnelle. Pour ceux que j’ai écrits jusqu’à présent, c’est toutefois aux auteurs que revenait la plus grande part du travail de formulation, de rédaction et d’édition.

Un exemple : j’ai enlevé jusqu’à 25% de mots entre mon premier et mon second brouillon pour certains chapitres de mon dernier livre “Le Plan Copenhague”. Sans modifier le contenu ! Uniquement en reformulant et en allégeant la formulation… Une mauvaise habitude prise au lycée : remplir le plus de copies-doubles possible. C’est presque marrant à écrire, mais moins à lire :-/

Si vous écrivez, que ce soit un livre, un sujet de conférence, un article de blog ou une documentation, mon premier conseil serait de vous mettre à la place de votre public. Pour qui écrivez-vous ? Ensuite, et seulement ensuite, passez au contenu, puis à l’écriture et à la manipulation de la langue. Comme en programmation, ce qui compte est que ça marche (= que votre message passe) et l’optimisation prématurée est the root of all evil.

La convention UpperCamelCase a été renommée PascalCase, est-ce pour te remercier de ta contribution à l’écosystème PHP que ton prénom a été donné à cette convention ?

Il y a bien trop de conventions, y compris de codage, dans nos métiers ; encore un peu, et on va débattre d’espaces et de tabulations :-p

Je découvre ce nouveau nom en lisant ta question, personne ne m’avait demandé mon avis 🤷‍♂️. L’ancien nom était plus évocateur, plus clair…

Par contre, je conseillerais presque la lecture de la fiche wikipedia de Blaise Pascal, entre autres inventeur de la première machine à calculer. Puisque j’ai réellement découvert la programmation sur / pour une calculatrice (l’excellente TI-92+), il y a peut-être un lien, après tout ?

Le speaker

Pascal MARTIN
Pascal MARTIN
Passionné de développement en général ainsi que de Web et de PHP en particulier, Pascal Martin est Lead DevOps chez Bedrock / M6 à Lyon, sur la plateforme 6play. Il est particulièrement intéressé par Le Cloud, AWS et Kubernetes. Ses expériences précédentes l’ont vu passer d’un poste d’expert technique en SSII à un rôle de Lead Dev chez un éditeur, puis à un poste de développeur dans une startup. Il est intervenu sur des projets Web de toutes tailles, sur des applications intranet d’analyse et de suivi, du e-commerce, ainsi que dans le monde de la culture ou des médias. Il intervient également en tant que consultant et formateur. Il aime partager son expérience et écrit parfois sur son blog. Il est aussi auteur ou co-auteur des livres « Développer une Extension PHP » et « Le Plan Copenhague » et coauteur de « PHP 7 avancé ». Il est AWS Container Hero depuis 2020.

Autres interviews

La parole est aux speakers : Mathieu Ferment

Jusqu’à l’AFUP Day 2021, 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

Retour d’expérience: CQRS à la rescousse de PrestaShop pour migrer vers Symfony

Migrer une application d'un framework maison vers Symfony est devenu un classique dans le monde PHP. L'équipe PrestaShop a commencé une telle migration en 2016 avec la difficulté supplémentaire que l'application est un CMS open source PHP fondé en 2007.

Le chantier est immense, et nous procédons donc par étapes. C'est ici que l'introduction de CQRS dans notre architecture nous a grandement aidé à mettre en place une communication efficace entre les composants migrés et les composants legacy. Cette frontière est flexible et permet de remplacer un à un les composants legacy par des composants modernes avec une grande facilité.

Plutôt que de présenter CQRS qui a déjà été introduit, étudié et décrit par de nombreuses autre conférences, je propose d'aborder "le vif du sujet": les difficultés, les pièges, les erreurs que nous avons commises ... et (heureusement) les résultats positifs amenés par l'usage de CQRS.

Lille
28/05/2021
14:05-14:45

Au sein de Prestashop, vous avez choisi le modèle d’architecture CQRS pour votre refonte, pourquoi ce modèle en particulier et pas un autre ? Avez-vous évalué d’autres modèles pour vous conforter dans votre choix ?

PrestaShop est confronté à un challenge de taille: nous migrons l’architecture vers Symfony, ce qui implique de changer énormément de choses de manière non rétrocompatible, alors que c’est un enjeu majeur pour un projet open source. La migration introduit des Breaking Changes, qui doivent être gérés par tous les utilisateurs du projet qui s’appuient dessus : modules, thèmes, intégrateurs…

Nous savons que cela recommencera. PrestaShop aura encore besoin d’évoluer, et aura encore besoin de modifier des composants importants de son architecture après cette migration. Comment faire pour avancer sans systématiquement introduire d’importants Breaking Changes, mal accueillis par la communauté?

CQRS nous a apporté une solution élégante à ce challenge : il isole le domaine de l’application, ce qui permet de faire évoluer le domaine tout en gardant une promesse de compatibilité sur les commandes et les queries. Le domaine isolé peut être retravaillé sereinement : tant que le contrat des Commandes et Queries est respecté, les modules, thèmes, intégrateurs qui s’appuient dessus ne subissent aucun Breaking Change.

Et au passage les Commandes et Queries font office de SDK pour les utilisateurs.

C’est donc amusant : nous n’avons pas du tout choisi CQRS pour les raisons habituelles (introduire de l’asynchrone, séparer le modèle de données de lecture et le modèle de données d’écriture…) mais pour sa capacité à isoler une partie de la codebase derrière une interface claire et figée. Nous avons choisi CQRS pour ses bénéfices sur l’architecture, pas ses bénéfices sur la base de données.

Chez Prestashop, vous avez décidé de créer des ADR pour cadrer les développements à venir, et partager les intentions à la communauté. Récemment une discussion s’est ouverte pour donner encore plus de rigueur au système en le limitant dans le temps. Peux-tu nous en dire plus ?

Nous sommes convaincus que les ADR sont importants pour nous et la communauté afin de laisser une trace des décisions prises. Par contre nous n’avons pas encore trouvé un moyen efficace de les porter jusqu’à un vote. Un ADR chez PrestaShop, c’est une sorte de RFC avec à la clé une décision collégiale : il faut que chaque mainteneur prenne de son temps pour le consulter, donner son opinion, et finalement voter. Or le temps est ce qui manque le plus à un mainteneur PrestaShop ! Il y a tant à faire, nous avons du mal à réunir le temps de chacun sur un sujet commun.

La discussion que j’ai ouverte va finalement être close car après discussion avec les autres mainteneurs, nous pensons que les inconvénients d’une limite de temps sont plus grands que les bénéfices. Nous allons essayer un autre mode de fonctionnement où chaque ADR est assigné à un mainteneur qui doit le “porter” comme un projet, c’est-à-dire relancer ses pairs mainteneurs, pousser la réflexion, créer des réunions si nécessaire… on ne se limite finalement pas dans le temps ; par contre, quelqu’un est chargé de pousser le sujet pour qu’il ne stagne pas.

Comment s’est adapté Prestashop en tant qu’éditeur pour s’organiser en cette période de COVID ?

Nous avons eu de la chance : PrestaShop avait déjà adopté le télétravail bien avant le Covid, particulièrement dans les équipes techniques. Dans l’équipe Core, qui travaille sur le projet open source, deux tiers des effectifs étaient déjà des télétravailleurs à temps complet, nous n’avons eu aucune difficulté à sauter le pas. De toute façon travailler sur un projet open source impose de travailler avec des gens dans le monde entier, avec des fuseaux horaires variés, avec une culture de toujours documenter et écrire le fruit des discussions.

Les équipes de l’entreprise qui ne l’avaient pas encore expérimenté ont pu s’appuyer sur l’expérience des autres: tout le monde s’est mis à Slack, Miro, Meet et Zoom, et ça s’est fait très naturellement.

Le speaker

Mathieu FERMENT
Mathieu FERMENT
Développeur senior / mainteneur dans l'équipe Core du projet open source PrestaShop (CMS e-commerce).

Autres interviews

La parole est aux speakers : Hélène Maître-Marchois

Jusqu’à l’AFUP Day 2021, 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

Code d'équipe: clé de qualité et de solidarité.

Je voudrais partager avec l'éco-système php des façons de travailler en équipe et des problématiques liées à la dynamique de groupe qui peut, si elle est correctement utilisée, amener à une qualité de code et surtout une solidarité et une motivation importante chez les équipes de développement. La réflexion collective autour du produit que l'équipe est en train de construire peut amener une dimension supplémentaire dans notre quotidien. Ayant été PO et Scrum Master dans différentes équipes, je m'appuierai sur mes expériences et sur celles des développeurs de Fairness pour illustrer mes exemples.

Tours
11/06/2021
17:05-17:45

La place de la conception et du REX dans la phase de développement d’un produit quelque soit la méthodologie du projet est-elle sous-évaluée selon toi ?

Je dirais que ça doit sans doute dépendre des projets. Dans ma vision du travail d’équipe autour d’un produit, la phase de conception est fondamentale. Elle est la base sans laquelle tout le travail de développement ne peut se construire sereinement. Donc oui, les réflexions fonctionnelles sous-évaluées peuvent engendrer de réels et importants dysfonctionnements dans la suite du projet (spoil: je vous donnerai quelques exemples concrets de gros fails ^^).

Quant au REX, je le définis personnellement comme la lucidité, la vigilance et la capacité de l’équipe à savoir évaluer le travail fourni et prendre les bonnes décisions pour l’améliorer. Prendre du recul n’est jamais une perte de temps quand cela permet d’améliorer en continu le travail de l’équipe. Donc oui, parlons-nous pour avancer ensemble.

On ne travaille pas toujours sur un projet « excitant ». Est-ce que dans ce talk je pourrais découvrir de nouvelles façons de me motiver sur un projet ?

J’espère en tous les cas vous donner envie de changer de façon de travailler d’un point de vue de la qualité et surtout de la solidarité dans l’équipe. Tout projet a des phases moins intéressantes que d’autres. Pour moi, se lever le matin en se disant qu’on va retrouver une équipe avec laquelle on est content d’échanger et surtout qu’on sera fier de ce que l’on a codé en fin de journée, c’est déjà en soi une source de motivation. Je vais vous donner des exemples de pratiques à mettre en place et vous décrire comment je fais au quotidien avec mon équipe.

Quels genres d’expériences ou de formations peuvent aider à bien se préparer au rôle de Scrum Master ?

Je ne pense pas être un exemple typique du parcours exemplaire d’un Scrum Master puisque je suis psychologue de formation. Donc oui, il est parfaitement possible d’être Scrum Master sans savoir pousser une ligne de code. Je pense même que c’est un avantage pour bien faire mon boulot. Plus qu’une formation théorique ou technique, je pense qu’un Scrum Master doit avoir certaines capacités humaines au départ et ensuite avoir envie d’apprendre à aider son équipe au quotidien. De la même façon qu’un bon développeur n’a jamais fini d’améliorer sa façon de coder, un Scrum Master doit sans cesse chercher de nouvelles façons d’aider son équipe, de nouvelles façons aussi de percevoir les petits grains de sable qui débarquent avant qu’ils ne deviennent de gros soucis pour la dynamique du groupe. Je dirais qu’il faut avoir envie d’aider les gens sans avoir besoin d’être vu comme un chef ou un sauveur.

Le speaker

Hélène MAITRE-MARCHOIS
Hélène MAITRE-MARCHOIS
Hélène a commencé sa carrière dans les ressources humaines d’entreprises du numérique, dans le recrutement de développeurs.euses PHP. À force d’observer leur façon de travailler, elle s’est de plus en plus en plus impliquée dans les projets pour passer définitivement du côté produit en 2019. Co-fondatrice de la coopérative Fairness, spécialisée dans le développement responsable d’outils numériques, elle est aujourd’hui PO sur différents projets.

Autres interviews

La parole est aux speakers : Freek Van der Herten

Jusqu’à l’AFUP Day 2021, 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

Building a realtime dashboard powered by Laravel and Livewire

At Spatie we have a Laravel/Livewire powered dashboard that displays interesting data, such as statistics from GitHub, Twitter mentions, the up/down status of our sites, and much more. We've recently opensource the dashboard, so everyone can use it.

In this talk, you'll learn how you can set up your own dashboard in no time. After that, we'll take a dive under the hood and you'll learn how it works internally. Finally we'll take a look at the pros/cons that Livewire brings to the table compared to WebSockets.

Toulouse
11/06/2021
10:05-10:45

Do you start your open source projects from scratch or are you refactoring ideas from customers?

Most of our open source packages were built for a specific project. All client projects in our company are greenfield projects.

Whenever there is functionality that we think is useful for our other projects and other developers, we extract that functionality to a package. This has many benefits: the functionality has to be decoupled from the project, documented and tested thoroughly.

A small number of open source projects and packages were created because we wanted to toy around and learn a new technology.

Symfony is really popular in France but out of these borders, Laravel is getting stronger and stronger. What do you think about this competition?

I don’t see Symfony and Laravel as competitors, but as two ecosystems that can learn from each other. Laravel is built upon battle tested and very stable Symfony components. In the Symfony world you see that some ideas that were first explored in the Laravel ecosystem, are now being welcomed.

I think both ecosystems need each other to thrive.

What can you tell us about the PHP ecosystem in Belgium, speaking of community, events or leading companies?

Before the pandemic hit, the PHP community in Belgium was thriving. Five or six years ago a lot of new PHP meetups popped up, and seemingly every major city got on one. The biggest PHP conference in Belgium is PHPBenelux, which I had the pleasure of attending several years. With the world being in the state it is, most meetups have temporarily halted activities. The organisation behind PHPBenelux is luckily holding monthly online meetups, so everybody can still get their healthy dose of PHP.

Le speaker

Freek VAN DER HERTEN
Freek VAN DER HERTEN
PHP developer and package creator at @spatie_be, built @getmailcoach, blogging at https://freek.dev, organising @fullstackeu, running @ohdearapp and @flareappio

Autres interviews

La parole est aux speakers : Benoist Lawniczak

Jusqu’à l’AFUP Day 2021, 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

Des composants responsives sans media queries

Le temps du pixel perfect est bel et bien révolu, et avec l'avènement des design system nous avons tendance à penser composants plutôt que pages.

Le problème est que les composants devraient s'adapter à n'importe quel contexte là où les media queries ajustent les choses en fonction du viewport.

Nous verrons lors de cette conférence les possibilités offertes par le CSS moderne pour réaliser des composants flexibles qui s'adaptent sans utiliser les media queries.

Tours
11/06/2021
16:20-17:00

Certains font le choix des frameworks pour faire des intégrations plus rapides. Que penses-tu des CSS modernes ?

Tout dépend du cadre dans lequel se fait cette intégration. Si nous sommes dans le cas d’une intégration faite par une seule personne, il peut être avantageux d’utiliser les méthodes CSS modernes comme CSS Grid, flexbox, … Avec une bonne maîtrise du CSS, cela permet de faire une intégration rapide, sur mesure, et plus performante qu’avec un framework.

De même, tous les designs ne se prêtent pas aux frameworks. Un petit tour sur les sites d’awards et on comprend vite les limitations de ce genre d’outils. Cependant, l’avantage des frameworks est indéniable pour une équipe à défaut d’avoir mis un design system en place.

Quand il s’agit de frameworks connus comme BootStrap, il y a de fortes chances qu’un nouvel arrivant le connaisse déjà. Si le framework est moins connu, il existera une documentation qui permettra de se l’approprier. S’il n’y a pas de doc digne de ce nom, mieux vaut changer de framework.

Devs Front, devs Back, certain·e·s estiment que le CSS est réservé aux premiers. Qu’en penses-tu ?

Le CSS est clairement une compétence front. Mais un minimum de connaissances pourra toujours être utile à un développeur back. D’ailleurs à ce propos, je conseille vivement cet article de Tania Rascia qui donne les concepts minimum à maîtriser pour s’en sortir en CSS : https://www.taniarascia.com/overview-of-css-concepts.

Que penses-tu du temps alloué pour le design au sein des formations aux métiers du web ?

Il faut déjà définir ce qu’on entend par design. Il y a la partie “maquette” mais l’intégration est également une compétence design. Au CEFIM, le design est principalement étudié au sein de la formation “Designer Web” avec notamment 6 semaines de HTML et CSS. Pour la formation “Développeur Web et Web Mobile”, nous avons 2 semaines d’HTML et CSS. Nous demandons donc aux étudiants de travailler cette compétence en amont afin de nous concentrer sur la méthodologie.

Le speaker

Benoist LAWNICZAK
Benoist LAWNICZAK
Benoist Lawniczak est référent de la formation Développeur Web et Web Mobile au CEFIM (https://www.cefim.eu) et développeur web front-end indépendant spécialisé dans l'intégration et WordPress.

Autres interviews

La parole est aux speakers : Myriam El Kansouli

Jusqu’à l’AFUP Day 2021, 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

Recruter des femmes dans l'IT, du POC à la MEP

La majorité d’entre vous connaît ce constat, il suffit d’ouvrir les yeux sur l’open space : on dénombre peu de femmes en informatique… Et moi, en tant que femme, je souhaitais juste faire de l’info sans me laisser pousser la barbe.

Si je pouvais tout recommencer, quels conseils me donnerais-je pour faciliter mon parcours ? Des études à la vie active, du POC à la MEP, comment lever les points de blocage qui viennent se mettre dans le parcours d'une femme ?

Lille
28/05/2021
12:05-12:25

Myriam, pourrais-tu nous présenter ton parcours en quelques lignes  ?

Issue tout d’abord d’un parcours en commerce (après un bac littéraire), j’ai vite senti qu’il me manquait un aspect technique que je n’avais pas exploré. C’est en travaillant en tant que barmaid que les bonnes rencontres ont débouché sur la découverte de l’IT et plus particulièrement du développement, via des clients réguliers start’upeurs qui avaient monté leur boîte et qui me parlaient de programmation. C’est ainsi qu’à 27 ans, j’ai entrepris une reconversion en étudiant l’informatique, en alternance pendant 3 ans. Après la validation de ce parcours j’ai accepté un nouveau challenge en devenant responsable de la filière informatique de l’école dans laquelle j’étudiais suite à une opportunité. Et suite à cela je ne suis quasi pas revenue sur un métier plus proche de l’IT, ce que je regrette aujourd’hui d’où ma formation actuelle en testing logiciel.

Suite à ton parcours, as-tu remarqué des secteurs de l’informatique où les femmes sont plus présentes que les hommes ?

Effectivement, j’ai fait ce constat auprès des métiers « IT » orientés commerce : commerciales en ESN, RH IT, chargée de relations entreprises comme ce que je faisais dernièrement. En revanche pour l’aspect plus technique, je remarque plus de mixité sur les filières web (UX/UI, testing, gestion de projet, scrum) alors qu’en infra/réseau c’est plutôt l’inverse.

Tu dois peut-être savoir que les conférencières sont souvent minoritaires dans un line-up de conférences. Qu’est-ce qui t’a poussée à postuler à l’AFUP Day ? Que pourrais-tu dire pour encourager une professionnelle à répondre à un appel à conférences ?

Je n’avais jamais « osé » sauter le pas par peur de ne rien partager d’intéressant. J’avais également peur de prendre la place de quelqu’un qui aurait quelque chose de plus pertinent a dire. J’ai eu l’opportunité qu’on me propose de postuler au CFP et ce serait mentir que dire que j’y suis allée sereinement. Après de gros doutes et un bon coup de pied aux fesses, j’ai fini par me lancer ! Ce sera ma première expérience et j’ai la chance d’avoir un accompagnement exceptionnel pour m’épauler, ainsi qu’un suivi qui me donne confiance en moi. Si j’avais un conseil à donner, c’est « lancez-vous » ! Au pire le sujet n’est pas retenu, au mieux vous sautez le pas et vous ne serez pas seule pour vous préparer.

Le speaker

Myriam EL KANSOULI
Myriam EL KANSOULI
Testeuse en devenir et fan de burrata, Myriam est toujours prête à donner de son temps pour accompagner les futures pépites IT dans leur recherche de stage et alternance.

Autres interviews

La parole est aux speakers : Danielle Kayumbi Bonkoto

Jusqu’à l’AFUP Day 2021, 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

Communication inter micro services avec GRPC

Avec la popularité de REST, nous pouvons parfois oublier qu'il s'agit simplement d'une solution parmi de nombreuses autres. REST est une très bonne solution architecturale pour un nombre varié d'APIs mais il existe d'autres solutions pour des scénarios plus nuancés tels que GRPC (Google Remote Procedure Protocol). RPC est un mécanisme client serveur permettant à une machine sur un serveur d'exécuter un programme distant sur un autre serveur. gRPC créé en 2015 par google est basé sur RPC mais permet de traiter des milliards de requête par seconde grâce notamment au multiplexing de requêtes et de réponses, ainsi qu'à son mécanisme de sérialisation binaire Protocol Buffers. GRPC est particluièrement adapté pour les communications inter micro services, permettant de réduire la latence et d'augmenter ainsi les performances. Très peu d'applications PHP actuellement implémentent GRPC, pourtant très puissant. Nous verrons donc comment des cas réels d'utilisation avec des exemples en live au cours de la conférence !

Rennes
28/05/2021
11:20-12:00

Tu nous avais fait le plaisir de nous rejoindre lors du PHP Tour 2017 Nantes : plus de 3 ans ont passé, qu’est ce qui a particulièrement attiré ton attention concernant PHP ces dernières années ?

Effectivement j’ai eu l’honneur de présenter ma toute première conférence, « PHP Doc VS PHP 7 Strict Typing », au PHP Tour 2017 Nantes. Au travers d’exemples, retours d’expérience et recommandations PSR, j’analysais la nécessité de conserver le PHP Doc dans le code source des applications, tout en implémentant les nouveautés de PHP 7, en particulier le typage strict introduit par la directive d’exécution «  »declare(strict_types=1) » » et les typages scalaires (paramètres et retours de fonctions et méthodes).
Le langage PHP a en effet beaucoup évolué ces 3 dernières années surtout en ce qui concerne la performance, notamment avec le préchargement OPCache introduit en PHP 7.4 et la compilation à la volée en PHP 8, permettant ainsi de réduire considérablement le temps d’exécution des applications.
La problématique de performance sera justement traitée dans cette conférence et c’est l’une des raisons qui m’a motivée à proposer ce sujet. En effet, le multiplexing bidirectionnel sur gRPC et son mécanisme de sérialisation puissant permettent de réduire drastiquement la latence, par exemple pour des APIs exposées par des microservices.

Est-ce que Google est toujours actif sur GRPC et si c’est le cas, est-ce que cela représente un risque pour toi ?

Oui, assurément. Google est toujours très actif sur gRPC. En effet Google utilisait déjà depuis plus d’une décennie un framework RPC maison appelé Stubby, permettant la communication sécurisée, rapide et fiable entre sa pléthore de microservices. Cependant, Stubby restait fortement couplé à l’infrastructure interne de Google et n’était pas standardisé. L’arrivée en particulier de HTTP/2 et de QUIC (Quick UDP Internet Connections – créé par Google) a permis à Google de refactoriser Stubby pour étendre son usage; de là est né en 2015 le framework open source gRPC. gRPC dispose aujourd’hui d’une grande communauté dynamique de développeurs et développeuses, la documentation est régulièrement mise à jour, et des releases sont déployées et planifiées toutes les 6 semaines avec une visibilité sur un an environ. Par ailleurs, il existe des librairies clientes officielles pour la majorité des langages de programmation tels que PHP. À mon avis le risque est donc faible et mesuré comme pour tout autre framework open source populaire et efficace.

Freelance, directrice d’une entreprise, partage avec la communauté, conférence, Taekwondo, pâtisserie : tu es une femme très active qu’il ne faut pas embêter ! Où puises-tu toute cette énergie, et est-ce qu’il t’arrive de dormir ?

Oh vous savez j’essaye de faire de mon mieux. Je suis passionnée par mon métier et j’aime partager mes connaissances. En devenant freelance j’ai eu l’opportunité de choisir mes missions en ciblant des stacks techniques récentes, pour pouvoir travailler sur les dernières versions de PHP ou du framework Symfony, et implémenter de nouveaux protocoles, concepts et serveurs. Forte de ces expériences, j’ai souhaité mettre ma pierre à l’édifice en présentant des conférences sur des sujets techniques émanant souvent de discussions communes entre les devs. En outre, la création de mon entreprise DK Wave Technology m’a permis de m’affirmer et de consolider un peu plus mes compétences. Et pour mieux resurgir, la pâtisserie m’aide à m’évader en réalisant des choses concrètes et gourmandes !
Je prends toutefois le temps de me reposer et de maintenir une activité physique en pratiquant un petit peu du Taekwondo que j’adore depuis mon enfance ! En définitive, mes enfants sont mon moteur pour poursuivre mes rêves et mon époux m’est d’un grand soutien pour les atteindre.

Le speaker

Danielle KAYUMBI BONKOTO
Danielle KAYUMBI BONKOTO
Diplômée de l'école d'ingénieur Sup Galilée en Génie logiciel depuis 2010, et maman de 3 garçons dont des jumeaux, Danielle est passionnée par les technologies du web, notamment le langage PHP et le Framework Symfony. Depuis 4 ans elle est freelance en développement PHP 7/Symfony 4, en parallèle de son activité de Directrice Générale de son entreprise DK Wave Technology. Danielle aime partager ses connaissances avec la communauté PHP et Symfony et contribuer à travers des conférences. En dehors du développement, elle aime également les arts martiaux (Taekwondo) et la pâtisserie sous toutes ses coutures.

Autres interviews

La parole est aux speakers : Stéphane Hulard

« Jusqu’à l’AFUP Day 2021, 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

Dive in the dependency injection container.

Découvrons ce pattern et comment il fonctionne à travers des exemples réels. En prenant comme base le conteneur intégré à Symfony, mais en essayant d’ouvrir à toutes les solutions offertes par la communauté (aka PSR11), j’espère vous faire découvrir des capacités cachées dans votre application !

Les conteneurs d’injection de dépendance font parti intégrante des frameworks que nous utilisons tous les jours. On peut même dire que c’est le coeur de votre application. Aujourd'hui, on essaie d'automatiser au maximum leur configuration pour faciliter leur usage, mais comme ils permettent de créer, configurer, combiner des objets, ils gagnent à être mieux connus et maîtrisés.

Tours
11/06/2021
09:20-10:00

Parmi tous les composants ou mécaniques du framework Symfony, pourquoi as-tu choisi de faire un focus sur le conteneur d’injection de dépendance ?

Parmi les derniers projets que j’ai créé sur Symfony, j’ai été agréablement surpris par les nouveautés du conteneur d’injection de dépendance. L’expérience de développement est simplifiée, la productivité améliorée. Selon moi, la magie d’un framework est toujours à prendre avec des pincettes et c’est important d’avoir un œil sous le capot. C’est un constat que je fais depuis quelques temps déjà, on parle beaucoup des nouveaux outils, nouvelles librairies qui viennent enrichir le framework. Cependant si on ne connaît pas très bien le cœur et donc les patterns comme le conteneur d’injection de dépendance, c’est difficile d’en tirer pleinement parti.

C’est ce qui a donné naissance à cette conférence. L’objectif n’est pas de devenir un expert du pattern ni de son utilisation dans Symfony mais d’avoir au moins conscience de ce qu’il apporte et des limitations auxquelles nous, en tant que dev, serons confrontés.

Est-ce qu’il y a d’autres composants de Symfony qui attisent ta curiosité pour un autre futur talk ?

J’ai déjà parlé du composant Messenger dans une précédente conférence au Forum PHP, et je suis de près ce qui se passe autour de Symfony. Je pense que celui que j’ai le plus apprécié utiliser récemment est le composant Workflow. Il permet d’utiliser le principe d’une machine à état pour piloter des enchaînements plus ou moins complexes. Il y a déjà eu plusieurs présentations à son sujet mais si je devais parler d’un composant, ce serait celui-la.

Pour bien débuter avec Symfony, quelles sont les choses indispensables à savoir selon toi ?

Pour être à l’aise avec Symfony, je pense que des bases saines en programmation objet sont nécessaires. Sans ces bases, on se retrouve vite à copier/coller du code sans trop savoir pourquoi il doit aller à tel ou tel endroit. Au moins connaître le principe de classe, d’interface et savoir lire leur fonctionnement (visibilité des méthodes, des propriétés). S’attacher à créer un code simple et clair, même si c’est assez subjectif, peut aussi aider à appréhender des points importants comme le DIC. Le pattern MVC n’est clairement pas indispensable mais le principe de requête, réponse reste central dans la plupart des projets web quelle que soit l’architecture utilisée dans le développement.

Je pense que le reste vient avec la pratique et la collaboration avec d’autres développeurs et développeuses (code review, peer programming…). Il y a beaucoup de ressources en ligne pour débuter avec Symfony ou d’autres frameworks mais il ne faut pas se jeter dans le premier tuto venu et appliquer à la lettre tous les principes décrits. Le plus important reste d’avoir un œil critique et toujours se poser la question du pourquoi, le contexte est important et ce qui marche chez certains n’est pas toujours une bonne idée pour les autres.

Le speaker

Stéphane HULARD
Stéphane HULARD
Depuis 2006, il baigne dans le web et son écosystème. Consultant et formateur indépendant, il apprécie particulièrement travailler sur des projets legacy pour accompagner les équipes à les reprendre en main et il s'obstine à la mise en place des méthodes d'ingénierie logicielle sur le web (intégration et déploiement continu, tests unitaires, documentation…). Il essaie de rendre à la communauté au maximum à travers des contributions Open Source. Il télétravaille presque à 100% ce qui lui permet de vivre à l'étranger la moitié de l'année quand la crise sanitaire n'est pas dans les parages ^^.

Autres interviews

« 

La parole est aux speakers : Kévin Dunglas

Jusqu’à l’AFUP Day 2021, 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

Arrêt du support de Server Push par Chrome : qu'est-ce que ça change pour l'écosystème PHP ?

Google a récemment annoncé qu’il allait retirer le support de Server Push de son navigateur vedette. Server Push est une technologie faisant partie des standards HTTP/2 et HTTP/3 qui permet d’améliorer les performances des sites et applications web. Server Push est largement implémenté dans l’écosystème PHP : il est supporté nativement par la plupart des serveurs web ainsi que par des outils populaires tels que Symfony et API Platform. C’est aussi le coeur de la spécification Vulcain qui permet de créer des API web très performantes et facile à mettre en cache.

Les ingénieurs de chez Google proposent d’utiliser trois technologies pour remplacer Server Push, qui seraient d’après-eux plus simple d’utilisation comme d’implémentation, et permettrait des gains de performance quasi-similaires à ceux de Server Push. Ces technologies sont les liens de type Preload, le code de retour HTTP « 103 Early Hints » et l’API JavaScript WebTransport. L’écosystème PHP ainsi que Vulcain supportent déjà les deux premières. La troisième pourrait permettre à terme - si elle est adoptée par les navigateurs et serveurs web - de proposer une alternative moderne (bien que bas niveau) à WebSocket.

Au cours de cette présentation, nous découvrirons les cas d’usage de chacune de ces technologies, nous les comparerons avec Server Push, et nous verrons comment les utiliser en PHP (côté client comme côté serveur). Nous verrons ensuite comment Vulcain en tire partie.

Lille
28/05/2021
10:10-10:50

Pour remplacer Server Push, tu nous parles d’une technologie qui proposerait une alternative moderne à WebSocket. Même si cette technologie est bas niveau, ne va-t-elle pas concurrencer le protocole Mercure que tu as mis en place ?

WebTransport est une expérimentation visant à ajouter à la plateforme web une API de très bas niveau, reposant sur QUIC, qui permet de créer des connexions où l’arrivée du message est garantie (à la TCP) ou non (à la UDP). Cette nouvelle API pourrait à terme remplacer les WebSockets, en réglant une partie des problèmes de WebSockets (compatibilité avec HTTP/3, modèle de sécurité natif…).

Mercure est un protocole de beaucoup plus haut niveau reposant sur HTTP (et en particulier les Server Sent Events) qui permet de très facilement de faire du “broadcast” de messages depuis un ou plusieurs serveurs vers l’ensemble des clients connectés.

Les deux technologies n’ont pas les mêmes cas d’usage et devraient plutôt être complémentaires :

  • WebTransport est adapté quand on souhaite un contrôle total et très précis de ce qui transite sur le réseau (jeux vidéo, live streaming vidéo…). Ce contrôle total permettra d’optimiser l’usage du réseau beaucoup plus finement que ce qu’il est possible de faire avec Mercure, mais vient avec une complexité beaucoup plus importante pour les développeurs.
  • Mercure en revanche est extrêmement simple à prendre en main, toute la complexité (autorisation, reconnexion en cas de perte de réseau, récupération des messages perdus en cas de déconnexion…) est “masquée” par les implémentations : côté serveur, une simple requête POST vers un “hub” permet d’envoyer un message qui est instantanément reçu sous la forme d’un évènement JavaScript dans tous les navigateurs actuellement sur le site. C’est particulièrement utile pour envoyer aux navigateurs les mises à jour des données qu’ils sont en train d’afficher (par exemple le stock d’un produit où les commentaires sous un article).

En bref WebTransport sera une brique permettant de construire des applications très optimisées pour des cas d’usage spécifiques, alors que Mercure est une solution clef en main qui répond aux besoins classiques en évitant au développeur de réinventer la roue.

Il y a 10 ans tu ouvrais ton premier repository pour authentifier un utilisateur. Aujourd’hui, si tu devais coder à nouveau un repository utilisateur, qu’est-ce qui changerait ?

Ce qui changerait, c’est que je ne le recoderais probablement pas de zéro ! J’essaierais de m’appuyer sur les standards en la matière que sont OpenID Connect et OAuth, et très certainement sur les briques de services qui implémentent ces spécifications tel que le logiciel libre Keycloack.

Dans certains cas – quand l’utilisateur ne s’authentifiera que depuis le site web, qu’il n’y a pas d’app mobile ou de connexion depuis des applications tierces – des solutions plus minimalistes suffisent. Les frameworks web populaires tels que Symfony et Laravel proposent désormais des briques bien conçues, testées et auditées pour gérer l’authentification et l’autorisation.

Il y a 2 ans, à l’AFUP Day Lille 2019, tu nous présentais la bibliothèque Panther. La version 1.0 est sortie récemment, quels sont les changements notoires que l’on trouve sur cette nouvelle version ?

Ça tombe bien que tu poses la question, car je viens justement de publier un article à ce sujet ! Je vous laisse le découvrir en anglais et en français.

Le speaker

Kévin DUNGLAS
Kévin DUNGLAS
Kévin est le créateur du framework API Platform ainsi que des projets Mercure et Vulcain. Il est également membre de la Core Team Symfony et a co-fondé la société autogérée Les-Tilleuls.coop.

Autres interviews

La parole est aux speakers : Ulric Renaud

Jusqu’à l’AFUP Day 2021, 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

Tests fonctionnels : quoi, quand, comment, pour qui

Présentation de 20 minutes sur les tests fonctionnels, nous suivrons ensemble un cheminement simple et rapide sur :

  • ce qu'est un test fonctionnel,
  • à quel moment il se situe dans la chaine de développement du produit,
  • comment les mettre en place (principes génériques / outils),
  • en quoi ils sont importants / nécessaires,
  • pour qui ils sont faits, et enfin, pour quoi !
Rennes
28/05/2021
09:45-10:05

Tests unitaires, tests fonctionnels, lesquels choisir ?

Les tests unitaires et les tests fonctionnels n’ont de commun que la partie « tests ». Dans un monde idéal il ne faudrait pas faire de choix, mais appliquer les deux, ainsi que d’autres tests. Plus un développement est « testé » automatiquement, plus il est fiable et plus les modifications, l’évolution du code, sa maintenabilité sont aisés, sécurisés. Le but des ces deux types de tests est différent, hormis la partie fiabilisation, ainsi on ne testera pas obligatoirement de la même manière un code d’authentification, une api, ou un calcul de statistiques. Et comme le monde parfait n’existe pas, il est parfois nécessaire, pour différentes raisons, de devoir faire des choix et la finalité des parties testées aura un effet sur le choix du test adéquat.

Les tests automatisés sont souvent délaissés au profit du développement. Que conseillerais-tu pour convaincre les équipes de dédier du temps aux tests ?

Mon principal conseil, c’est que les tests sont avant tout un investissement sur l’avenir. Un peu de temps investi maintenant peut faire économiser beaucoup de temps plus tard. J’entends par là, que beaucoup de personnes (moi le premier) pensent, à tort ou à raison, que le code qu’elles produisent est exempt d’erreurs (je ne parle pas d’erreurs de syntaxe, mais bien d’erreurs de conception, d’algorithme, d’effet de bord, voir même d’oubli).

J’ai travaillé longtemps dans une équipe en charge de la TMA et beaucoup de nos correctifs auraient pu être évités si les codes étaient testés automatiquement par des tests unitaires et/ou fonctionnels. Beaucoup d’erreurs sont dûes à un effet de bord, des modifications testées manuellement sur un périmètre restreint du code, valides sur la partie testée, mais pas en dehors. J’apporterai une réponse pratique à cette question durant ma présentation, je ne vais donc pas m’étendre trop ici, venez le découvrir en direct.

Toi qui pratiques PHP depuis longtemps que penses-tu de l’évolution du langage ?

Je n’ai pas un avis tranché sur PHP et sur son évolution, c’est pour moi un outil et comme n’importe quel outil c’est la manière dont on s’en sert qui fera que l’outil est bon ou pas. On peut reprocher tellement de chose à PHP depuis sa création, et on pourra toujours reprocher les choix fait au cours de son évolution. Mais c’est ce qui en fait aussi un code intéressant, il évolue, il reste simple d’accès et est le père de beaucoup d’autres langages.