By communication

La parole est aux speakers : Damien Seguy

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Tout pour se préparer à PHP 7.4

Déjà, PHP 7.4 toque à la porte, et il arrive les bras chargés de fonctionnalités et de modernisations. Que ce soit les FFI, le support du typage pour les propriétés, l’abandon des nombres real, la covariance, et même la modernisation de strip_tags, array_merge sans argument, et l’imbrication d’opérateurs ternaires : ouf, il va falloir se retrousser les manches. Durant la session, nous passerons en revue les nouvelles fonctionnalités, les incompatibilités, et nous verrons comment préparer son code dès maintenant.

Katherine Johnson
25/10/2019
14:30-15:10

Quelle est ta nouveauté préférée pour PHP 7.4 ? Pourquoi ?

Le typage des propriétés est la nouveauté phare de la version 7.4. Après le typage des arguments et des valeurs de retour, c’est l’étape suivante pour mieux maîtriser son code, et savoir très tôt que des valeurs incongrues vont être traitées par une application. Même sans aller jusqu’à leur application systématique, le typage fort fournit des tolérances plus ajustées, et contribue à préciser le fonctionnement du code. De manière pragmatique, il remplace beaucoup de vérifications explicites, et donne ce travail à PHP : cela fait autant de code en moins à taper.

C’est ma nouveauté préférée : je m’en sers pour refactoriser du code. Durant le développement, je les utilise pour repérer toutes valeurs mal préparées. Et en production, je les retire. Dans le cadre de la maîtrise de la dette technique, c’est pratique !

Lire la suite

La parole est aux speakers : Pascal Martin

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Une application résiliente, dans un monde partiellement dégradé

Dans un monde en perpétuelle évolution, pouvons-nous toujours atteindre « four-nines » de disponibilité ? Cloud et Kubernetes. APIs et Microservices… Nos architectures s’enrichissent et se complexifient. Au prix d’une certaine fragilité ?

Nous commencerons par définir SLA, SLO et SLI et rappeler la signification de ces X-nines. Nous montrerons ensuite comment, dans un contexte en permanence partiellement dégradé, nos assemblages de services distribués nuisent à la fiabilité de nos plateformes.

En profitant de l’expérience acquise sur 6play, nous verrons quelques pistes pour améliorer la résilience de nos applications, pour qu’elles répondent à nouveau aux besoins de notre public. Nous prononcerons peut-être même le terme de « Chaos Engineering » 😉

Katherine Johnson
24/10/2019
11:25-12:05

On entend souvent qu’il faut avoir 99,99% de taux de disponibilité. Selon toi existe-t-il un chiffre universel de taux de disponibilité minimum à avoir pour toutes les applications / services existants ? Pourquoi ?

Si je perds accès au code source de mes projets professionnels entre 19 h et 8 h, je ne m’en rendrai pas compte. Si je ne peux pas consulter mes mails pendant dix minutes, ça ne m’empêchera pas de travailler. Si ma banque est hors-ligne au mauvais instant pendant la pause de midi et que je ne peux pas payer mon repas, je serai fort embêté. Si le service de déclaration d’impôts répond 99,99 % du temps, mais que ses 50 minutes d’indisponibilité annuelle tombent le dernier soir où les contribuables peuvent saisir leur déclaration, ça sera un scandale national.

La disponibilité requise pour un service dépend de sa criticité et des moyens que je peux mettre en place pour garantir un niveau de service. Il n’existe donc pas de taux de disponibilité minimum universel à avoir. Si une application est composée de microservices qui s’appellent les uns les autres, un ralentissement sur une API peut causer l’écroulement de la plateforme entière :-/. Vous avez peut-être oublié une des raisons d’être des microservices ! Même avec des pratiques de développement et de déploiement solides, sur des dizaines de microservices, des incidents arrivent. C’est la vie…

Heureusement, comme vous le verrez pendant ma conférence au Forum PHP, des solutions, plus ou moins simples à mettre en place, existent.

Lire la suite

La parole est aux speakers : Nuno Maduro

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Writing Effective PHP

PHP has evolved massively since its first days, and it's on the road to a full-featured language. However, at the same time, there is a lot of outdated information and libraries with poorly written code.

