Catégorie AFUP Day 2020

La parole est aux speakers : Vincent BEAUVIVRE

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

L’amour en héritage !

Ah ! le code «legacy», comme on l’aime ! Ce moment merveilleux où l’on vous présente le projet avec un petit sourire en coin : «bon ça n’est pas basé sur la dernière techno à la mode, mais ça marche !». Alors on commence à prendre «ça» par un bout et on réalise le désastre :

  • Pas de versionning
  • Fichiers de plus de 3000 lignes que même les anciens n’osent plus toucher
  • Code tiers inclus dans le projet
  • Framework qui fait de la magie noire
  • Code mort J’en passe, et des meilleures !

J’ai moi-même connu ce type d’aventure en boulot et en perso, et j’aimerais partager avec vous quelques bonnes idées, et des mauvaises à éviter. On va parler de refactoring, de transition douce, d’amélioration continue, d’arbitrages techniques… Et c’est l’occasion de prendre un peu de recul aussi, pour penser global, mais agir local ! Pas pour la planète, mais pour le projet !

En ligne
19/06/2020
15:10-15:50

Cela fait plus de 20 ans que tu développes autour de PHP : comment as-tu vécu ces différentes années et traversé les évolutions du langage ?

Ouhla ! Je me considère vraiment comme un enfant de la communauté PHP : je suis arrivé au développement PHP par curiosité, sans aucun background, et j’ai grandi dans mon métier par mes rencontres et mes découvertes. Toutes ces années, c’était palpitant de suivre l’évolution du langage. À mon avis, PHP a trouvé une belle maturité de son système d’évolution, basé sur les RFC. Je me souviens aussi des flottements, comme PHP6 … Avec PHP7, la communauté est parvenu à un bon équilibre entre : retro-compatibilité, évolution fonctionnelle (ce qu’il fait), évolution technique (comment il le fait) et innovations. Ce qui me rend très optimiste quant à son avenir, surtout au vue des orientations de PHP8.
J’ajoute que j’aime beaucoup partager sur des problématiques typiques avec des développeurs d’autres langages, et découvrir d’autres solutions, ou d’autres problèmes 🙂

S’il ne fallait en retenir qu’une, y aurait-il une pratique que tu conseillerais pour limiter le code legacy ?

Aïe ! Mes amis ! Je crois bien que c’est peine perdue ! Votre meilleur code d’aujourd’hui sera vraisemblablement un boulet pour quelqu’un d’autre, ou pour vous même 😛
Gardez cela en tête ! Ça permet de garder du recul, un point de vue extérieur, pour épargner quelques cheveux blancs à vos successeurs. Arrêtez-vous parfois pour considérer l’ensemble du tableau. Peut-être que les meilleures bourdes ou les pires couplements vous sauteront aux yeux.

Comment as-tu fait pour obtenir du temps pour supprimer du code legacy ?

Ça fait parti du job. En général, je «vends» le refactoring avec des évolutions. Je défends l’idée de devoir faire une transition en me basant sur des problèmes récurrents de perf ou des difficultés de maintenance. Un socle de base de cohabitation entre ancien et nouveau système est mis en place. Puis on s’engage dans une voie dans laquelle, à chaque modification d’une partie de ce code (évolution ou debug important), cette partie sera simultanément transposée dans un «nouveau système». La pédagogie n’est pas de trop pour expliquer ce qu’est la dette technique et quel est son enjeu. Et parfois, je l’avoue, il est plus efficace de passer ces idées discrètement 😛

Le speaker

Vincent BEAUVIVRE
Vincent BEAUVIVRE
Vincent est un autodidacte qui a grandi et mûri depuis 20 ans au même rythme que PHP. Depuis le ```echo date('d/m/Y');``` en php 4, jusqu’aux designs patterns d’aujourd’hui, et en passant par le code spaghetti, le mvc, composer, les orms, le tdd puis le ddd. Rien ne lui a été épargné ! Pas même phpnuke, joomla, wordpress, prestashop, ou magento. Pourtant il en redemande encore 🙂

Autres interviews

La parole est aux speakers : Lætitia AVROT

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

Le I de ACID

Depuis les années 70, les bases de données relationnelles ont évolué, mais leur base théorique, elle, n'a pas évolué: ACID. Atomicité, Consistance, Isolation et Durabilité. L'isolation des transactions est bien souvent mal comprise alors qu'elle est presque toujours ajustable et permettrait de résoudre beaucoup de problème des développeurs et développeuses.

Après une description des différents niveaux d'isolation, nous verrons quelles anomalies peuvent survenir et quand utiliser quel niveau d'isolation. Votre base de données relationnelle peut faire beaucoup de choses que vous ignorez, changer le niveau d'isolation de certaines requêtes en fait certainement partie!

En ligne
24/06/2020
10:05-10:45

Les visiteurs et visiteuses de l’AFUP Day 2019 Lyon ont eu la chance d’assister à une de tes confs. Tu réédites l’exercice cette année. Quels retours as-tu eus suite à cette journée et as-tu des attentes à propos de l’édition 2020 ?

Avant de postuler pour AFUP Day 2019, j’étais morte de peur à l’idée d’aller parler dans une conférence de développeurs. Les conférences auxquelles je participe sont très orientées bases de données et, comme à chaque fois qu’on sort de sa zone de confort, la peur est là.
Les retours ont été très positifs dans le sens où j’avais visé juste: ces trésors du SQL étaient bien méconnus de la plupart des participant·e·s, mais je me suis aussi rendue compte que cette conférence aurait gagné à aborder moins de points mais plus en détails. J’ai tenu compte de cet aspect lorsque j’ai redonné cette conférence.
Cette année, la conférence qui a été choisie va se concentrer sur un des fondamentaux des SGBD relationnels: l’Isolation, le fameux I des propriétés ACID.

