GraphQL par Facebook

19 juillet 20192 mn de lecture — Dans Coding

GraphQL

Ça y est, j'ai supprimé mon compte Facebook. Totalement. Finalement la seule utilité de ce réseau social moribond reste sa raison d'être première, son business modèle : être une vaste régie publicitaire. Dès lors, les seules personnes qui persistent à l'utiliser, à part les oisifs sont les commerçants. Quiconque à quelque chose à vendre, à promouvoir doit administrer sa "page Facebook"... Autant dire que quitter cette application fût pour moi un véritable soulagement. Adieu fakenews, bulle de subjectivité, suggestions foireuses et avis tranchés commentant l'actualité comme autant d'échos à BFMTV et au café du commerce...

Bref, quand on a rien à vendre, on à rien à faire sur Facebook. Mais la réussite insolente de la boite à Zuckie aura permis de faire voir le jour à quelques technos pas dégueux. React pour commencer qui est une petite révolution dans l'écosystème Javascript. Même si Angular.js, Vue.js, Ember.js et d'autres framework existent à côté, React est devenu la référence incontournable de l'environnement de développement Front depuis quelques années. Et React c'est Facebook, d'abord développé en interne, puis ouvert au grand public React permet l'utilisation intuitive du web moderne. Combiné au web sockets, il permet la mise à jour en temps réel des pages (ou applications) consultées, sans avoir besoin de rafraichir ou de recharger une page. Mais comment faisait-on avant !!!

GraphQL c'est le next level, non pas comme React un successeur de Ajax ou jQuery (ah oui, les deux y sont passé ;) mais c'est le successeur de l'API Rest et du Redux Store. Jusqu'à présent la structure en Server/Client avait été grandement simplifié par l'utilisation d'API REST (utilisant les codes de statut HTTP) et de Redux (qui permettait de gérer les états dans l'application).

Avec GraphQL, inventé par Facebook donc, c'est la révolution. Il n'y a plus que des requêtes POST formatées en Json. Et la réponse est elle aussi formatée en Json. L'énorme avantage, outre la simplification et la standardisation à outrance, c'est que les requêtes ont une syntaxe qui leur permet d'être ultra précises. On demande quelque chose de précis et on ne reçoit que ce qu'on a demandé. Terminé les requêtes imbriqués, les collections à trier, etc. Le gain en efficacité est phénoménal.

apollo

Cerise sur le gâteau, "Apollo" permet de mettre en cache les requêtes de GraphQL et de les utiliser dans l'application permettant de se passer définitivement de Redux, de ses actions, de ses reducers et de son Store... Bref grâce à la combinaison de GraphQl et d'Apollo, au prix d'un effort d'adaptation, on peut arriver à simplifier énormément les applications React d'un côté et les API Rest de l'autre.

Moralité, Facebook c'est de la merde mais ce genre de gros projet permet de mettre au point des technos qui par la suite sont bien utiles. Merci Zuckie :)

🤖