web-dev-qa-db-fra.com

Quelle est la différence entre une bibliothèque et une dépendance?

Dans cet ensemble Vidéo Docker Débutant Son expliqué, que différentes piles peuvent dépendre de différentes bibliothèques et dépendances et que cela peut être manipulé avec Docker.

Cependant, je ne reçois pas ce que la différence devrait être entre une bibliothèque et une dépendance. Comme je le vois, une bibliothèque est une collection de code/packages et une dépendance est une bibliothèque que la base de données/WebServer/outil dépend.

Alors y a-t-il une différence? Ou dit "une base de données s'appuie sur des bibliothèques et des dépendances spécifiques" de la même manière que "une base de données s'appuie sur des bibliothèques spécifiques"?

43
Adam

Les bibliothèques et les dépendances sont comme -personnes et parents: une seule est une entité (quelque chose), l'autre est une entité relationnel.

Je suis une personne. Ma nièce est aussi une personne. Mais pour elle, je suis un relatif. Vous ne pouvez pas simplement être un parent par nature; Vous êtes toujours un relative de quelqu'un d'autre.

De même, une bibliothèque de code ne devient qu'une dépendance seulement lorsqu'un autre projet l'utilise, puis il s'agit d'une dépendance de ce projet et non d'un autre. Même si une bibliothèque de code est inventée spécifiquement pour d'autres projets à utiliser, ce n'est pas une dépendance avant que cela ne se produise réellement.

99
Kilian Foth

Si une application utilise une bibliothèque, l'application a ne dépendance sur cette bibliothèque.

Les bibliothèques ne sont pas le seul type de dépendance qu'une application peut avoir. Le logiciel peut également dépendre de:

  • fichiers de configuration
  • pilotes de périphérique
  • bases de données
  • etc.

Donc, "la bibliothèque VS" est comme "Fruit vs Apple". Les bibliothèques sont un type de dépendance, tout comme les pommes sont un type de fruit.

40
Rik D

Dépendance

Dans l'image Docker, vous avez dépendances sur différents types et versions de:

  • oS sous-jacents (Centos, Debian, Windows, ...)
  • base de données (Mongo, PostgreSQL, Elasticssearch, ...)
  • outils et programmes (Curl, Git, Awk, Wget, ...)
  • serveurs (Ngnx, Tomcat, ...)
  • plateformes (Java, Nodejs, Python ...)
  • cadres (printemps, angular, lecture, noyau .net, Django ...)
  • bibliothèques

Bibliothèques

Un code compilé qui a une fonctionnalité facilement disponible pour être consommé dans un programme. Sa manuellement définie par le programmeur ou son requis par le cadre lui-même.

Maintenant, dans le contexte de Docker, de nombreuses bibliothèques seront installées par tous les composants mentionnés ci-dessus tels que des outils, des plates-formes ..

raisonnement

Dans le didacticiel Docker pour les débutants vidéo, je définirais des bibliothèques et des systèmes d'exploitation en tant que sous-ensemble de dépendances. Les bibliothèques font partie des dépendances qui seront nécessaires pour créer une image Docker et, principalement elles seront gérées par les différentes dépendances elles-mêmes.

On devrait dire: "La base de données s'appuie sur des bibliothèques spécifiques et d'autres dépendances" (comme @Rick D mentionné dans le commentaire).

12
RenatoIvancic

Une bibliothèque est un logiciel spécifique destiné à être consommé par un autre programme. En règle générale, la bibliothèque traitera d'un groupe spécifique/groupe de problèmes spécifiques (bien qu'ils puissent parfois se développer à un point où il est difficile d'identifier ce que le problème initial est/était). Une bibliothèque peut être interne ou d'une tierce partie. En règle générale, une bibliothèque est également quelque chose qui n'est pas exécutable, mais nécessite la consommation.

Une dépendance, comme la réponse antérieure suggérée, est une relation entre deux pièces de code. Le premier code appelle au deuxième code pour effectuer une action ou renvoyer certaines informations. La partie clé, cependant, est que le premier code n'a plus de contrôle sur la mise en œuvre de l'action ou des informations. Cela peut être une bibliothèque, une structure, une source de base de données, un appel de l'API ou même une fonction distincte. Si vous avez un programme de fonctions unique et décidez de vous en sortir en une seconde fonction appelée, votre fonction principale a maintenant une dépendance sur le second. Vous avez peut-être toujours un contrôle sur la nouvelle fonction, mais votre fonction principale n'a plus de contrôle sur la manière dont le travail est mis en œuvre.

11
Brian Place