By communication

La parole est aux speakers : Benoit Jacquemont (AFUP Day 2019 Rennes)

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

La conférence

PHP 8 et Just In Time Compilation

PHP 7 a apporté des gains de performance importants. Mais saviez-vous que ces gains sont principalement issus du travail préparatoire pour la mise en place du JIT?

La compilation Just In Time est un moyen de transformer l'opcode PHP directement en langage machine compris par le processeur, toujours pour obtenir des performances supplémentaires.

Et c'est aussi un des composants principaux de la future version majeure de PHP.

Ce talk sera l'occasion de plonger dans le fonctionnement de la technologie JIT choisie par l'équipe de développement du moteur Zend, ainsi que de présenter quelques premiers benchmarks.

La Fabrique
17/05/2019
10:05-10:45

Tu es un speaker régulier des événements AFUP. Comment trouves-tu l’inspiration pour nous soumettre toujours de nouveaux sujets ?

L’inspiration provient en général de 2 sources : mon travail quotidien (par exemple « Hunting memory leaks with PHP Meminfo », « OpCode », « strace ») et l’actualité (« HTTP/3 », « PHP 8 and JIT »), avec toujours en toile de fond l’envie de creuser un sujet qui sort un peu de l’ordinaire, mais qui est finalement très proche des développeurs.

Par exemple HTTP, c’est le protocole du web, c’est la base du travail de tout développeur Web. Mais comme c’est en même temps assez bas niveau, les développeurs Web n’ont pas forcément l’occasion de rentrer dedans. D’où le talk sur HTTP/3.

Pareil pour les talks « Opcode » ou « JIT sur PHP »: c’est à priori des sujets dont les développeurs PHP ne devraient pas trop s’inquiéter, mais en même temps je pense que ça peut être utile de comprendre comment tout cela fonctionne. Ça rend les choses moins opaques !
De plus, dans certains cas, l’utilité peut être immédiate, comme pour strace où la démystification de l’outil abaisse la barrière d’entrée à l’utilisation.

Et puis j’aime bien le challenge de prendre un sujet assez pointu et de le rendre compréhensible. Ca me permet de valider que je l’ai bien compris aussi 😉

Lire la suite

La parole est aux speakers : Rodrigue Villetard (AFUP Day 2019 Lille)

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

Une application sans framework en 2019

Développer une application sans framework en 2019 ? Hérésie ?

Derrière ce titre provocateur, nous verrons comment replacer notre code applicatif au cœur du processus de développement. L’objectif : reprendre le contrôle de notre code pour atteindre une maintenabilité sur plusieurs années.

Loin de rejeter les propositions des solutions cadricielles du marché, nous verrons au contraire comment les bonnes solutions peuvent déployer leur valeur tout en permettant à notre code métier de respirer

Auberge Stéphane Hessel
17/05/2019
16:40-17:00

Le titre de ta conférence est « une application sans framework » : avec sa version 4, pour toi Symfony reste t-il un framework ?

Si la question vous est posée lors d’un entretien d’embauche, la bonne réponse est de répondre : « Non, Symfony est un ensemble de composants de haute qualité qui peuvent être utilisés individuellement ». Si techniquement cela n’est pas faux, Symfony propose également une documentation, une architecture, une organisation de fichiers et un ensemble de bonnes pratiques qui – mis bout à bout – ressemblent finalement assez fidèlement à un framework si on le souhaite.

Paradoxalement, je crois que c’est cette deuxième définition qui est davantage consciemment utilisée. Et c’est plutôt bien comme ça. J’admire d’ailleurs la gouvernance du projet Symfony et la maturité de sa communauté d’arriver à concilier les deux approches avec succès.

Lire la suite

La parole est aux speakers : Frédéric Hardy (AFUP Day 2019 Lyon)

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

La conférence

Quel est le rapport entre TCP, UDP et la programmation orientée objet ?

