[:fr]La parole est aux speakers : Guillaume Bouyge[:]

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

La conférence

De 6play.fr à une plate-forme internationale : retour d’expérience

Comment rendre compatible un modèle de données créé il y a 10 ans, qui n’a cessé d’évoluer mais qu’on doit conserver ? Comment traduire une application symfony ? Et côté front ? Comment garder la rétro-compatibilité de nos API et de l’ensemble de nos microservices ? Comment adapter nos back-offices, parfois legacy ? Comment échanger entre équipes, de métiers ou pays différents ?

Ce projet a été l’occasion de remettre à plat une partie de notre architecture, d’en faire évoluer d’autres.

Retour d’expérience sur sept mois de transformation pour passer d’un produit dédié à la France à une plateforme accessible dans quatre pays.

Katherine Johnson
25/10/2018
16:25-17:05

Tu es lead développeur à M6Web. Quel est ton quotidien à ce poste ?

Être lead développeur chez M6Web c’est à la fois gérer une équipe de développeurs, être à l’écoute des équipes produit qui définissent les besoins, savoir y répondre techniquement tout en respectant les budgets et concevoir les solutions.
J’accompagne mon équipe au quotidien dans leur travail. Je leur fournis les explications, l’assistance dont ils ont besoin pour mener à bien les tâches techniques sur lesquelles ils travaillent. Nous travaillons tous ensemble pour faire vivre la plateforme et faire en sorte que cette dernière reste à jour pour absorber la dette technique.
L’agilité nous permet d’avoir une autonomie complète sur la technique. Les product-owners (chef de projets) avec qui je travaille au quotidien l’ont compris et nous font confiance.
C’est un beau mélange entre technique et management qui me permet d’intervenir sur le produit de bout en bout.

(suite…)

[:fr]La parole est aux speakers : Matthieu Napoli[:]

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

La conférence

Serverless et PHP

Serverless et ses "functions as a service" nous promet des applications scalables et à bas coût. En réalité à quoi est-ce que ça ressemble vraiment ? Et comment merger l'écosystème PHP mâture avec cette nouvelle architecture et ses outils ? Est-ce qu'on peut y faire tourner des applications HTTP ou CLI ? Est-ce que ça marche avec Symfony, Laravel ou même PSR-15 ? Explorons les réponses à ces questions à travers des études de cas et le projet Bref, solution pour déployer PHP en serverless.

Katherine Johnson
25/10/2018
09:30-10:10

Serverless : pourrais-tu nous décrire succinctement ce nouveau paradigme ?

Serverless est une alternative au format d’hébergement traditionnel où nous payons pour des ressources (un serveur, un disque de stockage…) : dans un hébergement serverless nous payons pour des services. Par exemple un service de stockage de fichier (AWS S3 et similaires), des bases de données «  »as a service » », et bien sûr des hébergements «  »Function as a Service » » pour faire tourner ses applications.
La grosse différence : les services sont à la demande et se payent à l’utilisation. Finie la location d’un serveur 4 CPU et 8 Go de RAM, désormais on se contente de demander à l’hébergeur d’exécuter notre code et celui-ci allouera autant de ressources que nécessaires en fonction de la charge. Les promesses sont donc celles de scalabilité extrême et de coûts réduits. En effet, plus besoin de payer des gros serveurs à se tourner les pouces pendant les creux, et plus de problèmes de serveurs saturés pendant les pics. L’hébergeur se débrouille.
En tout cas c’est la théorie, et dans la pratique cela demande de revoir un petit peu l’architecture de nos applications. L’avantage c’est que PHP a une longueur d’avance sur le sujet !

(suite…)

[:fr]La parole est aux speakers : Benoit Viguier[:]

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

La conférence

Générateurs et Programmation Asynchrone: Mode d’emploi

