Skip to content

Choix des technologies

zCargan edited this page Jan 10, 2023 · 46 revisions

Frontend


  1. Angular :

Angular est un framework très puissant dévellopé par google . Il est plus lourd et serait moins performant que les 2 autre. Un énorme avantage de ce dernier est qu'il a été dévellopé par google, et toujours maintenu: les problèmes possibles avec ce framework seront vite corrigés, permettant au Angular de toujours progressé. Le langage de programmation principale est le TypeScript. La grande communauté de ce framework en fait une de ses forces . En effet, tous les tutos et aides disponibles sur internet en fait un choix judicieux.

Avantages Inconvéniant
Très populaire pour les grosses et moyennes entreprises Long et complexe à apprendre
Permet une bonne productivitée Moins de liberté
Idéal pour de larges projets grâce à son écriture orientée Pas adapté aux petits projets sans complexité
Performant
Soutient par Google et sa grosse communautée

  1. VueJS :

Vue est le plus récent. Vue a connu un gain de popularité au cours des dernières années et ce notamment pour sa facilité d'apprentissage. Il est réactif et permet lui aussi de faire des single page application. L'utilisation de SFC (single file component) permet une intégration simple à imaginer et à mettre en place par un petit groupe. Les avantages de VueJS est la flexibilité, légèreté et sa rapidité. Tous ceci permet de créer un site web complexe, et rapide. Vue est constitué de nombreuses librairies que l'on peut inclure au fur et à mesure du développement de notre application. Nous ne devons pas maitriser tous le packages afin de pouvoir produire un produit simple. Son développeur est Evan You, ce qui peut être vu pour un point négatif vue que le projet peut s'arrêter pour des raisons personnelles, il n'y a pas de grosse sociétés derrière.

Il est la synthèse entre les grands Angular et ReactJs : il utilise des composants réactifs et réutilisables avec une syntaxe simple qui est populaire et très simple à comprendre.

Avantages Inconvéniant
Facile à prendre en main Pas de soutient GAFAM
Popularité croissante Un seul contributeur à plein temps
Flexible et complet
Performant
Très adapté pour des petites/moyennes application

  1. ReactJS

React est le plus populaire et le plus utilisé des trois. C'est un framework développé et entretenu par facebook qui est utilisé par plus de 2 millions de sites web. L'entreprise l'a dévelopé pour répondre à des problématiques de performances que l'on recontrait à l'époque. Il est léger et optimisé pour gérer un trafic très important. Il est très documenté, très demandé dans le monde du travail et réactif. Sa grande documentation motive réellement à essayer ce langage. De plus, react native, un langage de développement pour application mobile, ressemble en grande partie à réact, avec des modifications évidement. Il est relativement facile à apprendre, mais demande une grande maitrise pour être utilisé à la perfection.

Avantages Inconvéniant
Facile à prendre en main Pas de gestion d'état ni de routeur officiel
Framework le plus répandu et le plus populaire Nécessite un bon niveau en Javascript
Performant
Excellent soutient de Facebook et sa communauté

Le tableau ci dessous regroupe les spécifications de chaque langage, permettant de se rendre compte de manière plus visuelle les caractéristiques de chaque langage :

194326913-d4389f9f-f3e0-48a0-a329-1e45ac026c68


Au vu de toute cette analyse, mon choix s'est porté sur le choix suivant : RéactJS

react

et ce, pour les raisons suivantes :

  1. Grosse communauté : Elle pourra m'aider pour les parties plus technique de mon travail
  2. Utilisation de composants : Permettra de définir une fois la structure d'un élément, et la rendra utilisable partout
  3. Performance : Framework ayant fait ses preuves
  4. Réact Natif pour une éventuelle adaptation sur mobile : piste d'amélioration possible ouverte et accessible
  5. Flexibilité : Possède une DOM virtuelle sur laquelle sur laquelle sont rattachés tous les éléments

Backend

Mon choix frontend étant le plus compliqué (utilisation de composants afin de pouvoir réadapter les composants aux désirs des utilisateurs).

Il me fallait un backend simple d'utilisation avec RéactJS, permettant une intégration parfaite et simple du framework.

Au niveau du backend, plusieurs choix étaient disponible :

backend pour react

Afin de rester dans l'écosystème Javascript, je vais opter pour NodeJS où ExpressJS


1) ExpressJS :