La programmation orientée objet doit permettre la conception de programmes fiables, évolutifs, facilement et rapidement, à l’aide de briques de code réutilisables. Pourtant, il est rare de pouvoir réutiliser du code orienté objet dans un contexte différent de celui pour lequel il a été conçu. De plus, parvenir à faire collaborer des objets qui ne sont pas issus du même écosystème n’est pas forcément trivial. Les programmes ont pris de l’embonpoint en termes de quantité de code et de complexité, et ils sont donc dans la plupart des cas très gourmands en ressources intellectuelles et techniques pour leur conception et leur mise en œuvre. De plus, ils deviennent souvent rapidement difficiles à faire évoluer, et leur fiabilité est incertaine et délicate à maintenir sur la durée, si tant est qu’elle soit suffisante dès leur première mise en production. Le constat est donc cruel : la programmation orientée n’a pas tenu ses promesses ! Quoique… l’Homme a une tendance naturelle à accuser l’outil plutôt que la façon dont il l’utilise. Et si nous laissions le bénéfice du doute à la programmation orientée objet durant cette conférence et que nous en profitions pour remettre en cause la façon dont nous l’appréhendons?? En réalisant un parallèle entre les protocoles de communication UDP et TCP à la base d’Internet et la façon dont nous écrivons du code orienté objet actuellement, j’espère vous faire douter de vous-même et à nouveau vous faire croire aux promesses d’Alan Kay !

SupInfo
17/05/2019
09:20-10:00

Ces dernières années on a souvent parlé de DDD, microservices ou d’architecture hexagonales. Tu vas nous parler de POO, TCP, UDP : des principes qui ont des dizaines d’années d’existence. Penses-tu que ce retour à la base est le meilleur moyen de garantir la simplicité ?

L’objectif derrière le fait de mettre en relation ces concepts est d’apporter un éclairage différent sur la POO par rapport aux pratiques actuelles.
En tant que développeurs, nous avons tous pour objectif de produire facilement et rapidement du code qui répond aux besoins des clients ou des utilisateurs et qui soit simple à maintenir et à faire évoluer.
Et pour y parvenir, nous avons à notre disposition tout un tas de recettes de cuisine ou d’outils qui s’appellent TDD, DDD, architecture hexagonale, design pattern, « if less programming », « object calisthenics », SOLID, et il y en a beaucoup d’autres.
Pourtant, malgré cette pléthore de bonnes pratiques et de recommandations, dans les faits, la plupart du temps, cet objectif n’est que partiellement atteint.
Un jour ou l’autre, nous sommes dans l’impossibilité de faire évoluer le code simplement, et nous sommes alors obligés de produire de la dette technique qu’il faudra rembourser à plus ou moins long terme.
Et comme la dette appelle la dette, elle va donc rendre plus compliquée la maintenance du code et rendre plus complexe son évolution.
Or, la POO a été conçue justement pour répondre à cette problématique, et non pour la provoquer.
C’est en cherchant à comprendre l’origine de ce paradoxe et en revenant à ces origines que je me suis aperçu que nous faisons de la POO, mais que nous ne la comprenons pas réellement.
Nous utilisons la POO pour développer des programmes qui sont une suite d’appel de fonction, alors qu’elle est censée permettre la conception d’un protocole de communication et de l’implémenter.
C’est pour illustrer cela que j’utilise TCP et UDP dans cette conférence, mais je n’en dirais pas plus maintenant.
Si vous voulez savoir exactement ce que j’entends par là et si ce « retour à la base » permet effectivement de « garantir la simplicité », il faudra venir à ma conférence 😉
Lire la suite

La parole est aux speakers : Lætitia Avrot (AFUP Day 2019 Lyon)

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

La conférence

Les merveilles méconnues du SQL

Le SQL est un langage très puissant. Si vous avez suivi les évolutions de la
norme SQL, vous devriez savoir ce qu'est une CTE (y compris une CTE recursive),
les aggrégations avancées (window function, cube, rollup...) et les différents
types de jointures (même les jointures latérales). Mais les avez-vous essayées ?

Cette conférence se focalisera sur ces nouvelles fonctionnalités, comment elles
sont décrites dans la norme et comment elles sont implémentées dans PostgreSQL
avec des exemples concrets.

À la fin de cette conférence, vous devriez être capable d'utiliser toutes ces
merveilles du SQL et de les expliquer à vos collègues pour que leurs yeux à eux
aussi se mettent à briller!

SupInfo
17/05/2019
15:40-16:20

De nombreuses développeuses et développeurs font peu de SQL et accèdent à leur base via des ORM. Quels sont les avantages à bien connaitre le SQL ?