This talk is about writing PHP Code that is: safe, robust, and maintainable. We are going to cover a set of rules, that if you follow them; they will get you on the habit of writing code well.

Get ready for a 25 min live-coding session, where I go through practical examples. You will learn how to design classes, how to think about your API to prevent breaking changes, and discover concepts around designing and creating objects, when and how to use immutability, and much more.

Grace Hopper
24/10/2019
09:30-10:10

It will be your second talk hosted by AFUP. You’ve given many talks, like in Serbia or in Madrid. Why did you choose to come back to Forum PHP?

As a regular conference speaker, I always try to get back to conferences that bring me joy. Last year, I had an outstanding experience speaking at Forum PHP. A very well-organized conference where I made tons of new friends.

Also, as I have a close relationship with the Laravel community, people approached me with questions about the framework, and that was awesome. Can’t wait to repeat this experience this year.

Lire la suite

La parole est aux speakers : Roland Lehoucq

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Pratiquons la physique avec Star Wars !

La saga cinématographique « Star wars » a eu un succès considérable. Elle met en scène des technologies futuristes qui, à l’évidence, dépassent largement les nôtres. Est-il possible de faire la part de la science et de la fiction, du rêve et de la réalité ? En utilisant les outils de la physique pour décrypter certaines scènes du film, nous allons mener l’enquête : quelle pourrait-être la nature de la Force qu'utilisent les chevaliers Jedi ? Quelle est la puissance d’un sabre-laser ? Comment classer les Jedi ? Il ne s'agit pas, bien sûr, de détruire la part de rêve inhérente à toute œuvre de fiction, mais plutôt de s'en servir comme support pour parler de physique de façon ludique. Ce questionnement transforme le spectateur en acteur très proche de l'astrophysicien qui, pour interroger l'univers, n'a d'autres sources que la lumière des astres captée par ses instruments. Au terme de l'enquête, son monde sera transformé. Que la Force soit avec vous !

Katherine Johnson
25/10/2019
17:10-17:40

La physique est un sujet très éloigné du thème de notre conférence autour du développement : pourquoi avoir accepté de venir à un tel événement ?

Parce qu’on m’y a invité et que j’étais disponible ! Et parce que je pense que le public du Forum PHP n’est pas insensible aux sciences et notamment à la physique de Star Wars 🙂 Sans parler du fait que, ancien geek, l’ambiance à laquelle je m’attends me convient tout à fait !

Lire la suite

La parole est aux speakers : Grégoire Pineau

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Redis, ce n'est pas que pour le cache

Redis sait faire bien plus que stocker des valeurs sous forme de Strings. Grâce à des structures de données évoluées et à ses performances hors du commun, il devient un allié très puissant à ajouter dans sa stack préférée.

Des statistiques à la persistance de session en passant par les leaders board ou la gestion de coordonnées, vous ne verrez plus ce SGBD du même œil !

A travers une série d'exemples, des trucs & astuces, nous verrons comment utiliser Redis depuis une application PHP.

Katherine Johnson
24/10/2019
10:15-10:55

Tu nous parleras de Redis : c’est un outil qui a récemment fait des changements de licence controversés. Pourrais-tu nous en dire plus et donner ton avis sur cette problématique ?

RedisLabs, l’entreprise derrière Redis en a marre que AWS (entre autres) package Redis dans un produit payant (ElasticCache pour AWS) de manière propriétaire, sans faire une seule contribution en retour pour faire avancer le produit. Donc ils ont changé la licence pour bloquer ce genre de pratique.

La deuxième partie de la question est très compliquée ! D’un côté, changer la licence pour freiner AWS est contre ma vision de l’Open-Source. Je suis du côté de la MIT qui est l’une des licences les plus permissives : l’Open-Source doit ressembler à de la charité. D’un autre côté, AWS ne contribue que très peu / jamais aux projets Open-Source. Alors je comprends que RedisLab ait eu envie de se protéger contre un géant qui n’a que faire des RedisLabs, Elastic, etc. Je comprends le choix de RedisLabs, mais je ne sais pas encore si je l’approuve.

Lire la suite

La parole est aux speakers : Adrien Lucas

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Le TDD dans la vraie vie avec Panther

