Chaque fois que je travaille sur un projet avec des visualisations, des gestionnaires de projet réagissent habituellement dans l’horreur quand je dis que je ne suis pas à l’aide de D3. Pourquoi est-il préoccupant? Pourquoi choisirais-je de ne pas utiliser D3?
en répondant à ces questions, nous devons comprendre le contexte dans lequel D3 a été créé., D3 a été publié pour la première fois en 2011, et il était assez innovant à l’époque.
Normalement, ce que vous verriez, ce sont des bibliothèques qui fournissent des graphiques prêts à l’emploi et avec une liste massive d’options. Cela peut fonctionner, mais le problème est que chaque fois que quelqu’un a une nouvelle exigence, une option devrait être ajoutée et prise en charge. Finalement, vous vous retrouvez avec ce qui est effectivement un langage où vous utilisez plusieurs objets pour définir un graphique. D3 a adopté une approche différente, au lieu de vous donner les composants complets, il vous donne des fonctions d’assistance pilotées par les données pour créer ces composants vous-même.,
à cette époque, les bibliothèques comme jQuery et Backbone étaient populaires. Créer vos propres graphiques en utilisant ces bibliothèques aurait été difficile, surtout si vous voulez qu’ils soient dynamiques. Les navigateurs ne faisaient qu’adopter de nouvelles normes CSS modernes comme les transitions, et des propriétés plus modernes comme flex box étaient encore loin d’être implémentées.
D3 a résolu beaucoup de ces problèmes, et c’était sans doute l’approche la plus simple pour implémenter des visualisations à l’époque. Cependant, beaucoup de choses ont changé depuis., Nous avons de nouveaux frameworks modernes qui utilisent des concepts plus flexibles et expressifs tels que virtual DOM, et CSS a tellement de nouvelles capacités pour la mise en page et les animations.
plutôt que de passer automatiquement à D3, laissez-moi énumérer quelques raisons pour lesquelles vous devriez reconsidérer votre utilisation de celui-ci.
j’ai travaillé avec D3 à de nombreuses reprises au cours des dernières années, et j’ai implémenté toutes sortes de visualisations avec lui. Je comprends les concepts généraux de D3, et j’ai encore du mal à travailler avec. Tous ceux avec qui j’ai travaillé, des juniors aux développeurs seniors, ont également du mal à le faire., Ce que beaucoup de gens, y compris moi-même, c’est que nous trouvons un exemple en ligne qui correspond à peu près à ce que nous recherchons, et modifions l’exemple pour répondre à nos besoins.
Si nous voulons ajouter des fonctionnalités personnalisées, nous allons probablement faire plus de recherche, et trouver quelque chose qui semble correct, essayer de comprendre comment cela fonctionne et continuer à le modifier jusqu’à ce qu’il fasse ce que nous voulons qu’il fasse.
cela vous semble-t-il familier? D’autre part, les développeurs de nos jours sont très familiers avec les bibliothèques Dom virtuelles et ils sont familiers avec les modèles., N’est-il pas plus logique de tirer parti de ces compétences, plutôt que d’introduire une bibliothèque qui nécessite une façon de penser entièrement différente?
c’est plus facile que vous ne le pensez
lorsque vous pensez pour la première fois à créer vos propres graphiques à partir de zéro, il est courant de se sentir inquiet et terrifié. Cela peut sembler un composant très compliqué à créer, mais ce n’est vraiment pas le cas lorsque vous le décomposez. Prenons un exemple de graphique linéaire. Voici comment vous feriez un graphique linéaire en D3:
Source: bl.ocks.,voici comment je ferais quelque chose comme ça en utilisant Preact:
et le CSS:
Source: JSFiddle