[: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…)

[:fr]La parole est aux speakers : Alexandre Balmes[:]

[: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 !

Les conférences

[ATELIER] Principes et Patterns du DDD

L'objectif de cet atelier est simple : faire en sorte que vous repartiez avec une architecture polyvalente, évolutive et permettant de couvrir petits comme gros projets. Si vous cherchez à optimiser vos POC sans forcément tout passer à la poubelle, si vous cherchez à créer de la récurrence entre vos projets ou encore si vous êtes juste curieux : cet atelier est fait pour vous. Pas de niveau requis, il suffit de connaître les bases du PHP. C'est votre souci du détail qui nous permettra d'explorer toutes les pistes.

Atelier sur inscription, disponible sur Eventbrite.

Signaux, process id et PHP

On a tous nos petites lubies et l’une des miennes consiste à maîtriser au mieux mes taches CLI (qu’elles soit exécutées via un cronjob ou non). Nous allons donc évoquer ce sujet avec une petite application en ligne de commande et des processus plus ou moins coûteux afin de voir comment améliorer la qualité de nos scripts PHP.

Tu vas nous parler de DDD au Forum PHP 2017. Comment as-tu découvert le DDD ?

Aussi loin que je m’en souvienne, c’est en 2013 comme beaucoup d’autres avec les séries d’articles de Mathias Verraes et William Durand. J’ai très vite enchainé en me plongeant dans la littérature associée d’Éric Evans, Vaugh Vernon et Martin Fowler. J’ai ensuite beaucoup expérimenté et j’ai essayé de me faire une idée plus concrète pour dépasser le buzzword.

(suite…)

[:fr]La parole est aux speakers : Audrey Neveu[:]

[: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

Le Streaming d'API : pourquoi ? comment ?

Nous savons que l’animation est essentielle pour l'interaction avec nos utilisateurs. Mais aujourd'hui l'interactivité ne peut plus se résumer à l’UX. Twitter, Waze, Slack … toutes les applications à succès utilisent le temps réel pour rendre leurs utilisateurs addicts. Mais comment faire pour transformer votre API statique en un flux de données temps-réel ? Du pull ? Du push ? Des Webhooks? Vous connaissez sûrement les Web-Sockets, mais avez vous déjà entendu parler de Server-Sent Events ? Dans ce talk nous comparerons ces technologies pour comprendre dans quel cas elles s'appliquent le mieux avant de voir comment on peut aller encore plus loin en réduisant la quantité de données échangées.

Tu fais partie de l’équipe d’organisation de Devoxx et Devoxx4Kids, peux-tu nous en dire plus sur ces événements ?

Devoxx France est la plus grande conférence de développeurs en France : nous accueillons maintenant 2900 développeurs pendant 3 jours au Palais des Congrès de la Porte Maillot chaque année. C’est un événement qui est né de la communauté Java, mais les développeurs de toutes les communautés sont les bienvenus pour soumettre des talks ! Quand à Devoxx4Kids, c’est une initiative ayant pour but de faire découvrir la programmation aux enfants : pendant une demi-journée ou une journée complète, les enfants vont pouvoir faire plusieurs ateliers pour apprendre les bases de l’algorithmie, à coder un jeu ou à programmer un robot à l’aide d’outils adaptés à leur âges. L’initiative lancée en 2012 est maintenant présente dans le monde entier.

(suite…)

[:fr]La parole est aux speakers : James Titcumb[:]

[: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

Climbing the Abstract Syntax Tree

The new Abstract Syntax Tree (AST) in PHP 7 means the way our PHP code is being executed has changed. Understanding this new fundamental compilation step is key to understanding how our code is being run. To demonstrate, James will show how a basic compiler works and how introducing an AST simplifies this process. We’ll look into how these magical time-warp techniques* can also be used in your code to introspect, analyse and modify code in a way that was never possible before. After seeing this talk, you'll have a great insight as to the wonders of an AST, and how it can be applied to both compilers and userland code. (*actual magic or time-warp not guaranteed)

How did you discover the PHP AST and what motivates you to talk about it during Forum PHP 2017?

I learnt about the the concept of an AST when Marco Pivetta (Ocramius) suggested we write a library using it to mimic the core reflection API in PHP but using AST instead. It prompted me to learn about lexers, parsers and so on, so my talk aims to help others learn about this really interesting topic.

(suite…)

[:fr]La parole est aux speakers : Kévin Gomez[:]

[: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

Log me now

Souvent insuffisants et au mieux mal organisés, les logs sont pourtant un composant essentiel à la compréhension et à la maintenance de nos applications. Entre les niveaux de logs mal utilisés, les messages incohérents ou instructions de log éparpillées dans tout le code… il devient vite difficile d'extraire quoi que ce soit d'utile. Et si nous prenions le temps de réfléchir à ce qui doit être enregistré ? Pourquoi ? Dans quel format ? Avec quelles informations ?

En parallèle de ta vie de développeur, tu donnes des cours à des étudiants : peux-tu nous parler de cette expérience ? Qu’est-ce que cela t’a apporté en tant que développeur et conférencier ?

J’ai enseigné pendant un semestre à l’IUT de Clermont-Ferrand, à une vingtaine d’étudiants. Le cours était sur le développement web, orienté PHP et bonne pratiques.

Un des challenges était de connaître le niveau réel des étudiants. En leur demandant s’ils connaissent quelque chose, ils vont généralement répondre par l’affirmative. Il ne faut donc pas partir du principe qu’ils connaissent le sujet mais plutôt les pousser à expliquer un concept.

Dans les cours, je me suis surtout concentré sur la démarche de développeur plutôt que des moyens techniques : par exemple savoir poser des questions aux clients, leur faire découvrir des concepts plutôt que des technologies, …

La grosse difficulté est de savoir quoi transmettre et comment le transmettre : après 4 ou 5 ans d’expérience, tout développeur à les compétences techniques pour être professeur, mais pas forcément la méthodologie pour enseigner.

Ce que cela m’a apporté en tant que développeur, c’est qu’il faut maîtriser à 100% les concepts qu’on présente : ça pousse à bien connaître et approfondir ses sujets avant de donner les cours (un peu comme quand on prépare une conférence). De plus, cela m’aidé à mieux savoir “vulgariser” pour mieux communiquer avec des personnes non techniques.

Les étudiants sont différents du public qui assiste à des conférences, qui est plutôt un public à la pointe, qui veut être là, et parfois il a plus de connaissances que le speaker : il n’y a pas besoin d’expliquer tous les concepts et/ou outils évoqués et les attentes sont totalement différentes.

Donner des cours à été très valorisant : voir des élèves progresser au cours de l’année donne tout son sens au travail effectué et au temps qu’on y a consacré.

(suite…)

[:fr]La parole est aux speakers : Amélie Duvernet[:]

[: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

Cocktail Temps-Réel pour l'Olympia

Un nouveau cocktail c'est tout un challenge ! Dans le shake-up, l'objectif est d'afficher en temps réel le compostage des places sur les plans de salle de l'Olympia. Savamment mélangé au comptoir de Digitick, cela donne un riche retour d'expérience sur ce défi à relever. Un contenu riche et même complexe, qui a été brillamment mis en oeuvre par une équipe super motivée. Une franche réussite au final. Nos ingrédients : PHP, AngularJS pour la partie plan, PHP, NodeJS, RabbitMQ, Redis pour la partie temps-réel. Ne pas oublier les saveurs originales : mise en place d'un système de bascule, en cas de perte de connexion du serveur NodeJS, gestion des piles de sièges suivant les filtres sélectionnés. La dégustation se terminera par une démonstration.

Tu as passé de nombreuses certifications : que retires-tu de ces expériences ?

Quel que soient les résultats, les certifications nécessitent une préparation, et j’ai pu lors de mes révisions, aborder des thématiques que je n’avais jamais rencontrées dans des cas concrets. Ca m’a permis de les découvrir puis de les ressortir dans d’autres situations. Sinon réussir une certification est gratifiant et permet de faire le point sur ce que l’on sait de son métier, et sur ce qu’on doit approfondir.

(suite…)