Panther est un tout nouveau composant Symfony dont l'objectif est de vous simplifier l'écriture des tests d'intégration et des tests end-to-end !

Dans ce talk vous découvrirez I. qu'est-ce que la pyramide des tests et en quoi Panther est l'outil idéal pour homogénéiser sa suite de tests ; II. en quoi consiste la pratique du TDD et comment doit-elle être adaptée pour correspondre aux problématiques d'une application web ; III. à quoi ressemblent ces pratiques sur un projet réel et quelles charges leur mise en place peut-elle coûter ; IV. quelles pistes peuvent être explorées pour améliorer nos suites de tests et bénéficier de toujours plus d'assurance qualité.

Grace Hopper
25/10/2019
10:15-10:55

Panther s’impose progressivement comme un outil de test de référence : en quoi celui-ci aide-t-il à écrire des tests de meilleure qualité et quelles sont les raisons qui t’ont poussé à l’utiliser ?

Panther est un projet membre de l’écosystème Symfony, avec tout ce que cela implique en termes de “promessede rétrocompatibilité, de sérieux sur la qualité de code et d’une communauté parmi les plus bienveillantes de l’Open Source.

Il a ainsi pour principal avantage de s’inspirer au maximum des API existantes, en étendant et en implémentant des interfaces et des classes tierces, notamment celles du FrameworkBundle et des composants BrowserKit et DomCrawler.

Un développeur déjà familiarisé avec la pratique des tests automatisés sur des applications Symfony ne sera pas perdu face à une suite de tests propulsée par Panther.

Lire la suite

La parole est aux speakers : Nicolas De Boose

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

La clean architecture : pourquoi ? Comment ? Pour qui ?

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

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

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

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

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

Vous aurez en prime :

  • Du code clair
  • Une architecture claire, qui fonctionne sur du back-end comme du front-end
  • Du code facilement testable unitairement... Plus besoin de "booter" votre framework pour tester vos vues
  • Plus aucune peur de passer de mettre à jour une librairie, voire de la changer
Grace Hopper
24/10/2019
10:15-10:55

Comment as-tu connu la Clean Architecture ? Quelles ont été tes ressources, quels livres ont pu t’inspirer ?

J’ai découvert la Clean Architecture en parcourant le blog et les vidéos de Robert Martin/Uncle Bob. À l’époque, je n’avais pas entièrement compris toutes les subtilités de cette architecture et il n’y avait pas encore beaucoup de ressources disponibles à ce sujet. Je n’y ai donc pas porté beaucoup d’attention.

Il y a deux ans, je suis passé sur un projet assez conséquent écrit en Typescript. L’idée était de ne pas adopter un framework. J’en ai profité pour me pencher plus sérieusement sur cette clean architecture. J’ai re-regardé la vidéo d’Uncle Bob et relu son article plusieurs fois. Je suis aussi tombé sur un de ses repo git qui contient 2-3 exemples intéressants ainsi que sur une de ses conférences. Son livre apporte aussi quelques réponses, mais il est dispensable. Enfin, il y a également quelques articles/vidéos intéressant(e)s de développeurs IOS et Android qui m’ont aidé à y voir plus clair (comme celle-ci ou celle-ci).

Pour me faire la main, j’ai commencé un side project où je me suis mis quelques contraintes (le front et l’api doivent partager la même logique). À force de faire des essais/erreurs et de questionner Google sur des thèmes très spécifiques, je suis arrivé à affiner mes connaissances. Ce n’est pas toujours évident si on veut en extraire l’idée de base car les gens changent parfois un peu l’architecture selon leur envie ou besoin.

Lire la suite

La parole est aux speakers : Paula Čučuk

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

When you get lost in API testing

If you are not writing tests yet, you should start. Tests will improve the quality of your code, reduce bugs and probably force you to think more about design and quality. Actually, the hardest thing is to start and figure out which type of tests to write.

So you start researching and you find a lot of different materials and get even more confused.Even when you decide what type of tests to use, it can be hard to decide how to test some specific logic in your app.

Don’t give up! We have some tips we learned along the way that will hopefully make your life easier. In this talk you will hear about different test types and when to use them. We’ll also show some tools for checking quality of your test. See you in Paris! 🙂

