17 critères pour relancer votre recherche et votre évaluation de bibliothèques tierces

Pourquoi réinventer la roue? En tant que développeurs, nous réfléchissons souvent à cette question. Chaque fois que nous sommes sur le point d'introduire une nouvelle fonctionnalité, nous avons tendance à regarder autour de nous pour voir si les outils, les bibliothèques et les frameworks existants disponibles pourraient faciliter notre travail. Après tout, vaut-il vraiment la peine d'investir du temps et des efforts pour reproduire quelque chose qui a peut-être déjà été créé et optimisé? Ou vaudrait-il mieux utiliser la solution existante et l’adapter pour atteindre notre objectif plus efficacement?

La plupart du temps, tout se résume à savoir si les solutions existantes répondent à nos besoins techniques et dans quelle mesure elles correspondent aux exigences de notre entreprise. Pour cette raison, la recherche et l'évaluation minutieuses de bibliothèques tierces sont devenues une activité très courante parmi les développeurs. Malheureusement, la recherche et l'identification de la bibliothèque tierce la plus appropriée est une tâche complexe et la comparaison de différentes bibliothèques peut souvent devenir fastidieuse.

Chez Panaseer, nous avons compris que l’établissement et l’utilisation d’un cadre d’évaluation comprenant un ensemble de critères de développement et d’activités peuvent faciliter le processus. Une liste bien définie de domaines critiques à étudier fournit une orientation claire au cours de l'activité de recherche. De plus, évaluer plusieurs bibliothèques par rapport aux mêmes exigences permet des discussions plus ouvertes et transparentes.

La liste suivante est le résultat d'une recherche en soi, à travers laquelle nous avons identifié un ensemble de critères que nous utilisons pour décider de l'adoption ou de l'intégration d'une bibliothèque tierce chez Panaseer. Bien que cette liste reflète les domaines que nous considérons comme essentiels pour notre secteur d’activité et de développement, nous espérons qu’elle vous encouragera à définir vos propres critères en fonction de votre vision et de votre culture.

1. but

Quelle est la fonctionnalité de base offerte par la bibliothèque?

Bien que différentes bibliothèques tierces résolvent le même problème, elles ont souvent des objectifs distincts et offrent donc des fonctionnalités uniques supplémentaires. En notant cela, nous pouvons déterminer lequel correspond le mieux à nos exigences, présentes et futures. Par exemple, lors de l'évaluation de bibliothèques de visualisation pour générer des graphiques à barres, une bibliothèque spécifique peut être plus appropriée que d'autres en raison des types de graphique supplémentaires qu'elle fournit.

2. technologie

Sur quelle technologie repose la bibliothèque? Comment pourrait-il s'intégrer avec la base de code existante?

Nous souhaitons examiner la technologie de chaque bibliothèque en raison de son impact potentiel sur l'expérience utilisateur et le travail de développement, y compris l'intégration avec la base de code existante. Pour revenir à notre exemple de bibliothèques de visualisation, une bibliothèque tierce pourrait restituer des éléments via SVG, tandis qu'une seconde pourrait le faire à l'aide de l'API Canvas, ce qui peut influer à la fois sur l'activité et les performances de la mise en œuvre.

3. Kit de développement

Qu'est-ce que la bibliothèque fournit en termes de kit de développement? Est-il susceptible d'accélérer ou de ralentir le temps de développement?

Outre la technologie sous-jacente, nous étudions le kit de développement fourni par chaque bibliothèque tierce. Par exemple, nous examinons si certaines bibliothèques sont fournies avec des outils utiles ou des API complètes pouvant potentiellement faciliter la mise en œuvre de la solution requise.

4. Documentation

La documentation de la bibliothèque est-elle complète? Inclut-il des exemples et des extraits de code? Est-il facile de naviguer?

Une documentation bien rédigée, exhaustive et à jour est toujours précieuse, surtout lorsque vous développez une fonctionnalité avec une nouvelle bibliothèque tierce. Il suffit souvent de parcourir la documentation d’une bibliothèque pour avoir une idée de ce à quoi s’attendre et en tenir compte lors de la prise de décision finale.

5. Coût

Est-ce une bibliothèque gratuite ou premium? Quel serait le coût approximatif, le cas échéant? Quelles sont les options d'achat disponibles?