Peux-tu nous citer les différents niveaux d’isolation possibles afin de nous mettre l’eau à la bouche ?

Il existe dans la norme SQL 4 niveaux d’isolation des transactions: le READ UNCOMMITTED, le READ COMMITTED, le REPEATABLE READ et le SERIALIZABLE. Pour la plupart des SGBDR, le niveau par défaut est READ COMMITTED, qui est un bon compromis entre la performance et l’interaction entre les transactions, mais cela implique des conséquences pas toujours connues qui peuvent poser problème. Le niveau d’isolation peut être changé pour une transaction seulement et peut vraiment éviter d’ajouter des sur-couches aux applications.

Tu vas nous parler d’un concept établi il y a près de 40 ans et qui est pourtant mal connu ou mal utilisé. Penses-tu qu’il s’agit d’un défaut de formation, d’outillage parmi les développeurs·euses ou tout simplement que c’est lié au décalage de métier entre un·e développeur·euse et un·e administrateur·trice de base de données ?

Je pense qu’effectivement les formations se concentrent un peu trop sur les langages de développement alors que l’informatique est beaucoup plus riche que ça ! Il n’y a pas (en France ou dans le monde) de formation initiale d’administrateur•trice de bases de données, c’est un métier qu’on apprend directement en production avec les risques que cela implique… Il y a aussi toute une génération de développeurs·euses qui se reposent sur l’ORM pour écrire leurs requêtes (voire pour modéliser les bases de données). Je pense que c’est une mauvaise pratique qui engendre des gros soucis de performance ou d’intégrité des données, mais d’un autre côté, je ne suis appelée par les clients que lorsque ça va mal !

Le speaker

Lætitia AVROT
Lætitia AVROT
Lætitia Avrot est experte PostgreSQL chez EnterpriseDB. Elle est co-fondatrice du mouvement Postgres Women, membre du Postgres Advocacy Group et membre du Postgres Funds Group. Elle a aussi été pendant un an membre du comité du Code de Conduite de la communauté PostgreSQL. Elle a écrit plusieurs patchs pour le projet PostgreSQL et donne régulièrement des conférences dans des événements communautaires.

Autres interviews

La parole est aux speakers : Dinara MUKPAYEVA et Faustine LOUIS

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

Vous avez toutes deux effectué une reconversion dans l’informatique : qu’est-ce qui vous a poussées vers ce secteur ?

Dinara : Je cherchais un métier qui pouvait concilier ma vie d’une maman et s’exercer n’importe où dans le monde. Grâce à mon entourage, je me suis souvenue de mes débuts avec Dreamweaver. J’ai choisi la formation de Designer web chez CEFIM et puis j’ai découvert une passion pour le code. Et aujourd’hui cette reconversion me permet d’avoir un équilibre entre ma vie privée et ma vie pro.

Faustine : Avant de commencer ma formation de développeuse web, je n’aurais jamais imaginé me reconvertir dans ce secteur. Après plusieurs années dans la recherche publique, je souhaitais me reconvertir dans un domaine pouvant m’apporter une stabilité professionnelle et personnelle. J’ai d’abord monté ma micro-entreprise de communication scientifique et c’est en rencontrant des entrepreneurs et surtout des développeurs lors de mon séjour en espace de co-working que j’ai découvert le monde du numérique. Je l’ai trouvé particulièrement ouvert et stimulant et je m’y suis intéressée, c’est à ce moment là que j’ai réalisé que j’avais envie de faire partie de l’aventure.

Trouvez-vous des similitudes ou des compétences transposables entre vos anciens métiers et vos nouvelles vocations ?

Dinara : Savoir s’adapter rapidement à tous types de situations, aimer apprendre de nouvelles choses, travailler en équipe, être autonome.

Faustine : Absolument ! J’en ai été la première étonnée. Beaucoup de méthodes de travail que j’appliquais en recherche sont transposables dans le développement. Par ailleurs, ce secteur demande beaucoup de logique, de rigueur, de recherche d’informations et d’acharnement. Des compétences que l’on apprend dans la recherche. Mais dans le secteur numérique, la communication y est plus importante, on ne se sent jamais seul·e !

Certaines personnes disent que le monde de l’IT est difficile pour les femmes, qu’en pensez-vous ?

Dinara : La communauté tourangelle de l’IT me parait très accessible aux femmes. Je trouve que notre petit nombre nous est favorable car nous sommes plus visibles et plus sollicitées. Même si personnellement, les débuts étaient difficiles car j’ai dû tout apprendre de zéro avec beaucoup de travail sur mon temps libre. Aujourd’hui, je me sens confiante, j’adore ce monde de renouvellement perpétuel de connaissances.

Faustine : À ce jour, je n’ai absolument pas rencontré de difficulté par rapport à mon statut de femme. Chez Apside Top, nous sommes même assez nombreuses. C’est un milieu très masculin c’est vrai, mais je le trouve très ouvert et tourné vers l’humain. Il souffre sûrement de travers que l’on retrouve finalement dans tous les domaines. Toutefois, je manque peut être d’expérience pour pouvoir me prononcer catégoriquement à ce sujet.

Le speaker

Autres interviews

La parole est aux speakers : Christophe JOLLIVET

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

Déboguer vos sites web comme un·e pro avec les outils des devs