Grace Hopper
24/10/2019
14:30-15:10

Which tools did you try for API testing? What are the important points to consider?

Back when I started writing tests, I actually tried different frameworks like Behat, PhpUnit and PhpSpec. Even though PhpUnit suited me the most, I still believe that the framework choice is not that important, as long your tests are easy to maintain and they make sure that your code works as expected.

When it comes to tools, there are a few tools that check the test quality and suggest possible improvements, and I actually use Code Coverage and Infection (mutation testing) on a daily basis.

All in all, I don’t believe that it’s crucial to pick a certain tool or a framework, you just have to be persistent because writing tests can be confusing at the first glance. Once you master it, development and code maintenance will become easier, but also much faster.

Lire la suite

La parole est aux speakers : Mickaël Andrieu

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Concevoir des applications PHP résilientes en 2019

Vous souhaitez créer une architecture en micro services, ou une API REST et un joli front en React parce que c'est à la mode. Mais que se passe-t-il quand l'un de vos micro services tombe, ou si un de vos appels à votre API met un peu trop de temps à répondre ?

En gros, comment gérez-vous vous la résilience de vos applications ?

En vingt minutes, je vous montrerai comment faire : notamment à l'aide d'une librairie PHP que j'ai créée et qui est intégrée dans le projet Open Source PrestaShop.

Vous comprendrez comment fonctionne un "Circuit Breaker", comment le configurer et comment le tester.

A la fin de cette session, vous aurez les clés pour ne plus craindre les problèmes de réseau. Et vous aurez acquis un nouveau réflexe: penser au pire, pour garantir le minimum vital à vos utilisateurs.

Katherine Johnson
24/10/2019
12:10-12:30

Entre résilience et surarchitecture, as-tu quelques pistes pour trouver un équilibre qui semble juste ?

On peut mettre en place la résilience à différents niveaux, que ce soit au sein du logiciel que l’on développe ou imaginer prendre en compte les risques au niveau de l’infrastructure. La bonne nouvelle pour le développeur/se, c’est que si les design patterns liés comme le Circuit Breaker sont difficiles à concevoir, leur utilisation est simple ! Mon unique conseil, c’est de commencer : une fois le réflexe pris chaque équipe saura évaluer le degré de criticité à appliquer sur une situation donnée et un bon architecte saura décider s’il faut régler ce problème au niveau du logiciel, de l’infrastructure, voire les deux ! À ce propos, ne ratez pas la conférence de Pascal Martin !

Lire la suite

La parole est aux speakers : Sylvain Combraque

Jusqu’au Forum PHP 2019, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Gérez le Traefik de vos services

Depuis quelques années nous ne développons plus des grosses applications monolithiques mais nous préférons les découper en plusieurs services afin de pouvoir déployer chaque service indépendamment les uns des autres et possiblement ne pas casser le coeur de l’application.

Nous voulons aussi déployer de nouveaux services et aussi rajouter des instances de services déjà déployés afin d'accroître la tenue de charge du serveur contenant notre application et cela à chaud, sans redémarrage du reverse-proxy. De plus nous aimerions avoir possiblement plusieurs applications totalement différentes, par exemple un serveur Teamspeak, un site web avec une API en PHP, un front en ReactJS, un petit serveur web en Go, et une instance d'un serveur web Tomcat.

Enfin nous voulons pouvoir déployer l'application très rapidement. Nous devrions avoir différents systèmes d'exploitation pour gérer tout cela, cependant grâce à Docker, à l'orchestration de Docker Swarm et la gestion des services grâce à Traefik nous allons le faire facilement.

Grace Hopper
25/10/2019
16:25-17:05

Tu vas nous présenter une conférence sur Traefik. Quelle est sa force par rapport à d’autres reverse proxy comme Nginx ou Varnish ?

Nginx et Varnish étaient très bien pour le déploiement d’applications monolithiques. Aujourd’hui c’est différent, on sépare notre application en plusieurs services indépendants ou non et on souhaite les déployer indépendamment les uns des autres, déployer plusieurs instances de ces services et retirer des instances sans avoir à redémarrer le reverse-proxy. Traefik permet de changer la configuration du mapping des services à chaud, ce qui est très pratique.

Lire la suite