Déterminer quels sont les coûts monétaires liés à l’adoption d’une bibliothèque est très important pour une perspective commerciale et peut en fin de compte faire la différence dans le processus de prise de décision. Bien qu'il soit relativement simple de comparer les prix des bibliothèques Premium, nous devrions également prendre en compte le temps de développement et les coûts associés que chaque bibliothèque aurait besoin pour fournir la solution souhaitée.

6. Communiqués

Quelle est la version actuelle de la bibliothèque? La bibliothèque reçoit-elle des mises à jour régulières? Est-ce qu'il suit une stratégie de publication?

L'historique des versions d'une bibliothèque tierce est un bon indicateur de sa stratégie de publication. Il fournit un aperçu de ce à quoi on peut s'attendre pour cette bibliothèque en termes de mises à jour, de corrections de bugs et de modifications majeures. Ces facteurs jouent souvent un rôle majeur lorsque nous décidons quelle bibliothèque choisir. Une bibliothèque bien supportée avec une stratégie de publication fiable peut souvent prolonger la durée de vie des fonctionnalités créées avec elle.

7. taille

Quelle est la taille réelle du fichier de la bibliothèque? Combien cela va-t-il ajouter à la taille du paquet existant?

Bien que cela ne soit pas nécessairement crucial, il est toujours utile de regarder la taille des fichiers de la bibliothèque, en particulier dans leurs versions simplifiées, et de réfléchir à l’impact sur la taille du paquet existant. Habituellement, le plus petit, mieux c'est.

8. Soutien de la communauté

Quelle est la taille et la taille de la communauté autour de la bibliothèque? Combien de développeurs ont contribué au code source de la bibliothèque? Est-il facile de trouver des informations et de l'aide en ligne?

Selon la popularité ou la popularité de la bibliothèque, il peut s'avérer plus ou moins difficile d'obtenir des informations, des conseils et des réponses aux questions en ligne. Avoir une idée de ce à quoi s'attendre en termes de support gratuit peut déterminer la pertinence d'une bibliothèque tierce. Pour ce faire, nous collectons généralement des métriques simples au moyen de recherches en ligne rapides, telles que le nombre de contributeurs de bibliothèques sur GitHub ou les résultats de recherche de la bibliothèque sur StackOverflow.

9. Support professionnel

Existe-t-il un support professionnel disponible pour obtenir de l'aide avec la bibliothèque? Le soutien est-il fourni par les créateurs de la bibliothèque ou par des pigistes et des consultants externes?

Dans les cas où les bibliothèques tierces ne sont pas des sources ouvertes, il est généralement plus difficile d'obtenir des informations via des ressources en ligne telles que GitHub et StackOverflow. En tant que tel, nous recherchons quelles sont les options disponibles pour obtenir de l’aide tout en travaillant avec la bibliothèque, quels services professionnels sont fournis et quels sont les coûts.

10. Licence

Sous quelle licence la bibliothèque est-elle publiée et distribuée? Quelles sont les exigences associées?

Les bibliothèques Open Source sont accompagnées de licences permettant généralement l’utilisation, la modification et le partage de logiciels, tandis que les bibliothèques Premium incluent très souvent une liste précise d’exigences strictes. Selon sa licence, une bibliothèque tierce peut être plus ou moins adaptée à une société, une application ou une fonctionnalité donnée. Nous évaluons donc l’aspect licence avant d’adopter une bibliothèque spécifique afin de bien comprendre les obligations correspondantes et d’éviter des problèmes juridiques futurs.

11. Performance

Quelle est la performance de la bibliothèque? La performance attendue est-elle alignée sur les exigences techniques et les exigences de l'utilisateur?

L’évaluation des performances d’une bibliothèque tierce avant de l’intégrer dans la base de code existante est probablement l’une des tâches les plus difficiles. Au minimum, nous essayons de trouver des informations et des métriques en effectuant des recherches en ligne, dans la documentation de la bibliothèque ou, mieux encore, dans l’expérience des autres développeurs. De notre point de vue, les performances d’une bibliothèque doivent au moins respecter les exigences techniques et utilisateur identifiées pour la solution proposée.

12. Compatibilité du navigateur

Quels navigateurs sont pris en charge par la bibliothèque? Est-ce qu'il manque un navigateur critique?

La compatibilité entre navigateurs représente souvent un problème pour les développeurs front-end, encore plus lorsque vous utilisez des bibliothèques tierces. Dans notre expérience, trouver des informations sur les navigateurs pris en charge par une bibliothèque donnée devrait être assez simple et en valoir la peine.

13. Compatibilité des appareils