Les générateurs sont souvent réduits à une simplification des itérateurs, mais ils sont surtout très pratiques et performants pour executer des traitements asynchrones. Nous aborderons le fonctionnement d’un programme asynchrone, le rôle des promises, et approfondirons l'utilisation des générateurs pour simplifier l’écriture de notre code. Enfin nous détaillerons des cas pratiques « prêts à l’emploi » pour tout type d’application, avec un retour d’expérience sur ce qui a été mis en place chez M6Web.

Katherine Johnson
26/10/2018
11:25-12:05

Comment en es-tu venu à utiliser les générateurs pour faire de la programmation asynchrone ?

Dans le cadre d’un nouveau projet chez M6Web, j’ai étudié quelques solutions techniques pour faciliter la mise en place de traitements asynchrones en PHP. Je suis rapidement tombé sur le framework Amp qui utilise les générateurs pour simplifier l’utilisation des Promises et ainsi éviter l’enfer des Callbacks. Pour moi ça a été un déclic car les générateurs sont une spécialisation des Coroutines, ils sont vraiment faits pour ça, il ne s’agit pas du tout d’un détournement maladroit d’une fonctionnalité de PHP. Ce mécanisme, déjà bien connu dans d’autres langages, permet d’interrompre l’exécution d’une fonction et de le reprendre plus tard : c’est le cœur de la programmation asynchrone. La documentation MDN des générateurs nous apprend d’ailleurs que les fonctions async de Javascript sont construites sur un modèle identique aux générateurs, exactement pour les mêmes raisons. En général, tous ceux qui ont travaillé un peu avec les Promises Thenable sont rapidement conquis par les avantages des générateurs pour la programmation asynchrone.

(suite…)

[:fr]La parole est aux speakers : Baptiste Langlade[:]

[:fr]Jusqu’au Forum PHP 2018, 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 temps: la dépendance oubliée

Il y a 2 pratiques qui sont maintenant bien ancrées dans la plupart des projets : l'injection de dépendance et ne pas utiliser d'état global. L'objectif est de produire un code plus maintenable, testable et prédictible. Pourtant l'utilisation de l'api du temps en PHP enfreint ces 2 pratiques, il est donc temps d'adopter le pattern de l'horloge.

Grace Hopper
25/10/2018
12:10-12:30

Injecter la dépendance temps : est-ce un concept difficile à vendre à une équipe de développement ?

Comme souvent la réponse est : ça dépend ! Ça dépend du domaine d’activité et de la maturité de l’équipe. Si le métier adressé n’est pas du tout sensible au temps, les gens vont avoir du mal à voir la plus-value de changer une façon de faire qui fonctionne bien (ce qui est compréhensible). En revanche dans le cas où le temps est une part importante du métier ça va dépendre de l’expérience cumulée de l’équipe. Si elle a souffert de bugs en prod ou de débuggage il sera plus facile de vendre le concept. Dans le cas contraire l’équipe ne verra pas non plus l’intérêt de changer une façon de faire qui ne l’a pas gênée jusqu’ici.

(suite…)

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

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

La conférence

Symfony/Messenger un composant à votre service !

Avec la sortie de Symfony 4.1 le 30 mai 2018, un nouveau composant officiel fait son entrée sur le marché : Messenger. Il s'agit d'une abstraction autour des files d'attente de message. Ce nouveau composant ouvre la porte à une nouvelle façon de travailler car les traitements asynchrones et la consommation des messages sont maintenant supportés nativement par Symfony.

Qu'est-ce que ça change ? Pourquoi un nouveau composant officiel ? Comment l'intégrer dans un projet ? Quels sont les connecteurs supportés ? Quels bénéfices dans la structure du code ?

Nous avons choisi de faire confiance à ce jeune composant et je vous invite à suivre nos pas à travers les exemples réels de notre implémentation.

Katherine Johnson
26/10/2018
09:30-10:10

Comment le composant symfony/messenger se situe-t-il par rapport à des initiatives comme queue-interop ?