Les outils des devs ont fait d'énormes progrès ces dernières années. Saviez-vous que vous disposez de 7 types de points d'arrêts différents dans votre navigateur, qu'il est possible de connaitre le fichier css et la ligne qui font que votre texte déborde du cadre, de rejouer un appel serveur sans refaire toute la navigation ou enfin de déboguer directement sur votre téléphone ? Au cours de cette session entièrement à base de démonstrations, nous verrons toutes ces techniques et bien d'autres qui font que le débogage de vos sites web est maintenant presque un plaisir. Les démonstrations se feront sous Chrome mais la majorité des choses montrées existent dans les autres navigateurs.

En ligne
03/07/2020
11:15-11:55

Ta présentation va porter sur les outils de développement dans le navigateur avec une démonstration sous Chrome. C’est dans ce contexte que tu as déjà utilisé des paramètres expérimentaux de ce navigateur. Peux-tu nous en dire plus ?

Les paramètres expérimentaux sont l’occasion d’avoir un aperçu des futures fonctionnalités, ce sont souvent des fonctionnalités en cours de développement. J’utilisais par exemple la pile d’appel asynchrone qui depuis est devenue une fonctionnalité normale. Il s’agit, lorsque vous avez un point d’arrêt dans le callback d’une fonction asynchrone, de présenter à l’utilisateur le code qui est à l’origine de l’invocation de cette fonction asynchrone.
Actuellement, l’onglet « CSS overview » semble annoncer une fonction d’audit avancé de la partie CSS d’un site.
Utiliser les fonctions expérimentales peut parfois être problématique car d’une mise à jour à l’autre certaines choses se déplacent (intégration définitive) ou disparaissent par abandon.

Tu expérimentes beaucoup de choses dans l’univers vaste qu’est l’IT. Comment organises-tu ta veille ? Quels conseils donnerais-tu aux personnes débutant dans l’informatique ?

J’utilise principalement un agrégateur de flux (Feedly) qui me permet de surveiller simplement de nombreux sites. Certains sont des sites généralistes et couvrent beaucoup de sujets, d’autres sont consacrés à une seule technologie (celle que j’explore à l’instant) .
La première catégorie me permet de me tenir au courant de l’actualité technique et voir des tendances se dessiner.
La seconde catégorie me permet d’aller plus loin sur une technologie et me forger mon propre avis dessus.
Du point de vue organisation, je fais une passe rapide me permettant d’éliminer des articles sur la base du titre, ensuite je parcours en diagonale les autres et pour finalement ne lire que ceux qui accrochent vraiment le regard (par un graphique, des sous-titres, une structure, …). Je rate certainement des articles intéressant avec cette méthode mais une structuration claire de l’article facilite la lecture et permet de gagner du temps. La répétition de mots-clé entre les articles est un bonne indicateur des tendances.
La grosses difficulté est d’avoir des sources suffisamment variées pour ne pas avoir une vision trop restreinte ou biaisée par les sites que l’on consulte.
Pour un débutant, je recommande de commencer par se concentrer sur une seule technologie, mais en s’intéressant aux concepts derrière la technologie (allez lire les sources de vos frameworks). Vous retrouverez ces concepts d’un langage ou framework à un autre et cela vous permettra de les appréhender beaucoup plus rapidement. Par concepts, je pense à des choses comme l’injection de dépendance, la programmation fonctionnelle, le modèle événementiel, le pattern MVC…

Selon toi, profitons-nous au maximum des fonctionnalités offertes par leurs outils de débogage et notamment leur navigateur ? Quelle est, pour toi, la fonctionnalité qui gagnerait à être connue dans cette activité chronophage ?

Je vois encore trop souvent des gens ne pas utilisez les outils de débogage. L’ajout de ligne de log est une bonne approche du débogage mais on peut être beaucoup plus performant en plaçant un point d’arrêt dans le code et en suivant son exécution en pas à pas. Le point d’arrêt est d’ailleurs la fonctionnalité la plus pratique et pourtant la plus méconnue du navigateur. Pendant ma session j’aborderai les 7 types de points d’arrêts existants qui me permettent de résoudre de nombreuses erreurs de code. Si vous ne pouvez pas nommer ces 7 types, alors vous apprendrez quelque chose lors de ma session.

Le speaker

Christophe JOLLIVET
Christophe JOLLIVET
Agitateur technique chez Apside, Christophe prêche les bonnes pratiques sur divers projets informatiques et universités en région tourangelle. Reconverti à l’informatique il y a 16 ans suite à un doctorat de neurobiologie, il contribue activement dans les communautés techniques en ayant été co-responsable de la rubrique Java du site developpez.com mais aussi en participant à des conférences, en fondant le Tours JUG en 2008 et co-fondé TouraineTech en 2017.

Autres interviews

La parole est aux speakers : Alexandre SALOMÉ

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

Concevoir des back-offices performants

Il n'est pas possible de concevoir un front-office performant si le back-office ne l'est pas. Par back-office, nous parlons de tous les systèmes qui permettent de délivrer le service aux utilisateurs : serveurs Web, applications, APIs, réseau et autres composants : tout ce qui se passe de l'autre côté du périphérique de l'utilisateur.

Cette conférence vous expliquera quels sont les principes à connaître, sans entrer dans les détails d'implémentation. Ces connaissances vous aideront à concevoir ou à dialoguer avec les concepteurs, à tester et vérifier les systèmes dans leur intégralité afin d'arriver à des temps de traitement quasi instantanés.

La performance du front-office (HTML, CSS, JS, Mobile) sera volontairement écartée pour se concentrer sur la performance globale du système, de la base de données côté serveur jusqu'à l'écran de l'utilisateur, en passant par le réseau.

En ligne
26/06/2020
17:05-17:45

Tu travailles chez Blackfire. Quelle est la roadmap du produit à long terme ?

Aujourd’hui, Blackfire est la référence pour le profiling d’application en PHP. Pour ce qui est du futur de Blackfire, nous travaillons actuellement sur l’intégration de nouveaux langages (Python, Go) et sur le développement d’un APM (Application Performance Management). À long terme, nous aimerions faire de Blackfire une solution complète de suivi et d’analyse de la performance des applications.