Aujourd’hui, on voit de plus en plus de retours d’expériences de développeurs séniors expliquant que la ressource la plus utile qu’ils ont négligée dans leur apprentissage était le langage SQL. Ce qu’il faut bien comprendre, c’est que le langage SQL que 95% des développeurs connaissent est un sous-ensemble de ce que le SQL peut faire. En gros, les développeurs savent faire ce qu’on appelle des CRUD (Create, Read, Update, Delete) dans leurs expressions les plus simples. En n’utilisant pas toute la puissance du langage SQL (et du moteur du SGBDR), c’est-à-dire en n’utilisant le SQL uniquement pour récupérer des données sans les traiter, on laisse cette charge au programme dont ce n’est pas le travail. Au final, les performances ne sont pas au rendez-vous et personne n’est satisfait.
Ma vision des ORM est biaisée : on m’appelle quand ça ne marche pas… Je n’ai donc jamais vu un ORM utilisé correctement… Par contre, je peux dire une chose: mapper des objets sur des tables d’une base de données ne peut pas fonctionner. Les structures d’un programme sont créées pour gérer les données et les afficher. Le stockage en SGBDR est fait pour éviter au maximum la duplication des données. Ces buts différents font que les structures sont différentes. Ce qui a du sens, c’est de mapper des objets sur des relations, qui peuvent être un résultat de requête.
Un autre problème du SQL, c’est la généralisation du langage. Effectivement, il existe une norme SQL, mais comme toute norme, chaque moteur a développé sa propre manière de faire. Du coup, les ORM se reposent souvent sur un sous-ensemble du SQL qui fonctionne avec la majorité des SGBDR et là encore, on perd beaucoup à ne pas utiliser les spécificités du SGBDR choisi et on se retrouve, à nouveau, avec des problèmes de performances. Imaginez un développeur web qui décide de ne pas utiliser un seul hook dans son css pour avoir un code qui fonctionne sur tous les navigateurs ! C’est exactement le même problème.

Lire la suite

La parole est aux speakers : Fabien Féat (AFUP Day 2019 Rennes)

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

La conférence

GraphQL vs REST

REST est une norme bien ancrée dans le monde des API mais elle n'est pas la seule et certaines alternatives sortent du lot, telle que GraphQL. Je propose ici de faire un état des lieux de GraphQL et de le comparer avec ce que nous connaissons tous : REST.

La Fabrique
17/05/2019
14:45-15:05

GraphQL est une techno relativement récente, alors que les préconisations REST ont fait leurs preuves depuis de nombreuses années. GraphQL n’est-il pas juste un effet de mode ?

Quelle techno n’a pas été à un moment donné un effet de mode ? PHP l’a été à son époque, Javascript également, même Google ! Et regardons où ils en sont…
Peut-être que GraphQL n’est qu’un effet de mode, je ne saurais en juger.
Cependant ce qui m’intéresse ici, c’est qu’il a le mérite d’exister. Je souhaite par cette conférence, apporter des réponses sur son fonctionnement, en comparaison avec REST, non pas pour dire s’il est mieux ou non, mais plutôt pour donner aux développeurs un maximum d’informations pour qu’ils puissent prendre sereinement la décision de l’utiliser ou non.

Lire la suite

La parole est aux speakers : Samuel Roze (AFUP Day 2019 Lille)

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

La conférence

Retour aux bases : et si on jouait avec Twig, Messenger & Mercure?

En annonçant Symfony Mailer, Fabien a lancé une idée intéressante : et si on s'intéressait aux "anciennes" technologies et qu'on essayait de les améliorer? Maintenant, tout le monde écrit une API et un front-end React (ou similaire)... pour quelques pages "dynamiques". Est-ce que l'on ne pourrait pas tweaker Twig et utiliser quelques nouvelles technologies Symfony pour faire autrement? 😉

Auberge Stéphane Hessel
17/05/2019
10:05-10:45

Tu as rejoint l’année dernière la core team Symfony, de plus, tu vis maintenant depuis plusieurs années à Londres. Quel bilan tires-tu de ces expériences ?