C’est justement un des sujets que je vais aborder pendant la conférence. Le nouveau composant est sorti en compagnie d’un d’adapteur pour facilement s’interfacer avec les initiatives existantes. Pour être plus précis, je m’appuie sur le projet « php-enqueue” pour avoir accès à différents drivers (Redis, Kafka, SQS, …). Ce projet est une implémentation de « queue-interop ».

Pour autant ce n’est pas du tout obligatoire, Messenger est une brique donnant accès à la logique de bus de message. Libre à chacun ensuite d’utiliser les meilleurs outils pour les consommer !

(suite…)

[:fr]La parole est aux speakers : Vladyslav Riabchenko[:]

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

La conférence

SOLID : Les principes à l’origine du succès de Symfony et de vos applications

SOLID est un acronyme représentant cinq principes de bases de la programmation orientée objet permettant le développement de logiciels fiables, évolutifs et robustes. Le framework Symfony est un excellent support pour illustrer chacun de ces principes. Nous verrons ainsi que SOLID est à l’origine de sa flexibilité, sa fiabilité mais aussi de sa maintenabilité et son évolutivité. Nous verrons également comment appliquer ces principes pour améliorer son code métier et perfectionner l’architecture de son application.

Katherine Johnson
25/10/2018
15:15-15:55

Les principes SOLID sont-ils utilisables en entreprise ou est-ce une simple théorie ?

Lorsqu’on utilise le langage orienté objet tel que PHP on essaie de rester toujours en conformité avec SOLID. C’est d’autant plus visible quand il s’agit d’une bibliothèque réutilisable, d’un framework ou d’une logique métiers complexe.

Les principes SOLID aussi bien que les design patterns (e.g. ceux de GoF) sont issus de la pratique. Ils ont été extraits de l’expérience de création de milliers d’applications pour résumer les règles générales de bonne architecture. Dans le quotidien d’un développeur, SOLID favorise la création de modules réutilisables, flexibles, évolutifs et compréhensibles.

(suite…)

[:fr]La parole est aux speakers : Samuel Roze[:]

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

La conférence

Comment j’ai commencé à aimer ce qu’ils appellent « design pattern »

Il arrive parfois que nous, développeurs, pensions qu’il n’est pas nécessaire de connaître ce qu’ils appellent les « design patterns » ou « patrons de conception ». Nous pensons parfois que nous n’avons pas besoin de cette théorie. Après des années d’expériences avec la faible maintenabilité de mon propre code et de celui de mes clients, j’ai exploré de nombreuses façons de découpler nos applications afin de créer des applications « enterprise ready » qui peuvent vivre pendant de nombreuses années. Via des exemples concrets, je vais vous présenter quelques design patterns qui peuvent vous aider à travailler sur une codebase propre, structurée et bien découplée.

Grace Hopper
25/10/2018
09:30-10:10

Quels sont tes 3 design pattern préférés ?

Je dirais que cela dépend du contexte. Je n’ai pas de design pattern préféré, car ce sont juste des outils que j’utilise en fonction du cas d’utilisation plutôt qu’une liste de designs préférés. Ceci dit, celui que j’utilise le plus c’est le « Décorateur » que je trouve extrêmement puissant et très utile pour ajouter des fonctionnalités à un existant très simple. Typiquement sur une fonctionnalité de « retry » ou de logging: on pourrait l’ajouter à l’aide d’une boucle dans le code existant ou une ligne de code à de l’existant. C’est l’approche la plus simple mais elle n’est clairement pas réutilisable. À la place, on crée un décorateur qui permettrait d’avoir une fonctionnalité « plug-and-play », bien découplée et réutilisable.

(suite…)

[:fr]La parole est aux speakers : Arnaud Langlade[:]

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

La conférence

Quelle différence y a-t-il entre le bon et le mauvais repository ?

Qu’est ce qu’un repository? Le pattern repository est l’un des pattern les plus utilisés dans nos applications. Bien que simple et pratique il est trop fréquemment mal employé : nos repositories sont plus souvent des entrepôts de requêtes SQL que des “vrais” repositories. Durant ce talk, nous verrons comment désigner un repository et gérer nos requêtes SQL.

