Comment choisir son framework d’application web (2e partie)
Cet article fait suite à notre précédent et vous présente d’autres critères pour orienter vos choix technologiques.
Compatibilité avec l’architecture existante
Si vous avez déjà une architecture d’entreprise en place, peut-être devriez-vous utiliser des frameworks compatibles avec ceux qui sont déjà utilisés, afin de pouvoir réutiliser du code existant, s’il y a lieu. Et cela s’applique encore plus s’il y a déjà des applications Web dans cette architecture. Par exemple, si vous utilisez Microsoft .NET pour des services interagissant avec la base de données ou pour de la logique d’affaires, il peut être intéressant d’opter pour ASP.NET pour vos applications Web. De plus, utiliser les mêmes frameworks, ou des frameworks semblables pour un même langage de programmation nécessite moins de temps d’apprentissage de la part des développeurs, et un processus de maintenance et de mise à jour plus uniforme. Enfin, si vous prévoyez d’utiliser un hébergeur tiers, il se peut que vous soyez limités dans les langages et frameworks autorisés.
Flexibilité
Suivant les fonctionnalités que vous désirez implémenter dans votre application, il est important de jauger la flexibilité offerte. Cette flexibilité tient surtout de la facilité à personnaliser le framework, en passant par des “hooks”, entre autres, ou en ajoutant des modules maison. Si un certain framework est excellent pour quelques fonctionnalités dont vous avez besoin, mais n’offre rien pour certaines autres, et que vous devez fournir beaucoup d’efforts afin d’apporter des modifications (si cela est possible) ou devez l’outrepasser pour les implémenter, peut-être serait-il mieux d’en envisager un qui est un peu moins bon, mais plus flexible.
Compétences existantes
Vous avez sûrement dans votre équipe ou votre entreprise un ou des développeurs qui maîtrisent bien un ou plusieurs frameworks particuliers, ce qui est essentiel à prendre en compte, car cela peut peser lourd dans votre choix. Cela signifie généralement moins de temps d’apprentissage et d’adaptation pour au moins un membre de l’équipe. Aussi, ce ou ces membres peuvent devenir une ressource très appréciée de leurs collègues plus néophytes. Avoir de l’expérience aide aussi à éviter les erreurs communes et à adopter les meilleures pratiques plus tôt.
Facilité de déploiement et de configuration
Ce ne sont pas tous les frameworks qui sont égaux quand il s’agit de facilité d’installation. Heureusement, dans les dernières années, avec la popularité croissante des plateformes de conteneurs telle que Docker, le processus de déploiement d’applications est devenu plus simple et uniformisé, mais il faut d’abord apprendre à utiliser ces plateformes. Si pour quelque raison vous décidez de ne pas utiliser des conteneurs, mais des machines virtuelles plus classiques, alors le processus peut varier grandement. Il est donc important, lors de la phase d’exploration, de bien noter les efforts requis pour faire fonctionner les différents frameworks, en incluant aussi la complexité de la configuration nécessaire. Cela pourrait ainsi vous faire économiser du temps lors des futurs déploiements, à chaque nouvelle version de l’application.
Sécurité
Finalement, un dernier critère, et non le moindre, est la sécurité qu’offre le framework, car généralement une application web a besoin de sauvegarder des données des utilisateurs, ce qui a le potentiel d’ouvrir plusieurs brèches. Il faut donc s’assurer que celui qu’on compte utiliser offre les options de sécurité les plus à jour en termes d’algorithmes de chiffrement et de hachage des mots de passe. Il faut aussi vérifier si HTTPS est supporté avec la dernière version de TLS ainsi que SHA-2 pour le certificat. De plus, comme des failles de sécurité sont régulièrement découvertes, il est important d’utiliser un framework souvent mis à jour pour colmater d’éventuelles brèches dès qu’elles sont découvertes. Il est à noter cependant qu’il faut aussi faire attention aux plug-ins que l’on va utiliser, car ils peuvent introduire des failles dans un framework autrement sécuritaire, comme cela est souvent arrivé à Wordpress par exemple.