Cosa significa secchio?


17

Ho trovato nel codice legacy una classe il cui nome è BucketService.

Perché l'inglese non è la mia lingua madre, stavo cercando di tradurlo, ma non ha senso.

Ho trovato alcune termine come l'ordinamento dei secchi e così via, ma ancora non capisco. In realtà questa parola è usata abbastanza frequentemente nella programmazione

Sarei utile per qualche semplice spiegazione di quella parola


1
mai giudicare la classe con il suo nome. Quale API espone? quale stato contiene? come viene usato / invocato / istanziato? senza sapere che, l'unica risposta corretta alla domanda come la vostra sembra essere Mu
moscerino

2
Soprattutto con un nome anonimo come "BucketService" - suona come "UtilityManager" o "ThingDoer". Con un nome vago come quello, l'unica opzione è guardare il codice. Purtroppo, le classi con nomi che vaga in genere fare un po 'di tutto (o un sacco di tutto, se siete sfortunati).
Tacroy,

Risposte:


36

Un secchio in inglese è un dispositivo per trattenere l'acqua.

Se utilizzato nel software, normalmente indica un tipo di dati che raggruppa gli oggetti.

Il termine viene usato spesso quando si parla di algoritmi di hashing , in cui elementi diversi che hanno lo stesso codice hash (collisione hash) vanno nello stesso "secchio". Significato, gli oggetti sono raggruppati per l'hash.

In generale, una funzione di hashing può mappare diversi tasti diversi sullo stesso indice. Pertanto, ogni slot di una tabella hash è associato (implicitamente o esplicitamente) a una serie di record, piuttosto che a un singolo record. Per questo motivo, ogni slot di una tabella hash viene spesso chiamato bucket e i valori hash vengono anche chiamati indici bucket.

Informalmente, ho visto il termine usato con dizionari il cui valore (non chiave) è una raccolta di oggetti.


Wikipedia ha una pagina dedicata al termine usato nell'informatica - Bucket (Informatica) :

Nell'informatica, il termine bucket può avere diversi significati. È usato sia come metafora dal vivo, sia come termine tecnico generalmente accettato in alcune aree specializzate. Un bucket è più comunemente un tipo di buffer di dati o un tipo di documento in cui i dati sono suddivisi in aree.


6
+1 mi hai battuto! Vorrei aggiungere che lo scopo dell'algoritmo di hash che ordina gli elementi in bucket consente un recupero e un ordinamento più rapidi di grandi raccolte. Se voglio cercare 20 articoli per un articolo specifico, il modo inefficiente sarebbe quello di cercare uno alla volta per ID. Un modo migliore sarebbe che una raccolta conservasse gli oggetti con lo stesso hash in un bucket , quindi solo alcuni elementi devono essere cercati nel bucket anziché nell'intero elenco.
maple_shaft

@maple_shaft - Un buon punto sull'uso dei bucket nell'hashing. Non pensavo fosse pertinente alla domanda :)
Oded,

0

Forse è un riferimento a "bit bucket". Ecco dove i bit che vengono spostati da un byte vanno sui bit sinistro e destro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.