Express.js/express est le framework backend le plus populaire pour Node.js, et il fait partie intégrante de l'écosystème JavaScript. Il est utilisé pour produire des applications web monopages, multipages et hybrides. Il est devenu la norme pour le développement d'application backend avec Node.js, et il constitue la partie backend que l'on appelle la pile MERN.

  • Qu'est ce que MERN?

MERN signifie MongoDB, Express JS, Reactjs et Node.js

Avantages de Express.js :

  1. Flexible et rapide :

Le framework Express.js est le plus rapide de tous les autres frameworks Node.js. Il permet de développer rapidement des applications. Il propose également des fonctionnalités riches telles qu'un excellent système de routage, intergiciels et la négociation de contenu dès l'installation

  1. Evolutivité :

Beaucoup d'entreprises utilisent Express.js, le rendant très évolutif au fil des années. Il possède d'excellents modules et packquets ou encore ressource permettant de créer de meilleurs applications. Ces entreprises permettent des nouveautées constantes dans la gestion et l'appart de paquets.

  1. Grande communautée :

Au vue de la popularitée du framework, il dispose d'une énorme communauté qui poste beaucoup de documentation sur internet. Sa communauté lui permet d'avoir de nombreux packages et de ressources. Il possède également le support de Google, donnant de la sorte la possibilitée de créer des paquets de ressources extensibles pour faciliter son dévellopement.

  1. Puissant système de routage :

Le framework possède un du système de routage le plus puissant et le plus robuste. On peut diviser notre système de routage en fichiers faciles à gérer en utilisasant l'instance de routeur du framework

  1. Middleware :

Qu'est ce qu'un middleware. Ca permet d'effectuer un traitement avec celui effectué par les routes. Grâce à express, de nombreux middlewares seront disponible comme pour la gestion des cookies, gérer les sessions, connexions utilisateur, les paramètres de l'URL, les données POST, les entêtes de sécurité et d'autre encore. Tous ceci est utile afin d'intercepter le flux de l'application

Ce lien répertorie les différents framework web, classé par popularité selon github, stack overflow et overall. Express se positionne au dessus de flask ou encore symfony.


2) NodeJS :

Une autre possibilitée possible est également l'utilsation de Serverless...


3) Serverless :

Qu'est ce que le serverless?

L'informatique sans serveur est une méthode qui fournit des services backend facturés sur la base de leur utilisation. Les serveurs sont toujours utilisés, mais une entreprise qui obtient des services backend d'un fournisseur sans serveur est facturée en fonction de l'utilisation, et non d'une quantité fixe de bande passante ou du nombre de serveurs.


Avantages du serverless :

  1. Auto-scaling : Application autant fonctionnelle pour n'importe quel nombre d'utilisateur.

Très utile si l'application deviens rapidement fort utilisée, car aucun travail à fournir pour l'adapter.

  1. Pas d'over / under provisioning :

Pas de serveur sous/sur utilisé. Le serverless d'adapte à la demande de ressource nécessaire

  1. Intégration continune via Git :

Permet de gérer le développement continu

  1. Toute les contraintes sont prises en charge par le fournisseur cloud

Inconvéniants du serverless :

  1. Prédication des coûts :

Prix concret "inconnu" avant la facture. Vu que mon projet pars de 0, je n'ai aucune idée du prix moyen du serverless

  1. Attaque DDOS dangereuses :

Vu que je paye le prix des microtraitements, une grosse attaque DDOS me coutera cher en traitement

  1. La sécuritée :

Cette dernière ne dépend pas de nous. Nous devons donc faire attention à ne pas négliger ces aspects sécurité. Nous devons avoir des garanties sur la sécurité des données et sur la gestion des serveurs

CONCLUSION : le serverless permet de ne payer que pour ce que l'on utilise réellement, sans avoir à se soucier de la gestion et des maintenances des serveurs


2) NodeJS :

Base de données

Table des Matières

  1. Accueil
  2. Client de mon TFE
  3. [Analyse du contenu du projet]
    • [Analyse du cours de mon client]
    • [Analyse des modules nécessaire pour l'adaptation des cours]
  4. [Outil de gestion]
  5. [Présentation du projet]
  6. [Backlog]
  7. [Méthodologie]
  8. [Architecture schémas]
  9. [Testing]
  10. [Sécurité]
  11. [Devops]
  12. [RGPD]
  13. [Appréciation personnelle]
  14. Bilbiographie

Clone this wiki locally