Vous êtes sur la page 1sur 7

Choix technologique

Python est un langage de programmation populaire qui est largement utilisé dans le
développement web pour sa simplicité, sa lisibilité et sa flexibilité. Flask, un micro-
framework web en Python, a été choisi pour le développement du backend de Geek-
Compagnon pour plusieurs raisons.

Simplicité et flexibilité : Flask est un micro-framework, ce qui signifie qu'il est léger et
simple. Il ne fournit que les fonctionnalités de base nécessaires pour le développement web,
ce qui le rend très flexible. Contrairement à d'autres frameworks plus lourds comme Django,
Flask ne fait pas d'hypothèses sur la structure du projet ou sur les composants à utiliser, ce
qui permet aux développeurs de choisir les outils qui conviennent le mieux à leurs besoins
spécifiques. De plus, sa syntaxe légère permet de créer une application basique en
seulement sept lignes de code.

Facilité d'apprentissage : Python est connu pour sa syntaxe claire et concise qui est facile à
apprendre et à lire. Cela rend Flask particulièrement attrayant pour les développeurs qui
sont nouveaux dans le développement web ou qui veulent se concentrer sur la logique de
l'application plutôt que sur les détails de la syntaxe du langage.

Communauté et support : Python et Flask bénéficient d'une grande communauté de


développeurs qui contribuent activement à l'amélioration du langage et du framework. Cela
signifie qu'il existe une abondance de ressources d'apprentissage, de bibliothèques tierces et
de modules d'extension pour Flask, ainsi qu'un support communautaire robuste pour aider à
résoudre les problèmes. En outre, la stabilité de Flask a été démontrée lorsque les principaux
contributeurs du projet ont annoncé que toutes les issues ouvertes sur GitHub avaient été
résolues et clôturées.

Performance : Bien que Python ne soit pas le langage le plus rapide, sa performance est
généralement suffisante pour la plupart des applications web. De plus, Flask est conçu pour
être léger et efficace, ce qui aide à minimiser les problèmes de performance.
Intégration avec d'autres outils Python : Python est largement utilisé dans divers domaines
tels que le traitement de données, l'analyse de données, l'apprentissage automatique, etc.
L'utilisation de Python et de Flask pour le backend de Geek-Compagnon permet une
intégration facile avec d'autres outils et bibliothèques Python utilisés dans ces domaines.

En comparaison avec d'autres technologies comme Node.js/Express ou Ruby on Rails, Flask


offre une plus grande flexibilité et simplicité, une courbe d'apprentissage plus douce, un
meilleur support communautaire, une stabilité prouvée, et une intégration plus facile avec
d'autres outils Python. Ces facteurs ont contribué à faire de Python/Flask le choix
technologique idéal pour le backend de Geek-Compagnon.

Tableau comparatif des technologies pour le back-end

PostgreSQL, souvent simplement appelé Postgres, est un système de gestion de base de


données relationnelle open source. Il a été choisi pour plusieurs raisons :
Open Source : PostgreSQL est un logiciel open source. Cela signifie qu'il est gratuit à
utiliser et que vous pouvez le modifier pour répondre à vos besoins spécifiques. Cela peut
être un avantage majeur pour les startups et les projets à budget limité.

Extensible : PostgreSQL est hautement extensible. Il vous permet de définir vos propres
types de données, opérateurs et fonctions. De plus, il prend en charge une grande variété
d'extensions qui peuvent ajouter des fonctionnalités supplémentaires.

ACID Compliant : PostgreSQL est entièrement conforme ACID (Atomicité, Cohérence,


Isolation, Durabilité). Cela garantit que toutes les transactions sont traitées de manière fiable
et garantit l'intégrité des données, même en cas de panne du système ou de crash.

Support des fonctions SQL avancées : PostgreSQL prend en charge de nombreuses


fonctions SQL avancées, telles que les sous-requêtes, les transactions, le contrôle de la
concurrence multi-version (MVCC), les pointeurs de données, les triggers, les contraintes
d'intégrité, etc.

Sécurité : PostgreSQL offre un haut niveau de sécurité, y compris le support pour le


chiffrement SSL et un système robuste de rôles et de permissions.

Performance : PostgreSQL offre d'excellentes performances avec des fonctionnalités telles


que le parallélisme de requête et les index efficaces.

Comparé à d'autres systèmes de gestion de base de données comme MySQL, SQLite ou


MongoDB, PostgreSQL offre un équilibre idéal entre conformité aux normes, performance,
flexibilité et sécurité. C'est pourquoi il a été choisi pour ce projet.
Tableau comparatif des technologies pour le système de gestion de base de données

Apache avec WSGI a été choisi comme serveur pour plusieurs raisons :

Maturité et fiabilité : Apache est l'un des serveurs web les plus anciens et les plus fiables. Il
a fait ses preuves en termes de performance et de stabilité.

Compatibilité avec WSGI : WSGI (Web Server Gateway Interface) est une spécification qui
définit une interface entre les serveurs web et les applications web pour Python. Apache a
un excellent support pour WSGI via le module mod_wsgi, ce qui facilite le déploiement
d'applications Python.

Sécurité : Apache offre de nombreuses fonctionnalités de sécurité, y compris le support


pour SSL/TLS pour des connexions sécurisées, l'authentification et l'autorisation, et une
variété de modules pour renforcer la sécurité.
Flexibilité : Apache est hautement configurable et peut être ajusté pour répondre à des
besoins spécifiques. Il supporte une variété de modules qui peuvent être ajoutés ou
supprimés selon les besoins.

Support de la communauté : Apache a une grande communauté d'utilisateurs et de


développeurs, ce qui signifie que vous pouvez trouver beaucoup de documentation, de
tutoriels et de forums pour obtenir de l'aide.

Comparé à d'autres serveurs web comme Nginx ou Lighttpd, Apache avec WSGI offre une
excellente compatibilité avec Python et une grande flexibilité, ce qui en fait un choix idéal
pour le projet Geek-Compagnon.
Tableau comparatif des technologies pour le serveur web

Vous aimerez peut-être aussi