-
Notifications
You must be signed in to change notification settings - Fork 0
Choix techniques
Au cours de ce projet, beaucoup de technologies différentes risques d'être utilisées. Pour fournir des services, mais également pour permettre l'organisation et la supervision de ce projet. Vous retrouvez donc ici les différentes technologies utilisées accompagnées de leur but dans ce projet ainsi que des raisons de leur choix.
En plus des justifications techniques qui vont suivre pour chaque technologie de développement, je tiens à ajouter que j'ai déjà utilisé chacun des langages cités. Ceci m'offre ainsi un énorme gain de temps en terme d'apprentissage, et m'assure également que je suis capable de produire un résultat concret. Les technologies Front-end et Back-End sont toutes les 2 en JavaScript, me permettant donc de ne pas avoir à jongler entre 2 langages différents.
Choix : React js
Justifications :
- Mieux adapté pour des applications légères et dynamiques.
- Performant grâce à l'utilisation de la DOM virtuelle.
- Flexible grâce à tous les packages existants en JavaScript.
- Beaucoup de ressources disponibles (articles, vidéos).
- Création de composants réutilisables au sein de l'application.
- Utilisation de JSX facilitant la programmation de rendu HTML.
- Grande communauté prouvant l'efficacité du langage.
Alternatives :
- Vue
- Angular
Choix : Node js
Justifications :
- Leader en technologie Back-End.
- Flexible grâce à tous les packages existants en JavaScript.
- Performances et rapidité élevées grâce à l'engine utilisée.
- Forte présence de la communauté et de ses développeurs.
- Documentation et autres ressources très riches.
- Facile à faire répondre à de nouveaux besoins.
Alternatives :
- Python (Django)
- PHP
Choix : PostGreSQL
Justifications :
- Open-source et donc gratuite.
- Enormément de fonctionnalités inclues et de fonctions prédéfinies.
- Très bonnes performances dans l'envoi de données en JSON.
- Meilleure garantie d'intégrité des données (respect des règles ACID).
- Migration facile vers d'autres technologies si nécessaire.
Autres alternatives :
- MySQL
- MongoDB
Choix : Docker
Justifications :
- Déploiement d'images préconfigurées avec certains services (images officielles ou spéciales via le DockerHub).
- Consistent car les images sont déployées sous des distributions de Linux.
- Solution gratuite.
- Déploiement de service sous forme de code, facilitant la configuration du service.
- Utile dans le cadre de l'intégration continue.
Alternatives :
- Azure
- VMWare
Afin de tester le bon fonctionnement de l'application, je vais également utiliser une série d'outils afin de tester les différents aspects de la plateforme. Les voici :
- Tests unitaire/d'intégration Front-End : Jest en Enzyme/React Testing Library
- Test d'intégration Back-end : Postman
- Test End-to-End : Cypress
Afin de permettre à mon client d'avoir un accès aussi rapide que possible aux différentes parties du projet, j'ai décidé de choisir un série d'application me permettant de produire du contenu tout en le rendant accessible à mon client. Les voici :
- GitHub : Outil de versioning ainsi que de publication de document dans le cadre du TFE.
- Trello : Outil de gestion de tâche, me permettant d'organiser mon travail ainsi que de rendre visible l'évolution de celui-ci.
- Clockify : Outil de gestion de temps, afin de pouvoir superviser le temps que j'investis dans le projet.
- Lucidchart : Outil de création collaborative de diagrammes en tout genre.
- Suite Google (Google Docs, Google Sheets) : Outils me permettant de créer des documents accessibles et modifiables en ligne par le client.
- Microsoft Teams et Messenger : Outil de communication directe avec le client.
