tech

Quelle stack pour Phresque.com ? (1/3)

oct. 5, 2020

Phresque.com se divise en trois applications

1. Node.js & React - Front & Back

2. Python & PostgreSQL - Base de Données

3. PyTorch & Redis - Transformations d'images

Cet article de blog se concentrera uniquement sur la permière partie:

React.js / Frontend

image frontend

React, c'est Facebook, c'est populaire et cela permet de créer des supers divs auxquelles sont attachés plusieurs haut-parleurs qui émettent des sons dès lors qu'il se passe quelque chose dans la vie de la div. (Une div c'est un contenant dans lequel on met des éléments qui constituent un site web).

Par exemple le haut parleur 'click' va crier 'On me clique dessus!'' à chaque fois qu'on clique sur la div. Le haut-parleur 'natalité' va crier 'Je suis né!' chaque fois que la div va apparaître sur la page web.

Finalement, avec react on va créer plein de superbes divs qui peuvent réagir aux sons qu'émettent, et elles-mêmes et les autres divs de la page. Pour éviter une cacophonie certaine, les divs ne crient pas tous dans les oreilles des voisins. Ils crient tous dans leur propre micro. Et tous les micros sont reliés à une même table de mixage appelée Redux qui redirigera le son vers les divs qui ont un intérêt à entendre ce son.

Plus concrètement, quand on sélectionne un style sur l'éditeur de Phresque.com il se passe alors:

  1. L'image signale qu'on lui a cliqué dessus.
  2. Le menu latéral réagit à ce signal et se ferme.
  3. Le cadre de travail de la photo réagit aussi à ce signal et déclenche le mouvement brownien.

Enfin, pour la partie la moins drôle, c'est à dire la compilation du code Javascript, on utilise Gulpjs.

Node.js / Backend

image serveurs

Node.js c'est fort parce que cela a simplifié la vie de beaucoup de développeurs. Quand on savait développer des pages web dynamiques avec Javascript, on ne pouvait pas développer du code côté serveur. Il fallait pour cela changer de langage de programmation pour faire des opérations backend, par exemple Python, Ruby, Java... Mais avec Node.js c'est terminé ! On peut écrire du code serveur en Javascript, et ça c'est vraiment dingue parce qu'avec une compétence on fait maintenant 2 choses. Le potentiel de gain en dollars d'un tel projet explique en partie sa réussite mais pas que...

C'est aussi que Node.js est extrêmement efficace car il est pensé asynchrone. Cela signifie que notre serveur n'a pas besoin d'attendre qu'une tâche initiée précédemment soit terminée pour pouvoir en commencer une autre. L'oganisation scientifique du travail n'en croit pas ses oreilles. Pour un serveur c'est idéal car on n'a pas besoin d'attendre la fin du traitement d'une requête utilisateur pour commencer à en traiter une autre. Et donc cela signifie qu'on peut accueillir plus de visiteurs simultanément avec moins de ressource qu'une serveur pensé synchrone (qui commence une tâche, la termine, puis passe à la suivante).

Phresque.com utilise Node.js et expressjs pour traiter toutes les requêtes côté serveur. Le serveur HTTP utilisé est NGINX simplement pour faire comme les sites les plus populaires du web. Phresque utilise les serveurs de Scaleway qui est une entreprise française et dont les serveurs se situent en région parisienne. Du moins pour ceux utilisés par Phresque.

Aller sur la partie 2