Parmi tous les projets que tu développes et auxquels tu contribues, il y a https://github.com/alexandresalome/site-de-maman. C’est vraiment un projet que tu as développé pour ta mère ? Si oui, en quoi il consiste ?

Oui, c’est vraiment un projet développé pour ma maman ! J’ai reçu un jour un texto de ma mère me disant : « Alexandre, tu pourrais me faire un site Internet ? ». Et j’avoue, l’idée d’avoir ma mère comme client m’a au départ fait très peur ! Finalement, j’ai profité de cette opportunité pour faire un projet Open-Source. J’avoue, le gros point positif à cela est que les outils d’intégration (Github, Travis, …) sont gratuits pour les projets open source. Vous pouvez aller voir enviedunplat.fr et juger par vous même du résultat ! À la suite de ça, un ami, traiteur également, m’a demandé si je pouvais faire son site… J’ai alors rendu l’application configurable pour avoir 2 thèmes : Maman, et l’ami. Mais ensuite, ça me permet d’avoir un projet assez réaliste pour me servir d’exemple dans des formations ou des présentations.

Tu es un conférencier renommé, tu te rends dans de nombreux événements techniques : y-a-t-il des sujets que tu vois rarement abordés et sur lesquels tu aimerais en savoir plus ?

Tous les sujets sont couverts en conférence, au point où je me demande parfois de quoi je vais pouvoir parler qui n’a pas encore été abordé. Ce qui m’intéresse, avant tout, ce sont les retours d’expérience. Les histoires vraies.

Tu as longtemps été bénévole dans l’organisation de meetups PHP à Lille. Que penses-tu de la communauté locale et comment l’imagines-tu sur le long terme ?

La communauté de Lille, je l’aime à plein d’égards. D’abord, parce que chemin faisant, j’en connais une bonne partie personnellement. On se croise parfois en mission, chez un client, mais on finit toujours par se retrouver dans une des soirées organisées par l’AFUP ! Ma plus grande frustration, aujourd’hui, c’est que nous ne trouvions pas de lieu plus grand pour accueillir tous ceux qui souhaitent venir. On plafonne à 80 places, et à chaque fois tout part en moins d’une heure. Donc, si vous êtes à Lille, si vous avez un lieu pouvant accueillir 150 personnes, il faut qu’on parle !

Le speaker

Alexandre SALOMÉ
Alexandre SALOMÉ
Développeur depuis l’enfance, et dans le métier depuis 14 ans, Alexandre travaille essentiellement sur les technologies Web. Développeur, consultant, formateur ou architecte, c’est dans ces nombreux rôles qu’il a travaillé pour de grandes entreprises comme SensioLabs, BlaBlaCar, Auchan, ManoMano ou encore Decathlon. Alexandre travaille aujourd’hui chez Blackfire.io.

Autres interviews

La parole est aux speakers : Hervé BOISGONTIER

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

Un site internet pour répondre aux défis actuels : le GreenIT, l’accessibilité, la performance et le référencement

L’informatique se veut actuellement plus verte pour mieux respecter notre planète. Le GreenIT a fait son apparition depuis quelques années mais comment est-il possible concrètement d’éco-concevoir son site internet ?

À l’heure actuelle, notre société devient de plus en plus numérique (démarches administratives, échanges sociaux, achats…). L’accessibilité d’un site internet est importante, si l’on souhaite que personne ne soit exclu de cet univers numérique. Différents types de handicap (visuel, moteur…) sont à prendre en considération pour qu’un site internet soit accessible à tous.

Bien évidemment, un site internet se doit également d’être bien référencé et performant.

Au regard de ces quatre points de vue, sont évoquées différentes pratiques à réaliser ou à bannir lors de la conception ou de l’évolution de sites internet.

En ligne
19/06/2020
12:00-12:20

Quelles ressources conseilles-tu pour commencer à se documenter sur le green computing ?

Le livre « Écoconception web / les 115 bonnes pratiques » de Frédéric Bordage est une très bonne référence pour un développeur web se demandant comment il peut, à son niveau, participer à la protection de notre planète. Ce livre présente succinctement ce qu’est le green IT puis il expose sous forme de fiches les actions à mettre en œuvre. Chaque fiche explique la bonne pratique, ce qu’elle permet d’économiser (cycles processeur, mémoire, réseau…) et comment techniquement la mettre en place. Certaines bonnes pratiques conseillées sont faciles à implémenter et permettent d’économiser beaucoup de ressources. Il faut donc que nous prenions le réflexe d’y penser lors de la création ou de la modification d’un site internet.

Il existe également des outils permettant d’évaluer le niveau de Green IT d’une page internet. Par exemple, ecoindex.fr teste un certain nombre de critères et vous indique comment améliorer la page. Enfin, le site greenit.fr vous apportera une multitude d’informations sur la thématique !

Comment réussir à vendre au business du temps passé sur l’accessibilité d’un site, où le retour sur investissement peut paraître assez faible ?

Tout d’abord, pour les sites institutionnels ou d’une grosse entreprise, c’est une obligation légale ! Il n’y a donc pas le choix…

Dans les autres cas, il faut arriver à sensibiliser les décideurs avec les arguments suivants :
– Un premier argument est le suivant : en France, une personne sur cinq est en situation de handicap. Ce chiffre parait erroné mais cela est dû au fait que la majeure partie des handicaps ne sont pas visibles. Éviter de perdre 20% de son audience semble donc un bon argument.