J’ai rejoint la core team de Symfony suite à la création du composant Messenger. Ce que j’ai compris surtout c’est qu’une fois ma pull-request mergée, c’est là que le vrai travail a commencé. Même en me consacrant à ce composant, répondre aux issues, relire les pull-requests, écrire des fixes et maintenir des transports indépendants, ça prend énormément de temps. Pour moi, c’est un privilège et un vrai plaisir d’être capable d’aider autant de dévelopeurs·euses. Je me rends maintenant compte de la quantité de travail que tous les autres membres de l’équipe font et je trouve ça incroyable. Je crois qu’on ne se rend pas vraiment compte. À un moment où je suis obligé de passer un peu moins de temps sur Symfony pour sécuriser des investissements sur la startup sur laquelle je travaille, je me demande quand même si l’on ne devrait pas penser à un modèle plus long-termiste de financement de ces développements pour qu’ils ne dépendent uniquement pas du temps libre (ou accordé par certaines entreprises). En ce qui concerne Londres, c’est une ville que je trouve impressionnante de par sa diversité (je travaille avec des dizaines de nationalités, ça ouvre énormément l’esprit) et son dynamisme (il y a beaucoup de « jeunes pousses »). C’est top et je m’y vois bien y rester pour un bon moment.

Lire la suite

La parole est aux speakers : Antoine Deprez et Brice Taillardat (AFUP Day 2019 Rennes)

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

La conférence

Coder proprement en PHP en 2019

Il s'agit ici de présenter PHP non plus comme un langage de bidouille comme il était possible de faire avant 2004 mais comme une solution pérenne et performante pour nombre de besoins. Les détails abordés portent notamment sur la V7.1 (nullable et void), visibilité des constantes de classes etc... Les exemples porteront notamment sur Facebook avec HipHop, HHVM ou Hack et les framework robustes et leurs intérêts principaux.

Bref, il s'agit ici de démontrer la force du langage et d'en profiter pour troller nos amis javaistes. Le ton est humoristique et permet à tous de se rappeler la puissance mais aussi pourquoi PHP a cette réputation et d'y mettre un terme définitivement.

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

Depuis des années maintenant, PHP s’est industrialisé et professionnalisé. Pensez-vous que ces changements ont été suffisamment perçus dans les communautés ne pratiquant pas PHP ?

Les communautés de développeurs et développeuses ne pratiquant pas PHP considèrent toujours ce langage comme un langage « amateur » uniquement destiné à réaliser des sites personnels : PHP est poursuivi par son histoire. Les autres communautés, telles que les javaistes, voient que PHP évolue constamment, mais selon elles il s’agit plus de rattraper le retard sur les autres langages que d’ajouter des fonctionnalités. De plus, encore aujourd’hui, beaucoup de PHP « old school » est écrit et déployé en production. Tous accordent toujours à PHP sa souplesse et sa facilité d’accès, mais ne voient pas les arguments pour l’adopter.
Lire la suite

La parole est aux speakers : Stéphane Hulard (AFUP Day 2019 Lyon)

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

La conférence

Laravel : the good, the bad and the ugly...

En France Laravel fait l'objet de troll, et de critiques sur les patterns utilisés et l'approche technique de son créateur Taylor Otwell. La communauté grandit et de plus en plus de développeurs sont amenés à travailler sur ce framework. Comme pour n'importe quel outil, il faut apprendre à s'en servir !

Je propose de passer un peu sous le capot et de voir comment utiliser la puissance de Laravel en respectant une approche solide dans le développement. Je parlerai d'injection de dépendances, de contrat, de tests, de services car oui il est possible de coder correctement avec ce framework !

SupInfo
17/05/2019
10:05-10:45

La communauté Laravel, pourtant très active à l’étranger, est peu présente en France. À ton avis, pourquoi est-ce le cas ?

Effectivement, la communauté grandit de manière incroyable à l’étranger et les conférences sont de plus en plus nombreuses aussi à l’international : Inde, Pakistan, USA, Japon, Royaume Uni, … De mon côté ça fait maintenant quelques années que je connais ce framework et son image en France s’améliore peu à peu, même si on vient de loin ! Je pense que nous avons, parmi nos compatriotes développeurs, des personnes très compétentes et attachées aux pratiques de développement ainsi qu’à leur respect. Je ne dis pas que Laravel ne les respecte pas mais il y a, dans son fonctionnement interne, beaucoup de choses très différentes de ce à quoi nous sommes habitués par ailleurs.
Aussi, j’imagine que les français sont un peu chauvins et préfèrent utiliser Symfony qui a ses racines dans notre beau pays.

