
Générer un site statique avec PHP grâce à Cecil
Durée: 56m5s
Date de sortie: 07/12/2022
Dans cet épisode, nous recevons Arnaud Ligny (Consultant fonctionnel & technique web, expert e-commerce), pour parler de Cecil, le générateur de site statique. Nous évoquerons aussi le langage PHP, l'évolution et quel est le niveau de maturité aujourd'hui de ce langage qui arrive à sa version 8.2. Retrouvez toutes les notes et les liens de l'épisode sur cette page : https://double-slash.dev/podcasts/cecil-static-php/
Bienvenue sur Double Slash, le podcast dédié aux outils et aux techniques pour le développement
web.
Bonjour à tous, bienvenue sur ce nouvel épisode de Double Slash, donc épisode spécial pour
parler de PHP et de Cécile, le générateur de systéatiques de PHP.
Et donc, comme d'habitude, je suis avec Alex.
Salut Alex.
Salut Patrick.
Et nous sommes avec Arnaud.
Salut Arnaud.
Bonjour messieurs, bonjour à toutes et tous.
Donc petit rappel, on a pas mal de trucs en ligne pour vous discuter avec vous, etc.
Donc on a le Twitter qui regroupe tout ça.
Vous allez sur le compte Twitter de Double Slash, Underscored Dev, et vous avez l'adresse
du Discord, l'adresse de YouTube, l'adresse de Twitch.
Donc tout ça est disponible et on vous attend dessus pour discuter avec vous.
Quand vous voulez, on les dispose.
Et donc aujourd'hui Arnaud, t'es venu nous parler de Cécile, ton générateur de systéatiques
que tu as créé.
C'est ça ?
Et on va te laisser te présenter en fait ton background, qu'est-ce que tu fais dans
la vie ?
En te laisse, c'est à toi.
Question vaste, donc je m'appelle Arnaud Ligny.
Je suis consultant fonctionnalité technique dans le web.
Donc je fais beaucoup d'accompagnement sur la conception, de la réalisation de projets
web, un peu de mobiles et principalement du vie commerce.
Donc j'ai une grosse expertise en commerce.
Je pose dans le web depuis 2005, donc je suis une vieille personne.
Donc voilà, avec un parcours assez varié.
J'ai fait du dev et au début de ma carrière.
Pas mal de thèmes, on PHP3, on a PHP3, des trucs bien vieillots, un peu de gestion de
projets, je le refais encore régulièrement.
Et l'aujourd'hui, je suis frilance depuis le début de la pandémie.
C'est le question de bosser tranquillement à la maison.
Et ça va peut-être changer.
Voilà, j'ai des pistes pour revenir dans le dans le monde du du CDI,
parce que j'ai envie d'avoir des des collègues au quotidien.
Voilà. D'accord. OK.
Et est-ce qu'aujourd'hui, tu étais encore sur du dev pur ou t'es plus sur la
mission de projet ? Non, non, je fais très peu de dev.
Je m'entretiens un petit peu en faisant des petits proto, des choses comme ça,
soit dans mon coin, soit avec des lits de dev, de manière à justement à sa porte,
quoi je parle, quoi, parce que si je demande de job, j'ai besoin de faire le
lien entre les des et les dev.
Donc forcément, si je ne sais pas de quoi je parle, ça ne marche pas.
Et aussi pour pour rester au fait des technos, des contraintes techniques,
de problématiques de performance, etc.
Mais d'un point de vue purement professionnel, non, je ne vends pas
ma capacité à produire du code.
OK. Voilà.
Mais néanmoins, néanmoins,
et nous, ça nous intéressait que tu viens de parler, c'est que tu viens de
sur double usage justement.
Malgré ça, tu es quand même l'auteur et le principal
contributeur d'un site, enfin d'un générateur de sites statiques qui est
fait en PHP qui s'appelle Cécile.
Tout à fait. Oui, c'est un vieux projet qui, enfin, un vieux projet.
Il y a de 2000 premiers releases, enfin, premier premier prototype,
pardon, en 2013.
Bon, en réalité, il y a des années où il ne s'est pas passé grand
chose du fait que c'est à la base un site project.
Donc quant à le temps, tu fais deux, trois trucs, etc.
Il y a eu des périodes où j'ai été très productif, etc.
Et oui, c'est vrai que ça m'arrive aussi malgré tout de contribuer à des
projets open source sur GitHub.
Donc je fais quand même du code par ci par là.
Ça m'a permis de toucher à notre JS, ce genre de chose.
Et je me suis bien amusé en faisant des extensions pour Chrome,
des petits outillages qui me servaient.
Je me dis, tiens, je pourrais apporter une petite contribution sur le GitHub,
soit sur la doc, soit un peu sur le code.
Et pour revenir assez si loin, c'est à la base l'idée,
c'était forcément quand tu te l'as dans un site project,
c'était de ne pas perdre la main et de me replonger un peu dans PHP.
Donc à l'époque, c'était pour récupérer mon niveau qui était vieillissant sur
PHP ou j'avais fait.
Mais oui, parce que malgré tout, quand même, dans mon job, j'ai été
lead developer sur Magento 1.
C'était du PHP 5 bien costaud.
Je suis assez souffert à une époque.
C'est tout le monde souffre sur Magento.
Est-ce que c'était l'époque où tous les assets étaient en XML et tout ça?
Oui, il y avait le flou qui avait un langage de template en PHP,
mais avec un système d'habillage de layout en XML.
Encore une fois, Magento, c'est une machine d'application hyper bien fichu,
mais hyper lourdain.
C'est à dire que le temps de prise en main, d'appropriation, etc.
Et à l'époque du démarrage de Magento 1, tu sortais dans ta cercle et t'allais
t'aller dans le truc pour essayer de comprendre comment ça marchait.
Donc tu plus rien ça.
Bref, l'idée aussi de Cécile, c'était aussi de me réapproprier PHP,
au sens large du terme.
Parce que quand tu buzz sur un framework, un instant T, tu es enfermé dans le framework.
Voilà, quand c'était que du PHP 5, du Zenfremwork, etc.
C'est pas très fun.
Et l'idée, c'était de me dire, je me replonge dans les PSR, les bonnes pratiques, etc.
Et c'était rigolo en fait.
C'était amusant de me dire, dans le monde moderne de PHP, on peut faire ça et c'est
trop bien, c'est hyper confortant.
Et bref, peut-être on peut contextualiser un peu Cécile, pardon.
Ouais, le fonctionnement de base, tout ça, comment ça fonctionne en fait.
Parce que là, tu nous dis 2013, quand même, ça fait partie des premiers générateurs
statiques, en fait, parce qu'il n'y avait pas beaucoup de générateurs à l'époque.
Ouais, c'est ça.
Ben d'ailleurs, c'est assez rigolo parce que quand j'en parle, quand j'en parle
aujourd'hui, je vais dire les jeunes, ça fait vraiment vieil de parler comme ça.
Mais sans ne pas comprendre, parce qu'on a un écosystème hyper cool aujourd'hui.
Oui.
Il y a Gatsby qui est passé par là, Next, Nuxt, Eventy depuis, etc.
Mais à l'époque, on avait Jekyll, le papa, le précurseur.
Il y avait Jekyll, il y avait Middleman.
Moi, j'ai beaucoup joué avec Middleman en rubis qui était fortement dans la même
même de ça.
Oui, mais quoi si Metal Smith,
plein de petites choses comme ça plutôt cool, donc très orientés, vraiment purement
générateurs d'ocysystétiques.
Donc ça a muté après avec des solutions plus larges, plus versatiles.
Mais à l'époque, il n'y avait pas grand chose.
Et même Jekyll, si je ne dis pas de bêtises, était pas en version 1.
C'est toujours une version précédente à la version 1,
mais qui était utilisée en production.
Et Hugo, si je ne dis pas de bêtises,
donc la référence en termes de performance était en 07, je crois.
À l'époque, c'est les anciens qui se regroupent pour faire un podcast
sur l'ancien stade.
Oui, oui.
Mais c'était aussi ce qui m'a poussé, ce qui m'a
qui m'a lancé à bosser sur ce cycle.
Ça veut dire qu'il n'y a pas grand, pas grand chose.
Il y a quelque chose.
Il n'y a rien en PHP.
Il n'y a rien en PHP et surtout,
j'ai beaucoup utilisé Jekyll, mais
j'ai mis le ciment.
Jekyll, c'est quand même pour faire du blogging.
C'est-à-dire que c'est une notion de par défaut, tout est prêt pour faire
un moteur de blogging, pour faire un blog.
Et dès que tu veux faire autre chose, il faut gérer une notion de collection.
Tu commences à te tordre un petit peu l'outil, etc.
De l'autre, Hugo, impressionnant en termes de performance.
Déjà une belle couverture fonctionnelle à l'époque.
Beb avait déjà repris le bébé et était à fond.
Mais j'ai toujours eu du mal à rentrer en moteur de templateing.
Pour moi, à l'époque, c'était l'enfer.
Dès que je rebossais sur un projet en Hugo, je fais,
attends, il faudrait appréhender une langue de templateing.
C'est quoi ces trucs chelous ?
Enfin, c'était...
Et là, sur Cécile, ton choix, il a évolué depuis.
Parce que là, aujourd'hui, tu es à quelle version de Cécile ?
Je ne sais plus parce que je réalise énormément.
Je suis un psychopathe de la réalise.
La 6, non ? Il me semble.
J'ai regardé ce matin, la 6, non ? Je crois.
Je suis en 7, 7, 22.
En 7.
En 7, 22.
Vas-y, vas-y, vas-y.
Non, non.
L'idée, c'est de se dire.
J'avais lu un article là-dessus qui disait,
n'ayez pas peur, en fait, de faire de la réalise.
On en a parlé sur...
Redwood.
En fait, on en a parlé sur, justement,
sur un épisode de podcast où, justement,
aujourd'hui, tu as l'ancien de GitHub qui est passé chez Redwood
et qui dit, il ne faut pas avoir peur de faire des majeurs.
Il faut y aller, quoi.
Et s'il y a cette notion de versioning sémantique,
tout ça, c'est qu'il y a des raisons.
Et il ne faut pas créer de crispation avec un gros chiffre, quoi.
Oui.
Clairement.
Oui, oui.
Donc, au début, comme je disais,
les premières années, ce n'est pas passé grand chose.
Sa vie votait, etc.
À l'époque, le projet, c'était vraiment un mode side project.
Je teste des trucs.
C'est un peu cassé.
Je répare, j'expérimente des choses.
C'était surtout un gros terrain d'expérimentation par rapport à PHP.
Comme je disais tout à l'heure, de me réapproprier l'PSR,
vraiment jouer avec Composer parce que si on revient à mes expériences passées,
il y a encore une fois, ma gento, au début, il n'y a pas Composer.
Tu faisais tout à la papa et à reponger dans l'écosystème de PHP.
Mais c'est trop bien.
C'est hyper confort.
Et après, ça s'est accéléré.
Et donc, pour revenir sur le fonctionnement de base de Cécile,
pour ceux qui ne connaîtraient pas forcément bien les générateurs de Cystatique,
c'est assez simple.
On a d'un côté du contenu principalement écrit dans l'engagement de formatage Markdown.
Ça permet de faire des titres du gras, de l'italique, des liens, de l'image, etc.
C'est édite dans un editor texte ou un editor un peu assisté qui va faire de la prévue,
surtout ça.
Donc, on écrit du contenu.
Donc, ça peut être des pages de blog, des pages liées pour ce qu'on souhaite.
De l'autre, on a un petit peu de configuration pour définir un fichier YAML,
donc le nom du site, l'URL de base, l'auteur, éventuellement, la taxonomie, etc.
Et des templates qui sont écrit en twig.
Cécile s'occupe de fusionner tout ça.
Et on obtient un site web, pas des pages web, mais bien un site web complet.
Donc avec de la navigation, un site map, un RSS, des métadonnées pour les moteurs de recherche, etc.
Et ce site-là, donc, qui est statique, donc c'est du HTML, du CSS.
Éventuellement, on peut générer du JSON aussi statique à la demande.
On dépose ça sur un serveur web et on a un site qui fonctionne.
Voilà, c'est cool.
Et est-ce que...
Et est-ce que...
Excuse-moi, Patrick, est-ce que aujourd'hui, c'est un outil qui est quand même à destination des développeurs
où l'expérience est tellement fluide et facile
que quelqu'un avec des bonnes connaissances, on va dire, en gestion de fichiers, tout ça,
même s'il n'est pas dev, il peut utiliser...
La simple utilisation suffit à générer son site internet.
En clair, c'est pas que pour les devs.
Oui, mais c'était l'idée là-bas.
C'est que même si c'est un outil en ligne de commande,
donc forcément, il faut lancer un terminal et lancer un PHP, c'est-ce qu'il faut faire et une commande,
donc build, serve, new page, new site, etc.
Malgré tout, l'idée, c'était de garder accessible pour un keydom qui dit,
OK, moi, je sais écrire un markdown, je sais faire un petit peu de template-ing en Twig
parce que c'est hyper intuitif, donc je vais faire mon site avec ça.
Et c'était l'idée parce qu'il y avait quelques générateurs en PHP,
il y avait Spress et Sculpting qui est mort depuis,
mais qui étaient tout de suite fallait écrire des routes dans des fichiers PHP.
Et c'était pas l'idée, l'idée, c'était qu'une n'importe quel utilisateur,
à un moment où il a téléchargé le binaire, il n'a pas à se préoccuper de PHP,
c'est-à-dire que de base, il s'est généré un site juste en lancer une ligne de commande.
Donc finalement, le seul préroquis, c'est de ouvrir un terminal et lancer une ligne de commande.
Donc oui, l'objectif, c'était pas que ce soit restreint à des développeurs.
OK, bastez ma question, en fait, s'il fallait faire du PHP, tu vois, t'as répondu.
Si tu fais du PHP, tu peux un peu étendre les capacités de l'outil,
ou tu peux écrire à la main un générateur.
Il y a une notion, donc il y a une classe générateur dans Cecile
qui permet de générer de nouvelles pages à partir de n'importe quelle autre source,
donc un contenu que tu pourrais capturer sur une source extérieure,
un JSON, un fichier texte que tu veux, ou manipuler des pages existantes.
Donc tu as déjà une collection de pages générée à partir de Markdown,
et je ne sais pas, tu as une lubie, tu veux que tous tes titres soient écrits en capstock,
tu crains un générateur qui parcourt toutes les pages de la collection
et qui pâche tous les titres en capstock via la fonction PHP qui va bien
et qui est enregistre la collection correspondante.
Donc voilà, tu peux étendre avec un petit peu de PHP, c'est pas foufou, mais c'est possible.
Et Cecile est bien adapté pour faire des documentations, par exemple ?
Oui et non.
Oui et non, parce que la documentation est même de Cecile et fait avec Cecile.
Sur le site web, aujourd'hui Cecile.app,
toutes les documentations, c'est un ensemble de fichiers de Markdown
avec un petit moteur de recherche propulsé par Agolia,
une navigation inter des pages,
via un talk, table of contents généré aussi à la volée, etc.
Après, tu veux faire une documentation un peu travaillée
avec une notion de versioning, ou tu peux naviguer dans différentes versions.
Il y aura un moteur de recherche un peu plus poussé,
un niveau de profondeur plus élevé,
là tu vas atteindre les limites de Cecile.
Je te pose la question, parce qu'en ce moment,
il y a pas mal de générateurs de documentation,
comme Docusaurus ou Docus aussi.
C'est un challenge pour pas mal de projects open source,
d'avoir des documentations qui sont faciles à générer et bien faites.
Ce qui va peut-être m'aider.
Après, c'est l'idée aussi.
C'est l'idée aussi pour moi de manipuler des fichiers statiques.
C'est le fait de dire que la documentation,
finalement je peux l'écrire en markdown dans mon coin.
Et après peu importe le générateur,
tu auras des petites spécificités,
tu vas un peu orienter ton travail en fonction du générateur que tu utilises.
Mais finalement, tu peux commencer en disant,
au début je ne sais pas trop où je vais.
Je vois la structure de ma doc,
je sais que j'ai une dizaine de pages sur tel et tel thématique.
Je l'écris en markdown, j'en sais rien, moi Tipora par exemple.
Tipora, c'est mon éditeur de markdown Chouchou,
qui existe pour Windows Mac.
Tu fais un test avec sessiles, c'est cool, ça suffit, etc.
Tu atteins les limites de sessiles,
je vais passer sur docusorus parce que ça offre plus de fonctionnalités.
Et ce n'est pas perdu en fait.
Tu repars de tes fichiers markdown,
tu fais quelques ajustements et ça roule.
Pour moi, c'est aussi l'intérêt de cet écosystème d'outillage,
c'est de dire que tu distingues bien le contenu de la forme.
Mais de la manière dont tu vas naviguer à l'intérieur.
Et clairement, en termes de feature,
aujourd'hui, on voit sur le statique,
il y a le gros problème,
enfin, un des problèmes, en tout cas,
c'est la gestion des images que tu es obligé de régler.
Si on fait du statique, c'est aussi pour des raisons de SEO.
Voilà, on veut que notre page et notre site soient indexés.
Est-ce que sessiles donnent déjà accès à ça de manière native
ou il y a une possibilité de venir étendre un peu les fonctionnalités de sessiles
à travers des plugins ou des assets ou des modules extérieurs ?
Oui, c'est une bonne question.
C'est un sujet sur lequel je me suis pas mal arraché les cheveux en époque
de me dire, c'est quoi, jusqu'où je vais avec sessiles
en termes de capacité à manipuler des assets.
Forcément, en un moment, j'ai été influencé par Hugo,
où les devs sont dit, voilà, on va faire du lootillage
pour manipuler les images, etc.
Donc, ils sont allés assez loin et je n'ai pas voulu aller aussi loin.
Malgré tout, l'idée, c'était de dire,
ça serait quand même pas mal de ne pas dépendre,
pardon, d'une solution tierce pour la manipulation des images.
C'est-à-dire que le contributeur n'est pas à ce qu'il a la tête.
Voilà, il a une image pour illustrer,
plusieurs images pour illustrer son article,
son contenu, des images en 1200 par 1200.
Et il les dépose dans son contenu et il ne se fracasse pas trop.
On peut lui dire, bon, on pense bien à la réduire, quand même,
en 800 par 600, ça sera suffisant.
Et si tu peux la compresser aussi,
ça serait pas mal parce que machin, en termes de personnes.
Sur un nouveau format.
Voilà, et si tu peux aussi avoir une version en PNG,
une version en WP, ce serait aussi bien.
Bref, là, ça casse tout le workflow de travail pour le contributeur.
Donc, forcément, je me suis posé la question.
Je me suis dit, non, il faut que pour le contributeur,
ce soit transparent.
Il faut que lui, il puisse déposer une image avec la ronde visible,
enfin, le manipuler avec la
langage de formatage de Markdown pour afficher une image.
Donc, en estimation, à collat de description alternative,
par hantaises, URL de l'image,
soit en locale, soit en distant.
Et c'est tout.
Et après, il faut que ce soit un sessile qui manipule le truc.
Donc, j'ai étendu Markdown, donc c'est une libre PHP
pour manipuler du Markdown de manière à dire,
OK, quand c'est une image, en fait,
il y a le paramétrage qui va bien au niveau de ce sessile.
Donc, dans le fichier YAML,
tu dis, OK, j'active par exemple la conversion en WAP.
Donc, je veux que toutes mes images
aient soient converties en WAP.
Donc, pour les névégaiteurs vieillots, enfin anciens, pardon,
tu tu tu tu dois pouvoir afficher l'image en PNG,
mais pour un névégaiteur moderne, elle t'affiche en WAP.
Et ça, c'est fait de manière transparente au niveau de la balise HTML qui est générée.
Mais ça se fait au bide de ça.
Et ça, c'est exactement ce que ça se fait à la névégaition.
Non, non, non, non, ça se fait au bide.
C'est ça l'idée, c'est de dire au moment où tu builles le site,
on sait qu'il y a une image, on a le paramétrage qui dit
fait moins WAP ou plus loin encore fait moins une image responsive.
Donc, c'est si tu ne vas manipuler l'image,
enfin, tu vas manipuler la balise de manière à générer
du HTML propre avec les différentes tailles d'image
pour pour l'alerteur du du du,
du, je veux dire, de l'écran, pas l'écran, mais du de la
non de la, je l'ai bouillé le terme du viewport,
du viewport, merci.
Etc. Etc. Etc.
Et en termes d'options, au fur et à mesure, j'ai arraché le truc.
Donc au début, je me suis arraché l'écheveux sur la notion de responsive.
Ok, il faut resaiser l'image.
Ensuite, ça sera pas mal de la compresser.
Donc j'ai de la compression.
Ensuite, je me suis dit, ce serait pas mal aussi d'ajouter du WAP.
Donc pour chaque image responsive,
les différents déclinaisons en PNG ou en JP ou autre
et les différents déclinaisons en WAP.
Ensuite, derrière, éventuellement, on va ajouter une caption.
Donc j'utilise le titre de la balise markdown
pour en faire une fig, fig caption
avec le titre qui est affiché en dessous, etc.
Et ça, pour l'utilisateur, c'est quoi?
Tant transparent, lui, il écrit sa balise markdown.
OK, voilà.
Le texte alternatif, le lien va mon image, éventuellement un titre.
C'est ce qui se débrouille et ça me génère quelque chose.
Donc en fait, ça fait tout seul, quoi.
En clair, c'est toi qui s'est vraiment fadé et qui a fait tout le boulot
pour que justement, le contributeur, ça soit hyper facile et hyper fluide
pour justement, pour son site.
Et néanmoins, si on tombe sur un NNRV qui a envie de customiser un petit peu tout ça,
est-ce qu'il est obligé de forquer le projet ou il peut, en fait,
il y a des espèces de hoocs où on peut récupérer pour bypasser,
le modifier un peu, c'est compliqué.
Après, ma question, elle est papier,
c'est juste en fait, est-ce que toi, tu pars du principe
et le prisme de sesiles, c'est OK, on fait tout pour toi et c'est facile.
Par contre, dès que tu veux sortir des sentiers battus,
c'est beaucoup plus compliqué.
Oui, c'est une bonne question.
A une époque, j'avais commencé à initier un système d'événement
au sens de langage de programmation,
au sens de...
Voilà, on peut intercepter n'importe quel événement
dans le déroulé du cycle de vie de la génération d'un site.
Et je me suis dit, non, en fait, non, j'arrive pas, je m'embourbe,
ça devient une usinagasse pas possible.
Bref, j'ai abandonné l'idée et je me suis dit, en fait,
dans 90 % des cas, ce qu'offre, c'est en termes de fonctionnaliser,
c'est suffisant.
Après, j'ai commencé, voilà, comme je disais tout à l'heure,
malgré tout, intégrer une notion de,
peut-être on peut quand même être en la générateur,
ça serait intéressant.
Et là, je me pose la question de la capacité
à étendre les fonctionnalités de parseDN.
De parseDN, sauf que parseDN, c'est une l'IPHP qui est très performante,
mais qui est...
C'est un gros bloc, voilà, c'est un gros Fichier PHP.
Et tu as une problématique d'héritage,
c'est à dire que dès que tu veux que tu peux créer un plugin pour parseDN,
sauf que, du coup, c'est une classe qui est en tout.
Et du coup, du coup, il faut que tu appelles le parent à chaque fois.
Et dès que tu crains, nous fous faire un bref.
C'est...
Il y a une nouvelle version qui est dans les cuillots depuis quelques temps,
qui ne sortira à mon avis jamais,
enfin, j'en sais rien, peut-être un jour.
Et si je voulais offrir plus de capacité de personnalisation,
enfin, je change de solution peut-être pour utiliser celle de PHP League,
si je dis pas de bêtises qui est moins performante,
qui est moins rapide, mais qui est beaucoup plus facile à personnaliser.
Enfin, bref, non, aujourd'hui, pour répondre à ces discussions...
C'est une base, quoi, ouais.
Voilà, j'ai fait le choix de dire
les retours que j'ai eu des différents utilisateurs,
les besoins que moi j'ai par rapport aux différentes sites
qui tournent en excès-ciel, ça suffit, en fait.
Il y aura toujours un pour...
J'ai eu des cas de discussion avec des personnes qui ont dit,
« Ah, ce serait quand même pas mal qu'on puisse faire ça, ça, ça ».
Et je me suis dit oui, mais non, en fait,
c'est ça, ça déforme complètement l'outil,
où ça en sort la philosophie de base et ça me...
C'est tout, c'est toujours la difficulté.
Et pour avoir discuté sur le podcast avec différentes personnes qui font des livres,
en fait, ton prisme, il est...
Il est... C'est hyper important, quoi.
Parce que les gens qui l'utilisent,
ils vont l'utiliser aussi pour ce prisme-là,
ce choix volontaire que tu as fait.
Et en fait, toute évolution, après,
tu peux pas faire des virages à 180, quoi.
Donc, c'est super difficile.
Et, OK, en fait, ce qu'il faut comprendre,
c'est bien connaître la limite de l'outil
et qu'est-ce qui t'amène comme plus-value.
Et après, soit tu prends, soit tu prends pas,
mais bien comprendre le truc.
T'as parlé des contributeurs, des...
T'as pu échanger avec eux,
t'es un peu de chiffres sur les utilisations.
Est-ce que tu as une sorte de télémétrie
ou des choses comme ça ou pas du tout ?
Oui et non.
Donc, pas de télémétrie au domicile du terrain,
dans le sens où je ne tracte pas les utilisateurs.
Pour la rigolade, j'ai intégré ceci la WAPA-LISER.
Une petite solution, peut-être que vous connaissez,
c'est principalement une extension qui permet de savoir
quelles solutions sont utilisées sur un site web.
Donc, systématiquement, quand tu génères un site avec Cessil,
dans la leader, ça injecte générateur, Cessil, numéro de version.
Donc, ça me permet, quand je navigue sur un site,
de savoir si Cessil est utilisé et quelle version.
Donc, c'est tout.
En fait, ce n'est pas tracé.
Et quand tu vas sur le site de WAPA-LISER,
tu n'as pas de data parce qu'il n'y a pas suffisamment de milliers de sites
qu'utilise Cessil pour avoir des métriques.
Et j'ai pu avoir quelques infos à une époque où j'avais créé un starter kit.
Bon, Cessil, de manière à pouvoir créer un blog en deux deux.
Viens un thème clé en main et un petit starter
que tu pouvais déployer sur un hétlify très facilement.
Et du coup, je voyais le nombre de téléchargements de compositeur
parce qu'en fait, le starter kit, automatiquement, il y a compositeur,
il a été déchargé le thème principal.
Et donc, j'avais une sorte de télé-détrie indirecte.
Voilà, j'avais des stats de téléchargements du thème correspondant au starter kit.
Et du coup, il y a eu des milliers d'installations.
Sauf que, entre celui qui fait une testouille et qui ouvre jamais le truc.
Et puis qui le pousse en prod, c'est pas pareil.
Voilà, on est d'accord.
Donc, j'ai eu quelques retours.
Je pense qu'aujourd'hui,
à vue de nez en prod, je pense qu'il y a une centaine de personnes
qui utilisent Cessil du manure d'une autre, soit via un petit blog,
soit un site corpo ou autre.
Dans les actifs, j'en sais rien, en fait.
Et j'ai jamais eu volonté à dire, je vais mettre un tracker ou un quelconque truc.
Oui, bien sûr.
Oui, parce que tout à ce qu'on comprend bien, c'est que
c'est un projet à la base qui est site project.
Donc, t'es pas à temps plein dessus.
Tu sais à peu près combien de temps tu y passes de temps.
On va dire mensuel, semaine, je sais pas.
C'est par passe.
Donc, il y a eu des passes où je n'ai pas touché pendant des mois et des mois.
Et ça a vifauté.
J'avais autre chose à faire de ma vie.
Et il y a d'autres fois où j'ai une idée de fonctionnalité.
Je vais dire, ça serait trop cool.
C'est qu'il faut absolument que je fasse ça.
Et je pouvais passer des heures.
Je pouvais passer deux heures tous les soirs.
Et parce que je suis à fond, c'est trop cool et que ça prend forme.
Et il y a un petit côté un peu doudou.
Quand tu as une journée un peu compliquée au taf ou en perso,
ou tu es compliqué au sens le fatigant,
ou tu as envie de te changer les idées,
et tu as envie de faire ton truc à toi,
ou tu n'as pas de compte à rendre.
Ça marche ton mieux, ça marche pas.
Tu rattaches le lendemain, tu fais ton petit comit.
Tu dis, c'est pas grave, c'est pété, mais je m'en fiche.
Working progress.
Oui, oui.
Et c'est assez chouette d'avoir ce petit côté.
C'est mon projet à moi et je n'ai pas de compte.
Je fais ce que j'ai envie.
Je ne m'empêche pas de discuter avec les gens,
de prendre les bonnes idées, de dire que ça serait cool à ta raison.
Ça serait chouette comme fonctionnalité.
C'est par passe.
Il y a des fois où je vais t'autaquer,
je vais passer une à deux heures tous les soirs,
et d'autres fois je ne vais pas les toucher pendant des semaines,
voire des mois.
Et tu es tout seul sur la contribution aujourd'hui,
ou tu as des mecs qui t'ont soumis des PR,
que tu as mergé, ou que tu n'as pas mergé peut-être ?
Depuis que j'ai toujours des petites contributions par ci par là,
souvent de petits guers qui passaient,
c'est cool, tu es tous et c'est si,
j'ai identifié telle soucis, je t'ai fait une petite paire.
Et j'ai eu plus de feedback que ces derniers temps,
depuis que j'ai fait un petit talk au PHP Tour,
organisé par l'association PHP, la FUP.
Et suite à mon petit talk où je présentais ces styles,
j'ai eu des retours de jeunes développeurs,
et des contributions avec des PR plutôt cool,
donc soit que j'ai émergé directement,
soit qu'ils ont mis en évidence un défaut de conception.
Donc c'est un peu plus profond,
on a eu un petit échange d'iscution,
je me suis rapproprié le code,
j'ai modifié pas mal de choses,
et typiquement la dernière personne qui est contribuée,
je l'ai co-autorée avec la fonctionnalité de...
je ne sais plus si c'est spécifique à GitHub,
bref, quand tu fais un comite,
tu peux indiquer le handle de quelqu'un qui a apporté quelque chose.
Donc du coup, tu es là dans les traces des contributeurs,
et il apparaît dans les graves de GitHub.
En termes de contribution, ça reste assez léger.
Après c'est aussi une problématique plus globale à PHP,
c'est-à-dire qu'il y a beaucoup,
énormément de contributions sur des projets NAD.
Donc les projets PHP, c'est par petites touches.
Après, il y a plus de contributions sur des frameworks.
Parce que je pense que les utilisateurs,
enfin les devs ont pas de mon point de vue,
ont plus d'intérêt à contribuer à un framework
qui serait utilisé par plein de gens,
pour avoir des petits projets assez spécifiques.
C'est plus des gens qui l'utilisent,
qui disent, ah ouais, c'est cool,
ce projet, je l'aime plus,
et en plus je suis développeur,
et en plus j'ai envie de contribuer.
Après, est-ce que c'est pas...
Ouais, est-ce que c'est pas aussi dû juste
au langage de programmation et au framework qui en découle,
ou en fait l'écosystème NAD est fractionné
en plein de petits frameworks,
ou des gros frameworks,
ou en fait on a vraiment cette idée de paquets,
de fractionnement des fonctionnalités,
alors que l'écosystème PHP est très centré
sur des gros frameworks,
et donc ils veulent plutôt contribuer
aux gros frameworks pour tout inclure
dans la solution un peu qui fait tout,
alors que NAD est plus fractionné.
Donc je pense qu'en termes de contributions,
en fait ça résonne,
parce que l'écosystème est architecturé de la même manière.
Après, je peux me tromper,
c'est une analyse comme ça à deux balles.
Après moi-même,
quand je contribue à des projets PHP,
c'est plus sur des libres,
des petits modules que justement moi j'utilise avec Cecile.
Typiquement, il y a plein de choses
où je me suis dit, voilà, je ne fais pas réinventer la roue,
une configuration par exemple,
voilà, je charge un fichier YAML,
et ensuite j'exploite ce fichier YAML
via une notation en dot,
donc le racine, point sous-élément, point sous-sous-élément,
ça j'utilise une libre pour faire ça,
et j'ai contribué à Cecile libre,
parce que je me suis dit,
ouais, c'est cool, je l'utilise au quotidien,
elle est hyper confortable,
et ça fait moins peur aussi,
je pense que quand tu fais des contributions par petites touches,
de contribuer à une libre,
c'est plus restreint, plus accessible,
c'est plus facile, ça fait moins peur.
Mais la porte d'entrée est plus petite,
bien sûr, après on est intimement convaincu,
et on prône sur le podcast,
on peut le redire encore,
contribuer à l'open source même,
sur des micro trucs, des micro fonctions,
juste une méthode,
un bout de doc,
une explication dans la doc,
un schéma ou que ce soit,
mais ça apporte taquée,
carrément.
Est-ce que, parce que là tu dis,
tu as plus de contributions depuis que tu as fait le talk,
est-ce que aussi c'est parce que
peut-être que Cecile n'est pas assez connu,
parce qu'on en discutait avec
Sébastien de Docus O'Rue,
ce fait qu'il nous disait que
les gens qui font des projets open source,
ils obisent souvent un peu le côté marketing
pour faire connaître
l'outil en fait.
Oui, mais en fait, je m'en moque,
je veux dire,
c'est pas dans le web,
je bosse dans le web et
je connais très bien les pratiques de communication
et de marketing,
de mise en avant, etc.
Je pourrais me donner les moyens
d'avoir un compte twitter
Cecile underscore statique
qui soit très actif,
avec des captures d'écran,
des petites vidéos, des machins,
écrire des articles régulièrement,
mais non, je ne sais pas envie,
parce que je veux...
Ça m'arrange un peu,
que ça reste un projet
un peu sous les radars,
parce que pour avoir discuté
avec pas mal de contributeurs,
enfin de porteurs de gros projets open source,
arriver à certains seuls de popularité,
ça devient épuisant,
parce que tu as énormément de sollicitations,
dix chioux,
ah ouais mais ça, ça ne marche pas,
j'arrive pas à faire ça,
comment on fait ça ?
Donc beaucoup de demandes,
donc tu te retrouves à faire beaucoup de support,
pour des choses à la fois
qui potentiellement très intéressantes,
mais aussi très casse-pix,
et si Cecile montre
un peu de visibilité,
tant mieux, je serai fier, je serai content,
mais je vais pas forcément envie de la provoquer.
Donc après,
ça m'a pas empêché de faire un joli site,
j'ai pris du plaisir,
avec une jolie petite charte graphique,
un petit logo,
un truc sympa,
mais je ne pousse pas
la visibilité de Cecile aujourd'hui.
Et ok, mais après c'est assumé,
c'est hyper clair,
et ça résonne,
et c'est parfait quoi.
Néanmoins, est-ce que tu as quand même
une espèce de roadmap un peu,
en tout cas une direction
sur laquelle tu voudrais amener Cecile,
en tout cas en termes de fonctionnalité,
peut-être,
ou la suite, c'est quoi, pour Cecile ?
Juste, je me posais la question,
il y a quelques semaines,
en me disant,
parce que j'ai une toute doulisse,
une espèce de liste de fonctionnalité,
quand j'avais envie de contribuer,
faire un petit peu de code,
ou un peu de conception,
de me dire,
tiens, je pioche dans la liste de fonctionnalité,
je m'y colle,
et j'avais eu l'alentiment d'arriver au bout,
donc de me dire,
ah bah tiens,
j'ai fait le tour,
j'ai fait tout, c'est bon,
ça marche comme je veux, etc.
Et là, récemment,
en rembossant sur la migration
d'un gros site,
je me suis dit,
ah, il manquerait de telles choses, etc.
Donc, à l'époque,
j'ai une grosse roadmap,
en me disant,
j'ai une cookie-vide,
qui se contente de générer des pages HTML
à partir de contenus maragables.
Il faudrait,
qu'on le fait tout à l'heure,
pouvoir générer des images responsives
à la volée.
Ce serait pas mal aussi de pouvoir générer
aux supportés différents formats
de fichiers de sortie.
Je sais générer du HTML,
mais imaginons, je vais générer
un site map avec cml.
Est-ce que je peux le faire ?
Ah tiens, ça serait pas mal,
à l'aïe-go,
d'avoir différents formats de sortie, etc.
Donc, je vais monter une petite clise comme ça.
Aujourd'hui,
j'ai plus de roadmap
très structuré, très construite.
Néanmoins,
je m'oblige à rester
sur la philosophie de base,
à savoir ne pas sortir
de la distinction entre
le contenu et la mise en forme.
C'est mon laïc motif depuis le début,
c'est de dire,
je ne veux pas que le contenu
d'un site soit marqué,
c'est-à-dire,
je ne veux que le texte qui est écrit en markdown
avec son front-meter,
soit autonome.
C'est-à-dire que finalement,
au marque blanche,
tu veux repartir sur du Jekyll,
tu veux repartir sur du Hugo,
tu veux repartir sur du Next,
ce que tu veux,
avec deux, trois ajustements
au niveau du front-meter
de ton contenu,
parce qu'il y a toujours un petit peu de spécifique.
Malgré tout ton contenu,
que tu as passé des heures
à écrire en markdown,
avec des images,
éventuellement des vidéos,
ton titrage, etc.
Il n'est pas perdu.
Il n'a pas le retravailler,
il a le retransformé.
Et c'est à chaque fois que je...
j'imagine une nouvelle fonctionnalité processielle,
je vais... ok.
Il faut que le contenu reste
indépendant autonome.
Donc c'est d'ailleurs des sujets
que j'ai abordés avec Nicolas Wasey,
il n'y a pas très longtemps
par rapport à la manipulation d'images,
de se dire,
je veux que mon contributeur,
il n'ait pas à faire des trucs chelous,
enfin, bizarroïdes dans son markdown,
il écrit sa belle image,
éventuellement,
il ajoute un attribut,
via une accolade,
pour dire, voilà,
je vais resizez,
moi, utilisateur,
je sais qu'on immergait trop grand,
elle est en 1200,
je vais la passer en 300 par 300,
donc j'ajoute une petite accolade
pour passer un attribut.
L'argeur égale 300.
Et c'est tout.
Bref, donc pour revenir à la question de base,
j'ai... j'ai pu user ma roadmap.
Voilà.
Ok.
Ok, non mais très clair, hein.
Voilà.
Et comment...
Tout à l'heure,
tu nous parlais, justement,
de PHP,
de toute l'évolution du PHP,
ou toi, t'as vu, en fait,
toute l'évolution du PHP.
Est-ce que, aujourd'hui,
t'es toujours aussi confiance
sur ce langage-là,
et est-ce que tu trouves que les dernières versions
de PHP
ont amené une grosse valeur ajoutée ?
Ah, mais complètement.
Ah, mais je suis...
Je suis impressionné par l'évolution de PHP
ces dernières années.
À l'époque,
donc en 2013,
je me suis dit, ah tiens,
site project, c'est l'occasion idéale
d'apprendre un nouveau langage.
Je vais me jeter sur notre GES.
Et après, je me suis dit bah non,
c'est peut-être un peu raisonnable,
quoi, t'es jeune papa.
Voilà, t'as moins de temps libre.
T'as un vrai travail à côté,
t'as une vie de famille.
Est-ce que c'est raisonnable
de se lancer dans l'apprentissage
d'un nouveau langage de programmation
sur un site project,
ça a de base un site project,
en général, ça va rarement au bout,
parce que ça,
tu ne carrires jamais
ou tu n'as pas le temps.
C'est le principe de site project.
Voilà, je me suis dit,
soyez raisonnable,
restons sur un langage
que tu connais de base,
mais sur le quai,
il y a beaucoup de choses
qui sont arrivées.
Donc PHP 6 est mort entre 2,
mais il y a eu PHP 7
avec plein de choses.
Et depuis PHP 7 1,
j'ai l'impression que c'est...
c'est ouf,
ça ne fait que s'améliorer
le...
tout l'écosystème,
la communauté
et enfin, pour moi,
il y a en termes de qualité de code,
de documentation,
et vraiment impressionnant.
quand une fois,
tu as ta l'image du langage
un peu à la papa,
où...
à l'époque...
Très permissif.
Voilà, tu mets du PHP
dans du HTML,
du PHP,
tu fais des includes et hop,
c'est bon, c'est parti.
Aujourd'hui,
tu as un...
encore une fois,
un écosystème
qui est très qualitatif.
Je pense que les différentes
40 PSR,
qui amènent de la standardisation,
ont beaucoup apporté.
ça, c'était aussi un terrain de jeu
pour moi.
C'est-à-dire qu'à l'époque,
j'ai...
2013, 2014,
je me suis réapproprié,
donc, les standards,
les bonnes pratiques,
les nommages,
le style, etc.
Est-ce que, moi, je te coupe,
est-ce qu'on peut expliquer
les PSR, ce que c'est,
pour les gens qui ne connaissent pas?
Bah, en fait,
c'est des nommes enclatures
de...
de...
d'écriture du...
du code.
Principalement,
qu'on a été poussé
par la PHP fig,
que...
bon, je ne sais pas,
il m'est raccalé là-dessus,
mais, bref, c'est un petit consortium
qui vise à standardiser
un maximum de choses
sur PHP,
et ça a été accéléré
avec Composeur.
Donc Composeur,
c'est le...
le...
l'outil de gestion de dépendance
de PHP
et qui, selon une...
une...
une norme donnée
permet de...
d'installer des dépendances
à la volée,
hyper facilement,
mais pour que ça puisse fonctionner,
forcément, il faut respecter
ses standards.
Donc,
évidemment,
ça va te perdre,
c'est-à-dire que...
t'imposes des standards,
mais tu es...
tu es...
tu es récompensé
de respecter ses standards,
puisque ça te facilite ta vie.
Et...
toute cette partie-là,
enfin,
quand moi, je me...
je me la suis appropriée,
j'ai trouvé ça hyper cool.
Et c'est aussi pour ça
qu'au début de Cécile,
j'étais lent,
enfin, je produisais rien,
parce que je me disais,
non, je vais pas...
euh...
euh...
pardon, pissez du code
pour sortir des trucs
vite, vite, vite, non.
J'ai pris beaucoup de temps
sur la conception,
ou en fait, je griffonnais.
Je griffonnais des trucs,
j'allais lire des articles,
alors, ok,
telle bonne pratique
pour gérer une collection
de données,
ça va être ça, de dire,
tiens, je fais un petit comparatif
de performance entre gérer
une collection de données
avec un orai
ou des objets.
Et je vois qu'en PHP,
c'est plus performant
avec des orais,
parce que finalement,
par rapport à mes petites
données, c'est suffisant.
Ensuite,
la manière de décrire
correctement une classe
avec ces petites méthodes
publiques, privées, etc.
Toi, je me réappropriais
tout ça à l'époque,
enfin, j'ai l'impression
d'être un...
de revenir...
de revenir à l'école,
parce que...
à l'époque où j'étais dev,
je codais un peu
comme un cochon.
Je me suis dégrondé
par les dev pitons
qui fais mes synaps,
porte quoi ce langage, etc.
C'est quoi ça ?
Mais oui,
c'est quoi ce truc de sagouin,
non-tipé, etc.
Et aujourd'hui,
enfin, je trouve ça
et pour reprendre,
Alex,
ta question de base,
ouais, je suis...
enfin, je trouve que le langage
a énormément progressé,
c'est bien structuré,
est très propre,
a été...
est-elle épiquée plein de trucs,
forcément,
un autre langage
très réputé aujourd'hui,
en se donnant le temps,
mais en même temps,
en accélérant.
C'est-à-dire que là,
sur ces dernières années,
ça a vachement accéléré
que toute l'équipe
de...
de...
de contributeurs
qui pilotent le projet
et l'apparition aussi
de l'association PHP,
qui permet de rentrer
un peu d'argent
et de payer aussi ces gens-là,
quoi, qui bossent
depuis des années,
de manière gratose,
enfin, ils sont payés
par leur boîte
d'une manière ou d'une autre,
mais...
bref,
donc je ne regrette pas
du tout mon choix,
à l'époque,
d'être resté sur PSP.
Donc, une certaine maturité
aujourd'hui
que t'apprécies vachement,
quoi.
Ouais,
je prends du plaisir,
en fait, c'est-à-dire que
les fois où je me replonge
dans le code,
donc, à la fois,
je me remercie moi-même
d'avoir été rigoureux
sur l'écriture du code
à l'époque,
parce que
il n'y a rien de pire
sur un seul projet
avec de te replancer
dans du code cracker
ou là, c'est...
t'as pas envie,
t'as envie de dire
qu'est-ce qu'elle est le con
qui a écrit ça ?
Ah merde, c'est moi.
Ah, donc c'est bien écrit.
Yeah, mais alors que,
et inversement,
quand c'est bien écrit
et que tu penses
à une fonctionnalité
et quand je l'ai écrit,
c'est aussi conçu.
Quand t'as bien conçu un truc
avant d'écrire la moindre ligne
et que tu penses à une fonctionnalité,
tiens, ça serait pas mal d'ajouter ça.
Tu te plonges dans le code,
ah mais le terrain est déjà là, en fait.
J'ai tellement bien conçu le truc
sans me jeter des fleurs
que je peux implémenter
ces fonctionnalités
en dealing de code,
parce que je...
je...
je...
la construction...
bah voilà.
Et ça, c'est un truc
stratégique, quoi.
Bien sûr.
Et...
mais clairement,
et on voit trop de...
de...
de personnes,
tu vois, moi,
je fais de la formation
et dis, ouais, mais ça marche.
Ouais, mais en fait, là, ça marche.
Mais on bouge un truc,
et le micado, il tombe.
Il y a tout qui s'écroule, quoi.
Et...
et...
et en fait,
pour des personnes qui ne comprennent pas,
bah tu le dis, bah maintenant,
en fait, tu me le fais,
ou tu...
je demande ça en plus.
Ah, mais non, mais ça marche pas.
Alors, il refait.
Et puis après, tu dis, ah,
mais il faut ça en plus.
Et là, il refait.
Puis, il dit, non, mais vas-y, c'est pété.
Bah ouais, en fait,
prend un niveau d'abstraction
au-dessus et essaye de faire
un truc totalement générique
et je...
et là, je peux comprendre largement
ton plaisir que tu as à revenir
sur un projet
ou justement, ça a été futur pour, quoi.
Surtout sur du code
qui a été écrit en 2013.
Enfin, j'imagine qu'il a changé
depuis, mais...
Ouais, il y a pas mal de...
Mais ouais, il y a des moments aussi,
je me suis fait mal.
C'est-à-dire qu'il y a des fois...
Ah.
Non, je me suis dit...
euh...
Ouais, c'est correct,
ce que tu as fait là,
mais là,
il y a un gros chantier
par rapport à une vision
de fonctionnalité.
Ça sera bien d'arriver à ça.
Et pour arriver à ça,
il va falloir détricoter et retricoter.
Donc, je veux dire,
tu savais qu'à l'époque,
c'était suffisant.
Encore une fois, c'est...
c'est toujours un rapport
de temps, d'énergie,
d'épensée versus que ça te rapporte.
Donc, dès le moment,
tu fais des choix.
Donc, dans mon job,
c'est mon quotidien aussi.
Idéalement,
sur un projet,
il faudrait 3 ans
avec...
500 000 euros de budget
et tu dis, bah, non,
ton client, il a 200 000.
Et bah,
t'as 6 mois et bah,
tu te débrouilles pour que ça rend.
Tu fais des compromis.
Et bah, là,
c'est la même chose à moi,
André Chel.
Tu fais des choix.
Malgré tout,
il y a des fois où je me suis fait mal,
on me dit, oh, non, ok, stop.
On arrête, là.
On va se poser
avec une feuille incréion,
virtuel ou réel.
Mais il faut refaire la conception.
On va tout démonter.
On va reprendre.
L'expérience acquise
sur les 6 derniers mois
te fait dire que
ça serait pas mal de temps
de faire ça, ça, ça.
Et comme tu disais aussi,
Alex, c'est un...
mon job,
c'est aussi le message
que je fais passer au...
au dev,
le dev un peu plus junior
de dire,
t'as entend,
poser les...
enfin,
enlever les mains du clavier,
en fait.
Et posez-vous,
réfléchissez.
L'idée,
c'est pas forcément...
après,
quand tu bosses sur un produit,
tu peux aller très loin.
Tu peux viser vraiment
dans le futur.
Tu peux vraiment
surenticiper des choses.
Après,
il faut aussi être très anable.
Tu peux pas non plus surenticiper
et surenticiper peut te faire
partir dans des trucs
tellement
satisfériques.
Et complètement overkill,
quoi.
Que tu sors la marraine.
Exactement.
Il faudrait que ça fasse ça.
Donc, normalement,
il faut faire des compromis.
Malgré tout,
avoir une structure de base
bien conçue,
bien travaillée,
fait que derrière,
en fait,
c'est hyper,
hyper confort.
Et finalement,
l'énergie que t'as dépensée
au début,
t'as l'impression
d'avoir été très productif,
parce que tu sors pas grand chose,
et bien,
derrière,
les features,
elles sortent,
mais à la vitesse de la lumière,
et surtout,
c'est stable.
Pour moi,
c'est ça le plus important,
c'est qu'à la fois,
tu sors des éléments rapidement,
mais surtout,
très stable.
C'est à dire que
t'as pas,
tes tests n'explosent pas
à chaque fois que tu contribues.
C'est hyper intéressant,
ce que tu dis,
en fait,
parce que souvent,
on se plonge rapidement
dans le code et tout,
et là,
ce que tu dis,
de se poser,
en fait,
de décrire sur une feuille blanche,
n'importe,
et de réfléchir
avant de commencer le projet,
de code,
ça peut faire gagner du temps par la suite.
C'est hyper important.
Moi, j'aime bien faire les deux,
en fait,
c'est avoir un éditeur ouvert
et puis,
de me balader
sur des sites,
sur un peu de doc,
etc.
De voir ce que des gens font.
Ça serait pas mal de faire ça,
donc de testouiller,
avec des booblings de code
par-ci, par-là,
c'est toujours plaisant,
de pouvoir tester,
de renner le truc
et de voir ce qui se passe,
et d'avoir ça en mode
brouillon,
bac à sable,
et de l'autre côté,
avoir soit une feuille de papier,
soit un bloc note,
virtuel,
et de prendre des notes
et de structurer les choses,
en faisant,
et de faire un peu de tout.
Je vais commencer par ça,
parce que ça serait bien que je fasse ça,
sans que je fasse ça.
Mais ouais,
c'est important aussi
de le rappeler,
rappeler,
fais attention à ça les jeunes,
faites de la conception.
Non mais c'est hyper important.
Ok, on peut finir par deux questions,
enfin deux questions en une en fait.
Il y a pas mal de gens qui se reconvertissent
ou des juniors,
tout ça,
ou même des gens
qui veulent se mettre à PHP.
Et qu'est-ce que ce serait
ton conseil en fait
pour quelqu'un
qui voudrait commencer
à écrire en PHP,
un junior
ou quelqu'un en conversion.
Et deuxième question
qui est dans la même,
à peu près,
c'est la ravelle ou symphonie ?
Je réponds direct
à la deuxième question.
Symphonie,
parce que je connais
pas bien la ravelle.
Symphonie,
parce que,
parce que,
parce que très cool forcément.
Parce que t'es français ?
Il y a un peu de ça aussi,
je pense,
un peu de cheveux,
un peu de spiritus,
le cocorico,
et si on peut rayonner
l'international, c'est cool.
J'ai touché à la ravelle
à une époque
où je suis allé m'inspirer
de certaines choses
qui avaient été produites
par la ravelle,
parce que,
sur le cul à la,
à ma paix,
symphonie,
parce que historique,
parce que,
français,
cocorico,
parce que,
des compagnons,
utilisables à volonté
et plutôt bien documentés,
tu fais une recherche sur le net,
tu trouves tout de suite des choses.
Du coup, c'est hyper confortable.
Et j'ai mis à la manière
d'en s'écrire, en fait.
La philosophie,
sur la lecture,
des composants hyper accessibles,
ça va dans ma,
de ma manière de lire
du code
et de me l'approprier,
donc ça me va très bien.
Je me suis intéressé
à une époque à la ravelle,
mais forcément,
vu que je ne suis pas d'ave,
je ne me suis pas promis dedans,
j'ai eu l'occasion
d'en discuter avec pas mal,
dans mes anciennes boîtes,
avec des développeurs,
la ravelle, c'est trop cool,
t'as tout un écosystème,
tout est fourni,
c'est super bien,
et en effet,
oui, sauf que la ravelle,
c'est hyper calit,
la documentation,
et je trouve que c'est de la
turif,
c'est hyper propre.
Et comme vous l'avez juste avant,
je me suis inspiré,
typiquement,
pour la manipulation
des collections dans ce cycle.
Je vais les voir un petit peu
comment était géré
la libre collection
de la ravelle,
et je fais,
ah ouais, c'est bien pensé,
c'est hyper propre.
Donc j'ai envie de dire,
peu importe d'ailleurs,
je crois que c'est le,
pas bien potentiel,
qui disait,
en fait, peu importe,
fais ce que vous voulez,
en fait, on s'en fiche.
Testez,
testez les deux,
comparez,
faites des petits projets,
et gardez
le frein mort qui vous convient le plus.
En fait,
c'est pas un concours,
c'est plusieurs a de,
en l'occurrence,
dans l'univers de PHP,
plusieurs a de contributeurs,
plusieurs a d'utilisateurs,
et plus tout le monde sera content,
et tu peux passer de l'un à l'autre.
Et en vrai,
pour les gens en reconversion,
toucher au deux,
parce que
vous n'imitez pas.
C'est à dire que,
finalement,
il y a plein de choses qui sont
qui se recoupent entre les deux frameworks,
et si vous êtes versatiles,
vous trouverez plus facilement du boulot.
Et du coup,
ça permet aussi de répondre
à la,
d'enchaîner sur la première question.
PHP,
c'est un langage qui est assez accessible,
très documenté,
avec beaucoup de frameworks.
Commencer par la base,
je pense,
je pense que ça va te père aussi
avec les,
la formation,
quand tu es en,
quand tu es en changement de carrière,
c'est pas se jeter trop vite dans un framework,
qui fait tout de suite,
tout.
Commencer par les bases,
et des trucs très basiques,
comment gérer des routes,
comment on est,
HTTP, c'est quoi.
La logique d'inclusion,
de fichier dans PHP,
OK,
Composeur et compagnie,
c'est cool,
mais en vrai,
il se passe quoi derrière ?
La base,
toutes les bases.
Mais ouais,
je pense,
les fondamentaux,
les fondamentaux,
les fondamentaux.
Non mais c'est important.
Parce que le,
les PSL,
le,
non mais le jour où,
enfin,
quand tu utilises un framework,
c'est un,
il faut pas que ça soit l'améginoire en fait.
Il faut que tu comprennes ce que ton framework
fait,
parce que le jour où tu as une difficulté,
ou tu as un projet,
un peu de changement,
ou tu as la limite de tes capacités,
si tu subis le framework,
qui t'es foutu en fait,
tu peux pas t'en sortir,
alors que si tu maîtrises le framework,
tu dis qu'il y a les limites du framework,
c'est ça.
Là,
je vais aller au-delà des limites,
comment je peux faire ?
Est-ce qu'il y a des gens qui sont déjà posés la question,
comment ça marche,
de la libre,
qui lui-même a dû se poser ces questions-là, etc.
Donc voilà,
il faut et ne pas se limiter
à un framework en fait,
c'est-à-dire que je pense que c'est une grosse manerie,
quelque chose à l'engage de programmation,
en vrai,
c'est-à-dire que
il faut,
il faut avoir des affinités,
parce que tu as plus de plaisir,
ou de facilité à utiliser
tel ou tel framework,
mais de dire,
non,
non mais moi je fais,
je fais que ça,
et c'est cool,
oui c'est cool à un instant t'es,
sauf que,
on sait comment ça se passe
dans le,
dans le monde du web,
enfin,
on peut discuter
avec n'importe quel développeur,
un peu senior,
ça bouge tout le temps,
et le fait de se sur-specialiser,
je pense que c'est,
je pense que c'est néraire.
C'est un peu se bloquer sur un truc,
ouais, c'est cool.
Oui, pis c'est triste,
c'est triste parce que tu,
tu t'en feras dans ton petit monde,
t'as l'impression de maîtriser,
parce que t'es dans ta zone de confort,
mais finalement,
tu t'apprends pas
de forcément de nouvelles choses,
tu, tu,
alors que le,
encore une fois,
moi je fais pas beaucoup,
je fais du développement
pour m'amuser,
mais je discute de développement
avec,
sur des projets avec des devs,
c'est-à-dire que moi,
je suis au quotidien avec des,
des développeurs,
principalement,
PHP et Node aujourd'hui,
et,
et,
et tu dis,
ouais,
c'est cool dès que t'es un peu,
un peu de challenge,
de tiens,
il y a tel libre,
qui a l'air intéressant,
mais j'étais jamais touché,
qu'est-ce qu'on fait,
est-ce qu'on se lance ou pas,
mais si j'ai vu un tel,
qu'il a implémenté sur tel projet,
vas-y,
par exemple avec lui,
prenons le risque,
en mode proto pendant un mois,
si ça match tant mieux,
si ça marche pas,
bah tant pis, on jette,
et on passe à autre chose,
on aura perdu que un mois,
entre guillemets,
sur un projet de quasiment un an,
est-ce que c'est grave ?
Non, c'est pas grave en fait.
yes.
Merci Arnaud.
écoute,
super intéressant,
on a, on a,
on a fait le tour un peu de,
de PHP,
de Cécile,
de,
de ton retour,
d'expérience,
sur un peu justement ta,
ta, ta, ta séniorité,
ton expertise,
on va dire,
sur le dev
et donc c'est,
c'est super intéressant,
écoute,
je pense qu'on va rester là pour,
pour aujourd'hui,
un grand merci à toi,
à un grand merci.
À tous les auditeurs,
à tous les auditeurs
qui sont restés jusqu'au bout de l'épisode,
pensez à nous mettre
un petit like,
un truc comme ça,
pour nous soutenir
et ça fait toujours plaisir,
un grand merci Arnaud.
Merci beaucoup,
c'était très cool,
Je vais passer à un bon moment avec vous deux. Merci.
Super, merci.
Merci.
Ciao ciao à tous, ciao ciao.
Ciao.
A plus.
Ciao.
Retrouvez Double Slash sur vos plateformes de podcasts préférées et sur le site internet
du podcast www.slash-podcast.fr.
Sur le site, vous allez retrouver tous les liens de l'épisode, les références évoquées
durant l'émission.
Sous-titrage ST' 501
Episode suivant:
Les infos glanées
DoubleSlashPodcast
Double Slash, un podcast sur le développement web. Retrouvez-nous régulièrement pour parler de sujets variés tels que la JAMStack, l’accessibilité, l’écoconception, React.js, Vue.js, Next.js, Nuxt.js, le CSS et des retours d’expériences sur des implémentations.
Tags
Card title
[{'term': 'Technology', 'label': None, 'scheme': None}, {'term': 'Technology', 'label': None, 'scheme': 'http://www.itunes.com/'}]
Go somewhere
Les News pour décembre 22