– Un second argument : rendre son site plus accessible pour les personnes en situation de handicap est profitable à toutes et tous. Un site respectant les consignes d’accessibilité est mieux structuré et plus lisible. De plus, il arrive à tout le monde d’être en situation de handicap. Lorsque nous avons le soleil dans les yeux par exemple. Si les contrastes sont suffisants, nous arriverons quand même à l’utiliser !

Une dernière chose à avoir en tête est que certaines bonnes pratiques pour l’accessibilité ne prennent pas plus de temps. Utiliser par exemple une balise <nav> à la place d’une balise <div>

Dans son algo de référencement, Google intègre de plus en plus des critères de performances et d’accessibilité sur mobile. Est-ce que Google est un allié majeur pour rendre les sites performants et accessible au plus grand nombre ?

La parole est aux speakers : Alexandre RITTY

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

TYPO3 un cms open source prêt pour l'entreprise.

Dans notre monde connecté, le besoin des entreprises en applications web est grandissant. Bien que, pour coller parfaitement aux besoins "métier", les frameworks sont souvent à privilégier, les CMS offrent un écosystème de fonctionnalités prêtes à l'emploi dont il serait dommage de se priver, notamment quand il s'agit de diffuser du contenu vers différents publics. TYPO3, de par son architecture et sa philosophie, peut s'intégrer parfaitement à votre SI et pourrait bien être la solution qui fait le consensus entre les décideurs•euses (marketings, chefs de projet, ...), les développeurs•euses et les contributeurs•euses.

TYPO3 est l'un des leaders sur le marché des CMS PHP Opens source, notamment sur les sites institutionnels et des grandes entreprises. Et ceci grâce à un panel de fonctionnalités natives qui savent se rendre indispensables, une communauté et une core Team dynamiques, accessibles et impliquées, une grande adaptabilité encore facilitée par la gestion des paquets et une roadmap claire, rigoureuse et qui suit au plus prêt les standards et recommandations de programmations.

En ligne
03/07/2020
16:45-17:25

TYPO3 n’est pas un CMS qui fait actuellement le buzz. Pourrais-tu nous indiquer comment tu as découvert cet outil ?

Effectivement TYPO3 n’est pas un CMS à “buzz”, mais il a toujours (depuis sa création en 97) été présent dans l’écosystème des CMS les plus utilisés. Tout du moins pour les sites ayant beaucoup de pages et/ou de contributeurs avec des droits différents.

Et donc c’est à l’occasion de la reprise du site d’un conseil général en 2010 que j’ai été amené à l’utiliser pour la première fois…. Et même si la prise en main a été un peu compliqué au début, je me suis rapidement rendu compte des possibilités de TYPO3 et désormais on le conseille à nos clients au sein de notre agence.

Quelles sont, pour toi, les meilleures ressources, documentations pour débuter sur TYPO3 ?