Plus sérieusement, je pense que c’est une question d’implantation. Les développeurs, quand ils sont habitués à un outil, ne vont pas se jeter sur le premier venu pour en changer, en tout cas pas en PHP. Symfony a une bonne notoriété, est utilisé sur des projets très variés et la communauté française est très dynamique. Ce n’était pas forcément le cas dans d’autres endroits du monde, les outils utilisés étaient plus vieillissants, plus variés. Je pense que Laravel a trouvé écho dans plusieurs communauté aussi bien dans sa simplicité que sa philosophie.

Je vois quand même de plus en plus de développeurs qui connaissent Laravel (même si parfois ils ne le disent pas très fort 😉).
Lire la suite

La parole est aux speakers : Kévin Verschaeve (AFUP Day 2019 Lille)

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

La conférence

Retour d'expérience : La migration d'un Zend Framework 1.12 vers Symfony

MorningCroissant.fr est un site de location de logement longue durée. La première version du site, faite en ZF 1.12 commençait à être de moins en moins maintenable : non testée, code non optimisé, bugs... La refonte devient nécessaire, et le choix s'est dirigé vers Symfony 3 (dernière version majeure au moment du démarrage de la refonte). Nous verrons ensemble quelles sont les étapes qui ont fait de cette migration un succès, presque sans douleur.

Auberge Stéphane Hessel
17/05/2019
10:50-11:10

C’est ta première conférence à l’AFUP. Qu’est-ce qui t’a poussé à proposer un sujet ?

J’ai fait un ligthning talk au SymfonyLive Paris en 2018 où j’avais eu pas mal de retours positifs, et j’y ai passé un bon moment. Il ne me manquait plus qu’à passer sur une conférence un peu plus longue. Ça faisait un moment que je voulais donner une conférence, sans jamais avoir de sujet que je trouvais intéressant ou que je maîtrisais suffisamment (selon moi en tout cas). Puis j’ai travaillé sur un projet, plusieurs personnes m’ont dit que parler de cette migration Zend vers Symfony, sous forme de retour d’expérience, pourrait être intéressante. Alors, quand un membre de l’organisation de l’AFUP Day m’a demandé si je voulais parler à l’AFUP Day de Lille, je me suis lancé.

Lire la suite

La parole est aux speakers : Gabriel Pillet (AFUP Day 2019 Lyon)

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

La conférence

Alice et Bob sont sur un bateau

TOP 3 des phrases que j'aimerais ne plus entendre sur un projet web : "Je vais prendre un café pendant que l'import tourne…", "Le mot de passe de l'utilisateur admin, c'est azerty1234 ?" et "T'as qu'à utiliser un dump de la base de prod.". Si 99% des projets dans le web servent principalement à manipuler des données quelconques, comment se fait-il que l'on délaisse autant la partie "jeu d'essai" de nos projets ? Et puis d'ailleurs c'est quoi un (bon) jeu d'essai ? Nous verrons ensemble les bonnes pratiques pour bichonner nos données dans les différents environements du projet (dev, test, préprod et prod) et des astuces pour faciliter leur création avec Alice et Faker.

SupInfo
17/05/2019
16:50-17:30

Un jeu d’essai correspond à des données métiers. Souvent, on constate que les clients ont du mal à tester une application avec des données fictives. Arrives-tu à faire en sorte que tes clients prennent le temps de produire un jeu d’essai qui veut dire quelque chose pour eux avec lequel ils pourront tester leur appli ?

Le problème principal, qui est le sujet de fond de cette conférence, c’est qu’aucun des acteurs du projet ne prend généralement le temps de se poser sur la question du jeu d’essai. Si c’est le développeur qui fournit le jeu d’essai à la va-vite, il y a de grandes chances pour le client ne s’y retrouve pas (M. Foobar, c’est qui ?!), si au contraire c’est le client qui fournit les données (un extrait anonymisé de la base de production par exemple), c’est le développeur qui va avoir du mal à faire le tri, extraire la logique, trouver un sens à ces dizaines de milliers de lignes réparties dans une centaine de tables obscures qu’on lui demande d’assimiler.

La solution est pourtant « simple », c’est un travail d’équipe qui doit réunir tous les acteurs du projet et qui doit prendre un temps non négligeable sur la réalisation du projet, surtout au début du projet.
Lire la suite