Quels périphériques sont pris en charge par la bibliothèque? Quels sont les modes d'interaction pris en charge?

Outre la compatibilité entre navigateurs, les bibliothèques frontales tierces doivent souvent être évaluées par rapport aux types de périphériques pris en charge. Par exemple, en fonction de la solution spécifique en cours de construction, il peut s'avérer nécessaire de sélectionner une bibliothèque intégrant entièrement la fonctionnalité tactile pour un système d'exploitation mobile spécifique. Même lorsque cela n’est pas explicitement requis, nous pensons qu’il est toujours judicieux de répertorier les périphériques compatibles lorsque vous parcourez une liste restreinte de bibliothèques, sinon rien d’autre pour évaluer leur potentiel pour l’avenir.

14. Format de données

Quelles sont les exigences de la bibliothèque en matière de format de données? La bibliothèque s'aligne-t-elle sur une structure de données normalisée?

Bien que toutes les bibliothèques tierces traitent des données d'une manière ou d'une autre par le biais d'entrées et de sorties, certaines d'entre elles peuvent avoir des exigences strictes en termes de structures ou de formats attendus. Pour nous, les lister et les évaluer nous permet de comprendre plus facilement si une bibliothèque peut être facilement intégrée à la base de code existante du point de vue des données.

15. Look & Feel

La bibliothèque a-t-elle un aspect distinctif? Comment est-il personnalisable? Peut-il être aligné sur celui de l'application existante?

Chaque fois qu'une bibliothèque tierce inclut une sortie visuelle, nous pensons que son apparence ne devrait pas sembler trop éloignée de celle de l'application existante. C’est pourquoi nous pensons que c’est une bonne idée de rechercher le caractère personnalisable de l’aspect et de la convivialité d’une bibliothèque, la technologie sur laquelle repose le style ainsi que l’investissement de temps nécessaire à la mise en place de l’aspect souhaité.

16. extensibilité

Est-il possible d'étendre les fonctionnalités de la bibliothèque? Est-ce encouragé? Des plugins ou extensions tiers sont-ils déjà disponibles?

En fonction de la fonctionnalité en cours de création et de la fonctionnalité fournie par la bibliothèque, il peut s'avérer nécessaire d'étendre ou d'optimiser les composants principaux de la bibliothèque. Toutes les bibliothèques tierces ne le permettent pas, car cela revient vraiment à la licence sous laquelle elles sont distribuées. Pour nous, étant donné les conséquences à long terme de l’adoption d’une bibliothèque spécifique, il est essentiel de comprendre les contraintes juridiques et techniques entourant son extension.

17. Orientation future

Quelle est la vision de la bibliothèque? Une feuille de route est-elle disponible? Cela correspond-il à celui de l'application existante?

Les informations relatives aux projets futurs d’une bibliothèque doivent toujours être prises en compte lors de l’évaluation des bibliothèques tierces. Nous pensons que cela fournit non seulement un aperçu des fonctionnalités à venir, des améliorations et des corrections de bugs, mais empêche également l’adoption de toute bibliothèque qui pourrait bientôt cesser de recevoir de l’assistance ou même être totalement ignorée.

Comme nous l’avons déjà mentionné, identifier et s’accorder sur un ensemble de critères d’évaluation de bibliothèques tierces peut avoir plusieurs objectifs, que ce soit pour orienter la recherche d’informations ou pour servir de base commune à la discussion et à la prise de décision. Naturellement, pour remplir pleinement ces objectifs, la liste elle-même doit refléter à la fois la nature des bibliothèques évaluées, ainsi que les exigences commerciales et techniques définies pour la fonctionnalité proposée. Les critères peuvent donc changer selon que l'évaluation porte sur les bibliothèques front-end ou back-end, sur les contraintes de temps existantes et, bien sûr, sur les leçons tirées des processus d'évaluation précédents.

Bien qu’il s’agisse d’un ensemble simple de domaines à étudier, l’utilisation d’un tel cadre chez Panaseer s’est déjà révélée très utile pour l’adoption de nouvelles bibliothèques front-end. Non seulement, en tant qu'équipe, nous évaluons, élargissons et optimisons en permanence notre liste de critères. Après tout, la meilleure partie de ce cadre est qu’il peut être facilement adapté à chaque but et contexte de recherche.

Et vous? Avez-vous un cadre établi pour évaluer les bibliothèques tierces? Pensez-vous qu'il nous manque des critères pertinents? Laissez nous savoir!