Forum PHP 2016 : de super conférences pour ce jour 2 !

Comme pour le premier jour du Forum PHP 2016, nous profitons de toutes les connaissances et expériences acquises lors de ce super événement pour faire un petit feedback des conférences qui sont tout droit entrées dans nos coeurs de développeurs.

Attention, cet article date de plus de 2 ans maintenant... Il est possible que les infos publiées ne soient plus correctes aujourd'hui...

MIDDLEWARES : UN VIEUX CONCEPT AU COEUR DES NOUVELLES ARCHITECTURES

Les middlewares, on en a tous entendu parlé. Mais en fait, c'est quoi les Middlewares ? Voici un apperçu de la réponse apportée par Matthieu Napoli.

Si l'on s'en tient à la définition de StackPhp : Un middleware c'est quelque chose qui prend une requête et qui renvoie une réponse.

Middleware par Stackphp

(image source : StackPhp)

Dans votre application vous allez pouvoir chainer vos middleware en suivant le principe du pipe.

Dans la pratique, voilà ce que cela donne :

  • Votre application reçoit une requête
  • Cette requête est transmise à un premier middleware (votre gestionnaire d'authentification par exemple)
  • Celui-ci transmet ensuite la requête au middleware suivant (router, controller...)
  • Et ce jusqu'au dernier middleware de la chaîne.
  • Chacun d'entre eux renvoie alors chacun son tour une réponse à celui qui l'a précédé.

Notez que chaque middleware peut permettre de bifurquer dans différents pipes, c'est exactement ce que ferait un router défini comme tel.

Et l'interopérabilité dans tout ça? Depuis 2015, PSR-7 a standardisé les messages HTTP et PSR-15 devrait bientôt en faire de même pour les middlewares à proprement parler. Pour les afficionados de Symfony, ce standard est implémenté depuis la version 2.7.

Maintenant, ne vous lancez par à corps perdu dans l'écriture de middlewares. Si cette solution permet de concevoir des architectures complexes tout en restant facilement compréhensibles, vous risquez d'y perdre en performance. L'utilisation ou non des middlewares dépendra avant tout de votre besoin.

Quelques infos et liens annexes sur cette très bonne conférence :

UNDERSTAND YOUR APPLICATION WITH METRICS

Votre application n'est pas assez rapide ? Le métier vous demande de remonter de nombreux indicateurs ? Mariusz Gil nous donne les clés pour monitorer toutes les données dont chaque équipe à besoin.

Pour pouvoir gérer son application en production, il faut pouvoir mesurer. Et avant même de mesurer il faut définir les données qui seront pertinentes :

  • La charge du processeur ou l'utilisation du réseau pour les sysadmins
  • Le nombre d'erreurs 500 ou le nombre d'appels à des méthodes dépréciées pour l'équipe de développement
  • Le nombre de connections ou de pages vues pour l'équipe métier.
  • Et de manière générale toutes les données qui peuvent avoir de la valeur vous.

Maintenant que vous savez quoi mesurer, il faut répondre comment, et Mariusz nous propose pour cela d'utiliser la stack STICK.

  • Telegraph pour collecter des données temporalisées depuis différentes sources
  • Influx DB pour écrire et stocker de manière performante et efficace ces données
  • Chronograf pour visualiser les données
  • Kapacitor pour alerter, transformer les données et détecter les anomalies

Bien évidemment il existe de nombreuses autres solutions, à vous de trouver celle que vous préférez et qui correspond le mieux à vos problématiques !

Le code mort !

Qui n'a pas de code mort dans son application ? Personne ? Vraiment ?

Mais au fait c'est quoi le code mort ?

La première réponse, la plus évidente, c'est du code non utilisé. Dans une méthode qui n'est jamais appelée, ou bien dans une condition qui n'est jamais validée. C'est aussi un résultat qui n'est jamais utilisé, ou encore une interface jamais implémentée, etc.

dead code

public method deadMethod() 
{
    $foo = false;
    $deadVariable = 'bar';
    if($foo) {
        echo 'This is dead code';
    }
}

Mais pourquoi enlever ce code? Il ne plante jamais ! :)

  • Il peut vous faire perdre du temps, malgré le fait qu'il ne soit pas utilisé, s'il n'est pas identifié comme mort, vous pourriez continuer de le maintenir, d'écrire des tests...
  • Un nouveau dans l'équipe pourrait l'utiliser et libérer des bugs
  • Supprimer du code inutile c'est toujours déstressant !

Mais, comment traiter le code mort?

  • Vous pouvez tout d'abord utiliser votre IDE favori
  • Votre propre connaissance du code
  • L'analyse statique
  • Déprécier des méthodes ou classes pouvant être inutilisées

Attention aux appels dynamiques de classes, méthodes ou variables

Un grand merci à Damien Seguy pour sa conférence !

En revanche, aujourd'hui c'est Halloween, alors avant de vous attaquer à votre code mort, laissez le sortir une dernière fois !

Tags de
l'article

Afup ForumPHP

Catégories de l'article

Evénement

Commentaires

Il n'y a actuellement aucun commentaire. Soyez le premier !

Articles liés