Qu'est-ce que Bucket signifie?

17

J'ai trouvé dans le code hérité une classe dont le nom est BucketService.

Parce que l'anglais n'est pas ma langue maternelle, j'essayais de traduire cela, mais cela n'a pas de sens.

J'ai trouvé peu de termes comme le tri des seaux et ainsi de suite, mais je ne comprends toujours pas. En fait, ce mot est utilisé assez fréquemment dans la programmation

Je serais utile pour une explication simple de ce mot

user278618
la source
1
ne jugez jamais la classe par son nom. Quelle API expose-t-elle? quel état contient-il? comment est-il utilisé / invoqué / instancié? sans le savoir, la seule bonne réponse à une question comme la vôtre semble être Mu
gnat
2
En particulier avec un nom non descriptif comme "BucketService" - cela ressemble à "UtilityManager" ou "ThingDoer". Avec un nom vague comme ça, votre seule option est de regarder le code. Malheureusement, les classes avec des noms que vagues ne sont généralement un peu de tout (ou beaucoup de tout, si vous êtes malchanceux).
Tacroy

Réponses:

36

Un seau en anglais est un appareil pour retenir l'eau.

Lorsqu'il est utilisé dans un logiciel, cela signifie normalement un type de données qui regroupe les objets.

Le terme est souvent utilisé lorsque l'on parle d' algorithmes de hachage , où différents éléments qui ont le même code de hachage (collision de hachage) vont dans le même "compartiment". Cela signifie que les objets sont regroupés par hachage.

En général, une fonction de hachage peut mapper plusieurs clés différentes sur le même index. Par conséquent, chaque emplacement d'une table de hachage est associé (implicitement ou explicitement) à un ensemble d'enregistrements, plutôt qu'à un seul enregistrement. Pour cette raison, chaque emplacement d'une table de hachage est souvent appelé un compartiment, et les valeurs de hachage sont également appelées des indices de compartiment.

De manière informelle, j'ai vu le terme utilisé avec des dictionnaires dont la valeur (et non la clé) est une collection d'éléments.


Wikipedia a une page dédiée au terme tel qu'il est utilisé en informatique - Bucket (Computing) :

En informatique, le terme seau peut avoir plusieurs significations. Il est utilisé à la fois comme métaphore vivante et comme terme technique généralement accepté dans certains domaines spécialisés. Un compartiment est le plus souvent un type de tampon de données ou un type de document dans lequel les données sont divisées en régions.

Oded
la source
6
+1 vous m'avez battu! Je voudrais ajouter que l'objectif des éléments de tri de l'algorithme de hachage dans des compartiments permet une récupération et un tri plus rapides des grandes collections. Si je veux rechercher 20 éléments pour un élément spécifique, alors la manière inefficace serait de rechercher un à la fois par ID. Une meilleure façon serait pour une collection de conserver des éléments avec le même hachage dans un compartiment , donc seuls quelques éléments doivent être recherchés dans le compartiment plutôt que dans la liste entière.
maple_shaft
@maple_shaft - Bon point sur l'utilisation des seaux dans le hachage. Je ne pensais pas que cela soit pertinent pour la question :)
Oded
0

C'est peut-être une référence au «seau de bits». C'est là que les bits décalés d'un octet se déplacent vers la gauche et la droite.

Jon Strayer
la source