[:fr]La parole est aux speakers : Nicolas Grekas[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Les process qualité - le cas de Symfony

En entreprise ou pas, assurer la qualité d'un projet logiciel sur la durée est un challenge difficile. Parce que son code est ouvert aux yeux de tous, pour le meilleur et pour le pire, contribuer à un projet open-source est souvent l'occasion d'apprendre à revoir ses exigences. À travers le cas "Symfony", je vous propose une visite guidée des process mis en place années après années, écueil après écueil. Contributions, review, intégration continue, process de publications, politique de suppression de code, standardisation des pratiques, etc. Voyons ce qui, au delà du code, contribue de façon essentielle au succès du projet.

Comment as-tu découvert Symfony et rejoint sa communauté ?

À la sortie de mes études, j’ai co-fondé l’entreprise Webistem. Nous commercialisions (et elle commercialise toujours) des solutions Web destinées au monde de la recherche. À cette occasion – c’était l’époque – j’avais développé un framework PHP qui nous servait de base commune pour nos produits (les composants Symfony Debug, VarDumper et Polyfill en sont directement issus). Open-Source, il a été le prétexte à mes premières conférences aux forums de l’AFUP.

8 ans plus tard, j’avais fait le tour de cette expérience et je cherchais la suivante. Après une brève mission chez Qapa, j’ai frappé à la porte de SensioLabs, et Fabien m’a accueilli à bras ouverts. L’OSS et l’AFUP, c’est bien pour se faire connaître un peu. Depuis ce début décembre 2013 et mon premier commit dans Symfony, personne ne m’a dit d’arrêter, alors je continue.

(suite…)

[:fr]La parole est aux speakers : Benoît Merlet[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Les hexagones de la Ruche qui dit Oui !

Malgré une douloureuse ré-écriture en partant de zéro, le site de la Ruche qui dit Oui ! n'avait toujours pas d'architecture évidente permettant de faciliter les évolutions fonctionnelles et techniques. Afin d'éviter une nouvelle "big ball of mud" difficile à maintenir, l'équipe a décidé l'année dernière de procéder à la migration continue de notre architecture vers un ensemble d'hexagones. Chaque hexagone est en réalité un module bien borné et bien découplé au sein d'un monolithe, ce qui nous permet de ne pas céder aveuglément à la mode des microservices ! Voyons ensemble comment cette migration continue a débuté, quels sont les pièges à éviter et bien sûr quels bénéfices nous en retirons au quotidien.

Comment as-tu découvert l’architecture hexagonale et qu’est qui t’as motivé à proposer ce sujet ?

Avant la Ruche qui dit Oui !, j’ai travaillé pendant presque 10 ans en tant que consultant et j’ai dû faire face à des montagnes de dette technique.
C’est donc tout naturellement que je me suis intéressé à la discipline du génie logiciel dont l’un des objectifs est de réduire le coût d’entretien d’un projet informatique.
En chemin, j’ai fait la rencontre des termes SOLID, Design Patterns, DDD, CQRS, Event Sourcing, pour enfin découvrir l’architecture hexagonale.
Le voyage ne va certainement pas s’arrêter là, mais je pense que l’escale où nous nous trouvons à la Ruche qui dit Oui ! mérite d’être partagée.
J’espère que mon retour d’expérience fera prendre conscience à la communauté de l’existence de solutions contre la dette technique !

(suite…)

[:fr]La parole est aux speakers : Erwan Richard[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Développeur et protection de la vie privée

Entre les GAFAs et le monde fou de l'internet des objets, le numérique ne nous a jamais autant espionné et catalogué. Je me pose de plus en plus de question sur notre responsabilité en tant que développeur envers la protection de la vie privée. Avons-nous des alternatives ? Peut-on simplement refuser de développer une fonctionnalité qui nous dérange. Une conférence qui pose des questions et ouvre le débat.

Qu’est ce qui t’a poussé à donner une conférence « Développeur et protection de la vie privée » ? Ne penses tu pas que les développeurs sont déjà au courant de ces problématiques ?

Ma femme m’a demandé récemment en voiture « Mais pourquoi tu installes tous ces systèmes d’analyses sur tes projets alors que tu les bloques à la maison ? ». Cette question m’a vraiment fait réfléchir. Je passe un temps fou à protéger ma vie privée et celle de mes proches mais sur mes projets clients j’installe Google Analytics sans même réflechir.
J’ai fêté mes 10 ans d’expérience en 2016 et ce n’est qu’aujourd’hui que je m’interroge sur les outils que j’utilise ou que je conçois. Je pense qu’on est tous conscient des enjeux au niveau personnel, mais on se rend pas compte qu’on est les plus capable de faire bouger les lignes. On a une grande responsabilité !
Depuis cette prise de conscience on travaille en interne au Phare pour chercher des alternatives et avoir un discours pédagogique envers nos clients. L’arrivée de la GDPR, la nouvelle régulation européenne, l’année prochaine est un bon point d’accroche, mais techniquement tout reste à défricher, personne ne sait vraiment quoi faire.

Ma conférence est un point de départ pour discuter de l’éthique de notre métier, des alternatives dont nous disposons et de celles qui restent à inventer. C’est presque une thérapie de groupe en fait 🙂

(suite…)

[:fr]La parole est aux speakers : Jonathan Van Belle[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

git, vers l’infini et au-delà!

git, la plupart d’entre nous l’utilise, on a tous une connaissance plus ou moins vague de git : commit, merge, push, pull et éventuellement des rebase ou encore des stash. Je ne vais pas vous parler de cela! Ce que nous allons voir c’est comment étendre git, comment faire en sorte que dans votre flux habituel de travail git soit là pour vous épauler avec quelques petit trucs et astuces. En gros, nous allons voir comment, au travers de git, créer des plug-ins vous permettant de vous épauler au quotidien, et tout cela dans notre langage favori ! Que cela soit pour votre boulot, pour vous, pour vos projets open source ou encore pour passer de l’un à l’autre, je vous garantis que vous repartirez avec de l’extra et que vous ne voudrez plus vous en séparer.

Tu participes à plusieurs projets open source (en ce moment atoum et HOA project). Quelles sont les raisons qui t’ont motivées à t’impliquer dans ces projets ?

Ce sont effectivement les deux projets open source sur lesquelles je travaille le plus, actuellement. Deux projets particulièrement motivants.
atoum est un outil très particulier, et de sa particularité il amène plusieurs défis. Défi technique, de par sa nature de test unitaire, où l’on doit pouvoir d’un côté analyser le code exécuté, et de l’autre fournir une plateforme permettant d’aider le développeur dans son quotidien. Défi de documentation, où il faut rendre les choses le plus explicites et claires possible. L’ensemble doit aussi tenir compte des derniers avancements de PHP lui-même. C’est l’ensemble de tous ces points, ainsi que l’équipe du projet qui me motive dans cette implication.
Hoa c’est différent. En travaillant sur atoum, j’ai eu l’occasion de discuter avec Hywan lors de son doctorat. Il travaillait notamment sur une extension pour atoum permettant d’intégrer praspel. Il fallait des tests, j’ai donc fait des retours et découvert hoa de cette manière. De fil en aiguille, voyant la qualité du projet j’ai commencé à contribuer. D’abord par des idées, puis des petites choses simples. Le travail sur hoa que j’effectue est plus un travail d’idée et de réflexion.
Dans les deux cas, il s’agit de projets de qualité, avec des gens motivés et très sympa!

(suite…)

[:fr]La parole est aux speakers : Frédéric Bouchery[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Refacthon

Vous savez ce qu'est le refactoring, mais connaissez-vous le refacthon ? Normal, c'est un terme que nous avons inventé chez Figaro-CCMBenchmark et qui consiste en des séances de refactoring en groupe comme on pourrait le faire lors d'un "mob programming". Il y a d'énormes avantages à pratiquer régulièrement le refacthon, et nous vous proposons d'en faire un en live (petites perles de code PHP en prime).

Ta conférence est intitulée « Refacthon ». Peux-tu nous décrire ce terme que tu as inventé ?

En dehors de sa racine « Refact » en référence à « Refactoring », ce mot n’a pas franchement d’étymologie précise. Cela sonnait bien à mon oreille. Il y a bien eu une tentative de renommage par un membre végétarien de l’équipe en « refactomate », mais nous sommes restés sur ma première idée. Lorsque j’ai imaginé ce rituel, je cherchais à créer un bon esprit d’équipe, avec de l’échange et du transfert de connaissances. J’ai bien essayé de proposer du coding dojo, mais sa mise en oeuvre nécessitait un peu de temps, que nous n’avions pas, et si on faisait ça sur le temps du midi, comme beaucoup le font dans d’autres entreprises, cela demandait un engagement sur le temps « perso » qui n’était pas toujours conciliable avec les activités de chacun. Il fallait donc monopoliser la totalité des 7 personnes de l’équipe sur un temps court, pendant les heures normalement affectées à nos projets, et le « Refacthon » est né. Je n’en dirai pas beaucoup plus, car je ne souhaite pas trop dévoiler avant le Forum PHP comme cela s’organise. Sachez seulement, que cela fait 1 an que nous le pratiquons, et quand notre séance ne peut pas se faire pour des raisons d’organisation, les développeurs râlent et demandent à le faire un autre jour pour « compenser ». C’est pas un signe de motivation, ça ?

(suite…)

[:fr]La parole est aux speakers : Kevin Nadin[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

La génération de dates en PHP

Les dates en PHP peuvent être en apparence simple d'utilisation, mais il existe plusieurs comportements inattendu généralement méconnu des développeurs, des méthodes pratiques et des pièges dans la génération de dates. Cette présentation permet de voir comment générer des dates simplement en utilisant des timestamps, en utilisant l'objet DateTime, les Timezone, et lors de ces revues nous verrons les pièges lié à ces fonctions. Nous finissons avec la résolution de demandes réelles à but financier ou pour du reporting.

Tu vas nous parler au Forum PHP 2017 de gestion de dates en PHP, quels sont les problèmes les plus rencontrés avec la gestion des dates ?

Les soucis les plus fréquents apparaissent lorsque l’on souhaite récupérer des dates passées dynamiquement, comme par exemple récupérer le numéro du mois précédent, ou la date du lundi de la semaine passé. Les fonctions que l’on utilise qui récupèrent ces dates facilement sont pratiques mais elles contiennent des comportements qui sont sources d’erreurs, il est donc important de les connaitre.

(suite…)

[:fr]La parole est aux speakers : Larry Garfield[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Software Management Lessons from the 1960s

"The Mythical Man-Month" is one of the seminal books in the field of software project management. It was written in 1975, based on experience from the 1960s. Is it even still relevant? Turns out, it is. Technology may have changed dramatically but people have not. Managing software projects is about managing people, not bits, and creative people engaged in intellectual endeavors are notoriously hard to predict and manage. (Just ask my project manager.) Fortunately, many of the lessons-learned Brooks' presents are still relevant today. Some are directly applicable ("adding people to a late project makes it later") while others are valid with a little interpretation. Still others fly in the face of conventional wisdom. What can we learn from that? This session will present a modern overview of the ideas presented by Brooks and a look at what we can still learn from them even today.

There are 6 co-authors for the « Drupal 7 Module Development » book – including you. How do you manage to write a book with so many people?

Division of responsibilities. Each of us was responsible for 2-4 chapters, which we wrote more or less independently. I focused on the fields and entity system. Another author who was a front-end developer handled the front-end and theming chapters. Etc. Truth be told, I didn’t even see several chapters until the book was published and I got my author copies.

(suite…)

[:fr]La parole est aux speakers : Stéphane Hulard[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Télétravail et voyage, entre mythe et réalité

Adopter un nouveau mode de vie pour découvrir le monde tout en travaillant, est-ce possible ? Travailler dans le web c'est cool, il suffit d'un ordinateur et d'une connexion internet pour bosser de n'importe où, même sur une plage à l'autre bout du monde ! Mais adopter un nouveau mode de vie pour découvrir le monde tout en travaillant, est-ce possible ? Après cinq ans en tant qu'indépendant, on a décidé avec ma femme et mes trois enfants, de confronter le rêve à la réalité. Entre joies et galères, je vous raconte comment ça se passe…

Tu donne des cours à l’université Lyon 2 sur la gestion des entreprises. Peux-tu nous en dire plus ?

Suite à une validation des acquis pour obtenir un Master en juin 2014, j’ai rejoint l’université Lyon 2 en tant que vacataire. J’interviens auprès de trois promotions différentes sur des modules plus ou moins techniques (systèmes de gestion de contenu, workflow de développement et gestion des entreprises).

Concernant la gestion, je suis à mon compte depuis six ans maintenant et j’ai commis pas mal d’erreurs dans la mienne… Que ce soit le choix du statut, les règles à respecter ou encore la définition du tarif, les ressources disponibles ne sont pas toujours accessibles. Je profite donc de ces douze heures de cours pour partager mon expérience avec les étudiants. Comme je leur dis au début de l’année, je ne suis pas un expert comptable, mais je peux leur apporter ce qui m’aurait été utile pour mieux commencer…

L’objectif n’est pas de remplir des tableaux d’amortissement ou comprendre un compte de résultat, mais bien de les ancrer dans la réalité du quotidien d’une petite entreprise.

(suite…)

[:fr]La parole est aux speakers : Sébastien Le Gall[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

19 millions de recherches par jour @ Meetic

Un moteur d’indexation au pays des événements et des microservices. Comment maintenir à jour un index Elasticsearch quand le ownership des données à indexer est distribué à travers de multiples micro-services? Comment requêter un index sur la base de paramètres qui sont, eux aussi, fournis par d'autres services? Comment faire quand l’ordre de réception des messages de mise à jour de l’index n’est pas forcément l’ordre d’insertion logique des données? Pour répondre à ces questions, je raconterai l’histoire de Jon et Ygritte en suivant un ensemble de parcours utilisateurs emprunté par des millions de personnes tous les jours sur nos plateformes. Nous verrons comment orchestrer Kafka, Symfony et ElasticSearch pour répondre à une volonté de découplage des micro-services et à une problématique de maintenance en temps réel d'un index. A chaque étape, je présenterai les différentes options envisagées, nos contraintes (traffic, performance, robustesse) et les choix que nous avons fait dans une logique agile de développement itératif.

PHP est-il ton language de prédilection ? Tu as écrit des projets en GO, peux tu nous parler un peu de ce langage ?

J’ai commencé le développement avant les études supérieures, PHP est le premier langage que j’ai maîtrisé car c’est un bon outil pour se former et aujourd’hui je l’utilise au quotidien. Lorsque je suis rentré sur le marché de l’emploi, le NodeJS n’était pas aussi répandu qu’aujourd’hui. Mes premiers projets étaient donc basés sur des frameworks PHP. Avec l’expérience, j’ai cherché à travailler dans un environnement plus mature, sur des produits web plus développés et surtout dans une entreprise dont le business est centré sur son propre produit. Or, aujourd’hui, PHP est emblématique de ce type de produits. Quand on regarde les entreprises françaises du web qui réussissent – je ne parle pas de start-up aux 4 millions d’utilisateurs sans aucun revenu – ; lesquelles ne font pas de PHP? Blablacar, Deezer, Meetic, Dailymotion, etc. toutes ces entreprises ont mis en place et maintiennent du PHP au coeur de leurs systèmes.

Il faut être réaliste sur les forces et les faiblesses de PHP, et de façon générale sur tous les langages de scripting et/ou stateless. Je suis convaincu que PHP accompagné d’un bon framework – bien utilisé – est un choix judicieux pour développer un site web ou un web service, même aujourd’hui. Slack a d’ailleurs très bien su l’expliquer et je le vois au quotidien chez Meetic. Néanmoins, à l’heure de l’Agile et des équipes pluridisciplinaires orientées feature, il faut savoir laisser de côté le PHP et utiliser les bons outils pour les bons usages. Il m’est déjà arrivé de développer un worker (un consumer amqp) en PHP. Avec le recul… c’était l’horreur. Dans des cas comme ceux-ci, il faut se poser la question de l’outil.

Le développement ne se résume plus à écrire des lignes de codes sans prendre part à la conception et au contexte business du produit. Un développeur – d’ailleurs appelé « software engineer » dans les pays anglo-saxon – doit savoir « construire » un produit. Cela nécessite de développer des web services, mais aussi toute une gamme d’outils permettant de faciliter le développement, l’intégration continue, le déploiement, etc. Cette composante du développement logiciel se rapprochant du domaine de l’ops ne peut pas être satisfaite par des outils comme le PHP et relève pourtant de la responsabilité du développeur.

L’Agilité a mis en lumière l’intérêt des équipes pluridisciplinaires où chacun prend part dans toute la chaine de conception d’un produit. Cela ne fait plus sens d’être « développeur PHP » ou « développeur Java ». On est développeur tout court. Le choix de la technologie dépend de l’usage. À chaque use case le bon outil. C’est là que le Go entre en scène, pour ma part.

Comme tout autre langage, Go ne peut pas répondre à tous les problèmes. Mais, la nature même de ce langage le rend très adapté à beaucoup d’utilisations. La tendance montre néanmoins que Go est très utilisé pour développer des outils systèmes et/ou distribués. Une alternative pourrait être le python, mais au moins 3 raisons expliquent l’essor du Go dans ce domaine :
Sa syntaxe très proche des langages de scripting le rend très facile à écrire.
La cross-compilation permet des générer des binaires utilisables sur n’importe quel OS et contenant le runtime. (Ce qui a pour effet indésirable de produire des binaires très gros).
La gestion de processus concurrent extrêmement simplifiée permet de développer des outils très performants en quelques lignes seulement.
Par ailleurs, je m’intéresse de près à la logique de containérisation des applications. Docker ainsi que tous les outils permettant de distribuer des containers sont écrit en Go. Comprendre ce langage est un bon moyen de suivre les évolutions de ces technologies.

Néanmoins, si on me posait la question, je ne choisirais pas Go pour réécrire l’ensemble des microservices chez Meetic. À mon sens, il y a deux principales raisons qui expliquent pourquoi Go est surtout utilisé chez les « cadors ». La première concerne le système de gestion de dépendance : les outils existants sont bien moins matures que Composer. L’autre est liée aux designs pattern et à l’organisation du code : la communauté Go n’est probablement pas encore assez mature et de ce fait, aucune organisation de code ni aucun design pattern ne se sont vraiment imposés. Autant le code de Symfony et le code de Guzzle sont très proches, autant le code de Kubernetes et le code de Revel (framework full-strack en Go) n’ont rien à voir.

En attendant, je pense que Go est un bon choix pour développer des APIs REST servant à piloter des outils systèmes, des outils distribués ou bien encore des microservices effectuant une tâche simple comme cropper des photos en masse. »

(suite…)

[:fr]La parole est aux speakers : Joshua Thijssen[:]

[:fr]Jusqu’au Forum PHP 2017, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils aborderont lors de leur conférence !

La conférence

Paradoxes and theorems every developer should know

What do german tanks, your birthday and quantum physics have to do with our daily development work? It turns out, quite a lot! During this presentation, I will explain a series of mathematical theorems and paradoxes that we encounter every day during development, but we often fail to recognize. By using these theorems, we can create better code, find more secure and efficient solutions to our problems, and it even helps you out communicating with clients and project owners.

You are the author of a book on PHP’s SPL, what did you learn from that experience?

Writing a book is hard but grateful work. Knowing things and actually putting it on paper is not easy, just like presenting a talk about a subject. You need to completely understand your subject in order to be able explain it to others. I was always afraid that I added things in the book that didn’t were right but fortunately there was a team of proof-readers and technical experts who have found most of my mistakes 🙂

Besides the SPL book, I’ve written a few more books about the Symfony project, and even a book about starting with Python from a PHP developer’s perspective which are available on leanpub.

(suite…)