-
Notifications
You must be signed in to change notification settings - Fork 0
06. Technologies
Pour chaque technologie utilisée, la citer, expliquer son intérêt, justifier son choix (et expliquer les alternative envisageables si pertinent) Par exemple: backend, frontend, db, techno intégrée, etc, etc…
Lorsque nous nous sommes penchés sur les technologies frontend, nous nous intéressions à : React, Vue et Angular.
Angular est un framework très puissant dévellopé par google source 1. Il est plus lourd et serait moins performant que les 2 autres source 3. 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é source 4. Le langage de programmation principale est le TypeScript source 4. 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.
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 source 3. Les avantages de VueJS est la flexibilité, légèreté et sa rapidité source 5. Tous ceci permet de créer un site web complexe, et rapide.
React est le plus populaire et le plus utilisé des trois. C'est un framework développé et entretenu par facebook (source 3) qui est utilisé par plus de 2 millions de sites web. Il est très documenté source 3, très demandé dans le monde du travail et réactif. Sa grande documentation nous a vraiment motivé à essayer ce langage, une grande partie du groupe ne l'ayant jamais essayé. 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 source 3
voici un tableau récapitulatif comparant les différentes technologies :

Notre choix pour le frontend est Réact pour la page web et du Réact native pour l'application mobile. Nous avons choisis cette technologie parce qu'elle propose des containers, ce qui permet de réutiliser des éléments déjà définit dans des containers. Vu que notre projet sera composé en grande partie de composants réutilisé, par facilitée et afin d'éviter les erreurs, nous utiliserons réact.
La grande documentation disponible sur Réact nous a également séduit. Les nombreux tutos nous permettront de construire de manière efficace notre projet. source 2
Réact native est également le moyen qui nous a semblé être le plus simple pour la mise en place de ce projet sur application mobile. Ses similitudes avec le Réact nous a semblé être le moyen le plus efficace afin de développé une application mobile.
RéactJS facilite la création d'interface et met à jour directement dans la DOM les éléments qu'il a besoin. source 2
Nous avons également constaté que les entreprises recherchent de manières active plus de personnes sachant dévelopé en Réact que dans les autres langages frontend. source 1
Voici un graphe qui illustre les propos :

consulté le 3 octobre 2022
NODE.js :
Pour le back-end, nous avons choisi NodeJS car cette environnement possède une communauté immense et très présente, Il est codé en javascript, langage dans le lequel nous sommes déjà habitué. De plus, nous utiliserons le même langage pour le backend et le front end. Énormément de site utilise NodeJS et elle s'allie très bien avec React.
NodeJs est un système single thread non bloquant ce qui veut dire qu'il va traiter les requêtes qu'il reçoit une à la fois mais vu qu'il n'est pas bloquant il n'attend pas qu'une requête soit finie pour commencer à traiter la suivante.
Pour finir, le nombre conséquent de package nous permet d'avoir accès a de nombreuses fonctionnalité facilement pour réaliser notre application.
Nous l'avons préféré à d'autre technologie comme PHP ou python, premièrement car nous voulions travailler dans un seul language, pour éviter au membre de groupe de devoir faire plusieurs formations.
Nous connaissons les avantages du PHP par exemple la prise en charge du PHP par tous les services d'hébergement internet, ou même sa prise en charge de frameworks et de CMS (wordpress, drupal, framework symphony) plus importante que NodeJs. Cependant PHP ne favorisent pas les intéractions entre les utilisateurs et le serveur, NodeJs peut remplir cette fonction.
Au niveau de python, nous avons vu que flask et django existe, les performances et la sécurité de python sont meilleures en générales que celles de NodeJs, mais Django est plus complexe et offre moins de liberté au développeur.
MongoDB :
Nous avons décidé de choisir MongoDB en base de données pour une raison pédagogique. Au cours de notre cursus à l'EPHEC, ont nous enseignés et fait utiliser des bases de données relationnelles comme MySQL. C'est pour cette raison que nous voulions voir et apprendre comme fonctionne une base de données dite NoSQL. Pour ainsi étendre le champs de nos compétences et découvrir d'autres possibilités. Nous aurions très bien pu utiliser une base de données relationnelles pour ce projet.
La principale différence entre les 2 et que pour le relationnelle ont stocke les données dans des tables alors que pour le non-relationnelle ont les stocke en clé-valeurs sous différentes formes(documents, graphiques, tableurs, etc). Ce qu'il faut surtout retenir c'est que les bases de données NoSQL ont été crées pour répondre au Big Data et non pour remplacer le relationnelle, Les deux types de bases doivent être utilisé en complémentarité en fonction des besoins.
MongoDB : C'est une base de données NoSQL surtout utilisé pour le stockage de grandes quantités de données. Les données sont stockées dans un système clé-valeurs sous forme de documents et collections.
- Grande flexibilité.
- Très bonne performances.
- Sharding : En gros, on peut dupliquer les données sur plusieurs autres serveurs possédant aussi MongoDB.
- Permet de créer des index pour améliorer les cherches.
- Nécessite d'apprendre a faire des schémas de documents.
- Utilisé surtout pour le Big Data donc grandes quantités de données stockés.
- Pas de utilisateur admin par défaut, nécessite de mettre en places les utilisateurs et leurs permissions.