Logo Spiria

Comment choisir son framework d’application web (1re partie)

21 mars 2017.

Si vous avez déjà participé à la conception de l’architecture d’une application Web, vous avez probablement déjà eu de longues conversations, ou même parfois de chauds débats, sur les technologies qui seraient les plus appropriées pour le projet….

Avec la multitude de langages et de frameworks disponibles, décider quelles technologies utiliser peut s’avérer une tâche difficile, et lourde en conséquence puisque changer de décision en plein milieu de développement devient vite très coûteux. Inversement, rester pris avec une architecture inappropriée peut entraîner des coûts élevés à long terme, avec l’ajout de délais d’implémentation lors de la réalisation de l’application, ainsi qu’après, durant la phase de maintenance. Dans le but d’aiguiller ces choix, je présenterai dans cet article cinq premiers critères à considérer lors d’une planification de projet d’application Web, sans ordre précis. Ces critères concernent surtout les frameworks back-end, mais peuvent aussi s’appliquer dans une certaine mesure pour le front-end. Cinq autres seront présentés dans une deuxième partie.

Besoins de l’application

Tout d’abord, il est important de bien définir ce que l’application aura besoin de faire avant de choisir un framework, puisque plusieurs sont spécialisés, ou bien trop généralistes. Une fois que vous avez une bonne liste de besoins en main, il sera bien plus facile d’orienter les recherches afin d’établir une première liste de frameworks à évaluer. Cela évite aussi de rechercher à l’aveugle et de perdre trop de temps à regarder des frameworks qui en fin de compte n’apporteront rien à votre application.

Popularité du framework

Un des critères les plus déterminants, et pourtant parmi les moins techniques, est la popularité du framework. C’est particulièrement important, parce que plus un framework est populaire, plus la communauté sera active. Cela veut notamment dire plus de réponses à des problèmes communs sur des sites comme StackOverflow.com, plus de tutoriels, plus de plug-ins, plus de contributions s’il est open source, et une plus longue durée de vie. Aussi, les développeurs ont tendance à préférer travailler avec ces frameworks plus populaires, et même à les utiliser pour des projets personnels, ce qui peut réduire le temps de formation et d’adaptation nécessaire en début de projet.

Documentation disponible

Malheureusement, tous les frameworks ne sont pas nés égaux, et ne possèdent donc pas tous une documentation de qualité supérieure. Il est par conséquent important, avant d’utiliser un framework, de jeter un coup d’œil à sa documentation, afin de vérifier si elle est bien complète. Des exemples nombreux et des tutoriels sont généralement de bons indices d’une bonne documentation. Aussi, vérifiez que la documentation est à jour avec la dernière version du framework, et vérifiez aussi que celle des anciennes versions est disponible, afin d’éviter d’être pris avec une documentation trop récente lorsque votre application sera en fin de vie.

Coûts

Un facteur important à considérer lors d’un choix de framework est que certains ne sont pas gratuits, ou bien ne sont disponibles que sur des plateformes payantes, comme ASP.NET (à l’exception de la nouvelle version Core) qui nécessite un serveur Windows. Les coûts peuvent donc s’accumuler rapidement selon l’ampleur de l’application et en fonction du nombre de licences nécessaires. Aussi, plusieurs modules peuvent être payants, et ces coûts doivent aussi être pris en compte. Il est à noter que certains frameworks open-source sont développés par des compagnies qui vendent leur service de support, ce qui peut s’avérer intéressant afin de minimiser les risques.

Extensibilité

Un dernier critère à prendre en compte, si vous pensez en avoir besoin, est la facilité à étendre les fonctionnalités d’un framework, surtout à l’aide de plug-ins. Si vous êtes en train d’évaluer un framework, mais qu’il manque des fonctionnalités clés pour votre future application, il y existe peut-être des plug-ins qui rajoutent ces fonctionnalités, sans nécessiter beaucoup d’efforts de développement. Par conséquent, pensez à vérifier s’il y existe des sites qui cataloguent les différents modules disponibles, et s’ils sont nombreux, à jour, et utilisés, car devoir baser son application sur un plug-in niche utilisé par quelques dizaines de sites Web peut se traduire en maux de tête lorsque vous vous retrouvez avec un bogue coriace ou bien si la documentation générale est insuffisante.