Je m’attendais à ce genre de question, tant il souffre encore de la réputation d’être confidentiel et compliqué à prendre en main, notamment parce qu’il y a 6-7 ans il n’y avait pas de documentation officielle (du moins pas en anglais) et donc il fallait glaner des informations un peu partout … ou parler allemand.
Mais désormais la documentation officielle (https://docs.typo3.org/Home/GuidesAndTutorials.html) est très bien faite et complète … Peut-être un peu trop complète pour “débuter” … donc disons :

Pour la prise en main et connaître les conceptions / terminologies de base :
https://docs.typo3.org/m/typo3/tutorial-getting-started/master/en-us/Index.html
https://docs.typo3.org/m/typo3/tutorial-editors/master/en-us/

Et pour découvrir les joies de l’intégration et du développement sous TYPO3
https://docs.typo3.org/m/typo3/tutorial-sitepackage/master/en-us/
https://docs.typo3.org/m/typo3/book-extbasefluid/master/en-us/

Et bien sûr il y a également la communauté qui est très accessibles et enclin à aider les débutant·e·s, sur Slack par exemple (https://typo3.slack.com/) où on trouve même un channel dédié à la communauté française … même si on n’est pas encore très nombreux.

On compare souvent les CMS (Content Management System) à des Playmobils là où les frameworks sont comparés à des Legos. Où se situe TYPO3 qu’on voit souvent qualifié de CMF ? (Content Management Framework)

Je ne suis pas tellement d’accord avec cette comparaison ou alors les CMS seraient plutôt un Lego déjà construit : si tu veux lui ajouter une fonctionnalité (un “morceau”), tu peux complètement l’intégrer (ajouter des briques sur ton élément de base) et tu n’as pas juste à la poser à côté (comme pour un playmobil)…. Enfin tout du moins pour les CMS Open Source naturellement.

A partir de là, tous les CMS Open source peuvent être qualifiés de CMF puisqu’ils offrent une bibliothèque de fonctionnalités (articulées autour du rendu de contenu) que l’on peut étendre en réutilisant les méthodes mises à disposition par le CMS.
Pour en revenir plus particulièrement à TYPO3, il est vrai que l’intitulé de framework lui va particulièrement bien de part sa structure, qui facilite le versionnage et le déploiement d’extension, sa complète intégration de composer, qui permet de charger et d’intégrer n’importe quel package symfony (ou autre) et de gérer les dépendances, et sa possibilité d’absolument tout configurer, voir de désactiver une partie des fonctionnalités/extensions du core (par exemple en choisissant de ne pas utiliser les classes de gestion du cache proposées dans le core mais en rattachant ses propres classes, ….)

C’est ta première expérience en tant que speaker, qu’est-ce qui t’a poussé à faire le premier pas ?

Déjà parce que TYPO3 est un produit auquel je crois et une communauté à qui je fais confiance. Et j’ai donc trouvé que c’était une bonne façon de participer à la communauté en faisant découvrir TYPO3 à un public qui n’aurait pas forcément fait le pas de lui même.

Et puis il y a la question du temps … quand j’étais le seul employé de l’agence c’était un peu compliqué de prévoir à l’avance les jours ou je pouvais me libérer pour préparer ce genre d’évènement. Maintenant que l’agence compte un peu plus de monde, c’est plus facile de se bloquer du temps pour pouvoir participer.

Le speaker

Alexandre RITTY
Alexandre RITTY
Développeur autodidacte, Alexandre a débuté dans le web au sein de Tribu and Co en 2010. Bien qu'amené à revêtir plusieurs casquettes au sein de cette agence, il s’est rapidement trouvé une affinité particulière pour le PHP. Friand de l’open source et d’apprendre, il s’est formé en s’appuyant et en étudiant de grands projets opens source.

Autres interviews

La parole est aux speakers : Cyrille GIQUELLO

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

Valider les données sans copier/coller

Je dois valider les données quand on me les présente via l'API, mais aussi via les Controller. Ah mince, je dois encore les valider sur le Client pour plus d'UX ... Hop, je vais copier/coller les règles. Non! Ce n'est pas bien ! Nous allons voir en application avec Laravel comment n'exprimer qu'une seule fois les règles de validation des Models et comment elles seront automatiquement exploitées dans le Back (PHP) et dans le Front (Javascript).

En ligne
03/07/2020
15:10-15:30

Tu fais partie des personnes qui poussent l’Open Source, comment ça se traduit dans ton travail et avec tes équipes?

Dans mon quotidien il y a deux façons de pousser de l’Open Source.

Il y a tout d’abord, et principalement, la contribution aux projets de code libre : tous ces logiciels et librairies que nous utilisons en permanence (et à tour de bras 😉 ). Quand on a perdu du temps à cause d’un manque de documentation, et bien en échange de tout ce travail que l’on n’a pas eu à faire, on prend du temps pour enrichir cette documentation ; Quand un bug nous rend fou depuis des heures, on prend (encore) le temps de le déclarer sur le bugtracker avec la description du problème, le moyen de le reproduire. Et si après des heures de surchauffe neuronale on a trouvé un correctif, on prend le temps de discuter sur le bugtracker, et mieux, quand c’est possible, de proposer un pull-request.
D’autre part, d’un aspect plus « politique », je propose toujours aux clients de publier nos travaux sous licence libre (et en open source). Ce n’est bien entendu pas toujours possible car des fonctionnalités (rarement techniques d’ailleurs) apportent une valeur concurrentielle que les clients n’ont pas envie de partager, ce qui peut se comprendre. Mais quand il s’agit d’un projet financé par des fonds publics alors là j’insiste très fortement pour que le travail réalisé soit « libéré ».
Les codes libres nous apportent énormément de savoir-faire, pour apprendre et gagner en compétence, pour l’utiliser et gagner du temps (et de l’argent), alors je trouve injuste de ne pas contribuer en retour par de la documentation, des corrections, des traductions…

Tu fais du Java, du PHP, et du JS. Que t’a appris le fait de coder dans plusieurs langages ?

Effectivement, ce sont mes 3 technologies de prédilection.

Alors « autrefois » quand PHP était bébé, il était vraiment un langage de « template » qui n’avait pas vocation à implémenter des règles de gestion mais de faciliter la vie pour construire des pages web. À cette même époque pour faire du Web, j’utilisais aussi le langage Perl pour lequel existait tout plein de packages super efficaces, ainsi que le serveur Zope en Python qui apportait le concept de « serveur d’application ». À l’époque, les dinosaures étaient déjà morts, mais PHP n’était vraiment pas dans le viseur des « informaticiens ».
Pour la « vraie » informatique j’utilisais Java qui fonctionnait partout, même avec AIX sur des main-frame IBM. Java apportait un langage objet fortement typé facilitant son industrialisation, un environnement de serveur d’application avec toute l’abstraction nécessaire à des services répartis et interopérables (ORM, RPC, SOAP, Message Queue, Cache, JMX…). Pour des éléments très spécifiques comme la cryptographie, le multi-threading, les communications inter-applications Java c’était le top. Avec JNDI on pouvait même lui ajouter du code en C/C++.
Et puis sont arrivés quelques créateurs de code autour du berceau de PHP, comme Zend Technologies (Zend Framework) et Fabien Potencier (Symfony), et l’histoire de PHP pouvait changer de cap. Je suivais les avancées, je commençais à réaliser des projets en PHP en complément des projets en Java, et je me suis retrouvé ainsi à pratiquer les 2 technos au quotidien pendant de nombreuses années. Mais depuis 3 ans c’est PHP qui a gagné mon quotidien et je ne fais quasiment plus de Java. Effectivement, les frameworks et le langage PHP ont tellement évolué qu’ils sont opérationnels pour des usages professionnels et industrialisés. Son éco-système est assez mûr pour remplir les mêmes missions qu’avec Java, même s’il n’a pas tous ses atouts.
Et pour le Javascript ? Dans les années 2000 on faisait du Front web avancé avec Flash (et son ActionScript) puis Flash est mort, alors je fais du Javascript, c’est incontournable.

Quelle importance donnes-tu à la validation des données dans le développement d’un projet ?

Ah! Le sujet qui fait « ch**r » les devs qui n’ont pas compris que le code c’est de la manipulation de données, et que ces données sont bien souvent la finalité de notre travail.

Plus sérieusement, aujourd’hui les projets sont fait de programmes multi-tenants: un peu de pages web, quelques scripts, des endpoints d’API et pourquoi pas quelques applis métiers. Une conception du code en architecture n-tiers est donc nécessaire, à minima selon le Model-Vue-Controller extrapolé à tous les étages. Les données se déplacent et se transforment au fil des échanges entre modules, librairies, SGBD(R) et autres acteurs ; ce qui rend nécessaire de s’outiller pour en assurer la maîtrise. Ajoutons la contrainte du « Time To Market » qui demande souvent des changements de structure des données.
Ma réponse est clairement : la validation des données a une importance primordiale.
Ma contribution à l’AFUP Day portera donc sur la capitalisation de cette validation des données : comment en éviter au maximum sa re-définition dans les différentes « couches » composant le projet. Je présenterai ma façon de penser et pratiquer la chose avec un exemple d’implémentation, en PHP of course, utilisant quelques librairies libres.

Depuis le temps que tu en fais, tu as dû en voir des vertes et des pas mûres: quelle est la validation la plus farfelue que tu as pu rencontrer ?

Je ne retrouve pas les farfelues dans ma mémoire, mais c’est sûr qu’il y en a.
Me revient à l’esprit:
– des visiteurs refusés par une plateforme parce que leurs noms chinois ne comportaient qu’un ou deux caractères ;
– la troncature silencieuse des `varchar` par MySql détectée qu’après plusieurs semaines de collecte de données …

Le speaker

Cyrille GIQUELLO
Cyrille GIQUELLO
Un intérêt certain pour des TICs et des hommes. Tombé dès son plus jeune âge dans la soupe à octets, c’est avec dextérité que Cyrille Giquello pourra interagir avec vos systèmes d’information, qu’ils soient hétéroclites ou classés EAL3, en créant du code en Java ou PHP à base de logiciels libres.

Autres interviews

La parole est aux speakers : Nicolas DE BOOSE

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

La clean architecture : pourquoi ? Comment ? Pour qui ?

Les frameworks et librairies externes sont une bénédiction pour les développeurs : cela nous permet de gagner du temps, d'utiliser du code (généralement) de qualité, et de nous concentrer sur ce qui est vraiment important: la vraie logique qui rapporte de la valeur!

Cependant, tout vient avec un coût...

A y regarder de plus près : qui est vraiment "le plus important" dans l'histoire? Le framework dicte ses lois: Vous devez "extend" ses classes, rajouter ses annotations, suivre sa structure de dossiers, etc... C'est une sorte de mariage forcé. Au début, tout est beau... Mais un mariage, c'est fait pour durer ! Quand la "mariée" décide de déprécier et ensuite supprimer ce que vous aimez chez elle (ou pire : elle n'est plus maintenue), vous vous retrouverez paralysé avec une version obsolète, par peur de casser votre fameuse logique métier...

Ca ne peut plus durer ! Dans ce talk, on parlera de tout ce que j'aurais aimé qu'on me dise sur la clean architecture avant de commencer

Comment controler le framework, plutôt que lui ne vous contrôle ? Comment arriver à ce que le framework et vos librairies ne soient qu'un détail d'implémentation ?

Vous aurez en prime : Du code clair Une architecture claire, qui fonctionne sur du back-en comme du front-end Du code facilement testable unitairement... Plus besoins de "booter" votre frameword pour tester vos vues Plus aucune peur de mettre à jour une librairie, voire de la changer

En ligne
26/06/2020
11:15-11:55

Ta conférence a déjà été donnée au Forum PHP 2019 et fut un franc succès. Sans spoiler ta conf, quels points vas-tu changer par rapport à ta prestation d’octobre dernier ?

Je ne pense pas que je vais beaucoup modifier les slides. Par contre, je compte parler plus en détails de certains points et moins m’attarder sur d’autres. J’ai eu des feedbacks constructifs après la conf d’octobre 2019 et certaines questions étaient récurrentes. Je compte bien m’en servir ! Peut-être que je rajouterai un peu de code, mais je dois encore voir si ca rentre « dans le flow » de la présentation. Le but étant toujours d’attiser la curiosité. En 40 minutes, c’est compliqué d’aller en profondeur sur un sujet vaste comme celui-ci.

Pour le Forum PHP 2019, tu avais bénéficié d’un accompagnement par un speaker expérimenté. Quelles leçons retiens-tu de cette expérience ? Te sens-tu plus serein pour cette nouvelle édition ?

Oui, certainement! Premièrement car j’ai passé mon « baptême du feu » au sein de la communauté PHP et que les gens sont super accueillants et bienveillants… Ca aide vraiment à lâcher la pression! J’ai aussi eu droit à un super accompagnement via Vincent Chalamon. Il m’a donné plein de bons conseils et je le remercie encore d’avoir lu, relu (rerelu et rererelu…) mes slides non-finis et mes propositions parfois bancales. Ses remarques étaient toujours pertinentes et j’avoue que j’espérais parfois qu’il ne mette pas le doigt sur certains détails… Mais si 🙂 Il m’a bien aidé/challengé et grâce à lui, je suis super content du support de ma conf. Je recommande ce programme d’accompagnement à tout le monde ! De plus, un channel Slack était disponible pour tous les speakers, on a eu quelques partages/conseils intéressants.

As-tu déjà quelques idées pour tes prochaines conférences ?

J’en ai tout plein ! Mais j’ai également eu quelques refus à l’époque et ça m’avait un peu démotivé. Je me suis dit la « clean architecture », ce sera ma dernière et si ca passe pas, je resterai anonyme pour le restant de mes jours… J’ai bien fait d’insister 😀

Le speaker

Nicolas DE BOOSE
Nicolas DE BOOSE
Nicolas a découvert la programmation en 1997 en mettant en ligne ses premiers sites internet sur “multimania” et “citeweb”. Cette passion ne l’a jamais quitté depuis. Curieusement, chaque projet sur lequel il a été impliqué concernait du code legacy important. Il y a pris goût et adore “upgrader” le code ainsi que les équipes de dev. À part cela, il a une femme qu’il aime de tout son coeur et fait un peu de sport: kitesurf et tennis.

Autres interviews

La parole est aux speakers : Stéphane HULARD

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

Unplug the HTTPlug !

ll y a beaucoup de librairies qui permettent de faire des appels HTTP depuis nos applications. Parfois un projet utilise plus d'un "client" et il devient compliqué de savoir et contrôler comment ces appels sont déclenchés.

HTTPlug est un petit écosystème (librairies, adapteurs, bridges avec les frameworks, actif dans la création des PSRs…) qui peut aider à créer une abstraction autour du client HTTP. Il contient les adapteurs vers les librairies les plus connues (Guzzle, cURL, …) et adopte complètement les PSR7 et PSR18. En utilisant quelque chose comme HTTPlug, vous aurez la possibilité de normaliser le comportement et d'avoir un seul point d'entrée pour interagir avec les APIs.

Avec ce talk, l'objectif est de présenter l'écosystème, ses avantages, inconvénients et comment il peut aider votre projet à être plus solide.

En ligne
24/06/2020
15:15-15:35

L’arrivée d’un nouveau composant Symfony dédié à faire des appels HTTP a parfois été questionnée. Quel est ton avis sur cette pluralité et le nombre de librairies disponibles dédiées à cette tâche ?

Lorsque j’ai entendu l’annonce du composant HTTP de Symfony j’avoue avoir été très surpris au début. À une époque où l’interopérabilité est au centre des préoccupations, pourquoi créer un nouvel outil pour répondre à cette problématique courante dans nos projets et surtout pourquoi le faire un peu hors des sentiers battus ?
En effet les recommandations sur les messages HTTP (PSR7) et sur les clients HTTP (PSR18) avaient été acceptées quand ce composant est sorti et ont pourtant été un peu boudées au départ… La sortie de Symfony du PHP-FIG en novembre 2018, quelques mois avant l’annonce du HttpClient n’a clairement pas aidé.

Malgré tout, après avoir pris un peu de recul, lu un peu de code et vu les adapteurs pour les PSR j’étais rassuré. J’ai découvert dans ce composant une approche différente pour résoudre certaines problématiques (compatibilité HTTP2 et multiplexage par exemple) qui n’était pas disponible ailleurs à ma connaissance. Il a donc apporté sa brique à l’écosystème et a permis à toute la communauté d’avancer.

Le côté un peu “fermé” qui est induit par la création de tout ces composants sous la bannière Symfony ne me plait pas toujours mais la communauté derrière ce framework est tellement active qu’il est difficile d’y trouver à redire. Cependant je pense qu’il est important que tout ceux qui n’ont qu’une vision Symfony de l’écosystème découvrent les autres solutions qui leur sont offertes.

Pour terminer, je dirais que ça ne me gêne pas qu’il y ait pluralité tant que tout le monde est libre de s’appuyer sur la solution qui lui convient le mieux, quel que soit le framework qu’il a choisi pour l’accompagner.

Que ce soit pour des appels HTTP ou pour d’autres librairies, quels sont les critères de choix que tu regardes avant d’en utiliser une ?

Mes critères sont différents en fonction du contexte dans lequel je dois faire ce choix. Quand je travaille sur un projet perso, tout seul, je le fais souvent pour expérimenter. Dans ce cas je choisis les librairies avec lesquelles j’ai envie de jouer. C’est souvent celles qui ont une approche qui m’est inconnue ou que j’ai envie de tester qui attirent mon attention. Ça me permet d’enrichir ma vision de la programmation en la confrontant à celles des contributeurs derrières ces outils.

Par contre quand je travaille dans le cadre professionnel avec une équipe je vais plutôt me poser ces questions dans l’ordre :
– Est-ce que l’équipe connaît déjà cette solution et est à l’aise avec ?
– Est-ce que la librairie est correctement maintenue (mise à jour régulière, réponse aux tickets, activité en ligne) pour obtenir de l’aide en cas de besoin ?
– Est-ce qu’elle répond bien à ce dont nous avons besoin ? Qu’est ce qu’il y a en trop ? Qu’est-ce qui manque ?
– Est-ce que l’équipe pourra utiliser facilement ce nouveau code ?

Le reste n’est qu’une histoire de compromis. Intégrer un code tiers nécessite de le brancher correctement dans l’application et c’est finalement le dernier point. Si la librairie est trop compliquée à connecter dans le projet on essaie de se tourner vers d’autres solutions quand il y en a. Sinon la documentation est de mise pour décrire cette complexité.

Tu interviens lors du programme de mentorat, quels retours peux-tu nous faire à ce sujet ?

Effectivement, j’interviens depuis plus de six mois maintenant dans ce programme. J’ai eu le plaisir d’accompagner deux personnes, avec lesquelles ça s’est bien passé (et ça continue de bien se passer). Les échanges autour du métier, des contraintes, des évolutions, du code ont été très enrichissants pour moi et je l’espère pour eux.

Le mentorat est très intense pour les deux parties, mentor comme mentoré·e car il nous met face à la réalité. De mon côté, je confronte mes points de vue, idées et solutions à de nouvelles situations ce qui me permet de continuellement me remettre en question. Expliquer des choix est un bon moyen de se rendre compte qu’ils sont perfectibles ou qu’il existe aussi d’autres chemins pour atteindre le même but. De leur côté j’espère partager ma passion pour cet univers et leur donner envie de persévérer dans cette voie en les accompagnant de mieux que je le peux !

Il y a tellement de belles choses à faire qu’il est important que tout le monde trouve sa place 😉

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.

Autres interviews