Grace Hopper
26/10/2018
12:10-12:30

Tu nous parleras de repository : avant toute chose, pourrais-tu nous définir ce qu’est un repository ?

Un repository se comporte comme une collection d’objets : on peut lui ajouter, récupérer et parfois supprimer des objets. Il ne fonctionne qu’avec des objets du même type car on ne mélange pas des galinettes avec des renards, ça ne fait pas bon ménage ! Il a l’avantage de proposer aux développeurs une couche d’abstraction qui permet de ne plus se soucier de la persistance. En effet, il peut être implémenté de plusieurs façons possibles, il pourra très bien persister vos objets dans un fichier texte ou dans une base de données par exemple.

(suite…)

[:fr]La parole est aux speakers : David Buchmann[:]

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

La conférence

Bash pour les développeurs et développeuses PHP

Des scripts de ligne de commande sont souvent utilisés pour automatiser des tâches, installations et opérations de déploiement. Étant des développeurs PHP, nous sommes habitués à une syntaxe surprenante et des concepts inconsistants, mais bash apporte ces problèmes à un tout nouveau niveau. Bash peut avoir l'air simple, mais le language est bizarre et plein des pièges. Je vais expliquer les concepts de base et constructions syntaxiques de bash, ainsi que vous avertir des erreurs fréquentes. Si je vais peut être vous faire peur avec bash, je vais aussi vous montrer comment utiliser PHP pour écrire des scripts pour la ligne de commande.

Katherine Johnson
25/10/2018
12:10-12:30

PHP étant très bon pour des petits scripts, quand doit-on plutôt utiliser bash selon toi?

L’inspiration pour cette conférence vient du travail avec mon équipe. On utilise bash principalement dans des scripts qui tournent sur les systèmes d’intégration continue. Bash est un outil présent sur tous les systèmes Linux et s’offre donc pour ce type d’opérations.

Bash permet très facilement de faire des opérations comme lancer des lignes de commande, copier des fichiers, etc. Mais bash a une syntaxe très … disons « particulière ». Lorsque j’ai commencé à regarder de plus près ce qu’on fait, j’ai trouvé plein des petits choses bizarres.

Dans ma conférence, je ne veux pas convaincre les gens d’utiliser bash pour leurs systèmes, mais démontrer les possibilités et expliquer les particularités. Quand on a de la logique non-trivial dans un script, je pense qu’on fait mieux de l’écrire dans un propre langage comme PHP.

(suite…)

[:fr]La parole est aux speakers : Matthias Noback[:]

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

La conférence

Beyond design patterns and principles - writing good OO code

Of course, you should read all you can about SOLID, Design patterns, Patterns of Enterprise Application Architecture, etc. Once you have a basic understanding of these topics you still have to write that code though, and write it well too! What is good code? Are there some guidelines, or rules of thumb, which you can follow while making your everyday coding decisions?

In this talk I’ll cover many of these coding guidelines, which aren’t usually covered by patterns or principles books. They should help you write better code and give you a richer vocabulary for reviewing other people’s code. Some of the subjects that we’ll discuss are: state, mutability, CQS, one-method objects, domain-first, API-driven, functional programming influences, object boundaries, (de)serialization, and many more!

Katherine Johnson
26/10/2018
14:30-15:10

You are a prolific author with 3 books on your belt, why do you write these books? Do you have a new book in preparation right now?

I like to write. In particular when I’m coding a lot, my « bucket of ideas » is overflowing, and I need to externalize it to keep a clear mind. There’s often no need to search for topics to write about, because my work as a developer and trainer already provides me with many relevant topics. Quite often a blog post starts off with someone asking a question during a training session. If someone has a question about something, I assume they are not alone; by explaining the answer in more detail on my blog, I like to believe that it answers this question for many people. Sometimes an article gets “triggered” by something I read on Twitter. A programming joke, or a piece of advice. Often this starts a little fire in me, and I want to explain in a post how « someone is wrong on the Internet ».

(suite…)