Apa yang dimaksud dengan Bucket?

17

Saya menemukan kode legacy di kelas yang namanya BucketService.

Karena bahasa Inggris bukan bahasa ibu saya, saya mencoba menerjemahkannya, tetapi itu tidak masuk akal.

Saya menemukan beberapa termin seperti penyortiran ember dan sebagainya, tetapi saya masih belum mengerti. Sebenarnya kata ini cukup sering digunakan dalam pemrograman

Saya akan sangat membantu untuk beberapa penjelasan sederhana dari kata itu

pengguna278618
sumber
1
jangan pernah menilai kelas dengan namanya. API apa yang diungkapkannya? keadaan apa yang dikandungnya? bagaimana ini digunakan / dipanggil / dipakai? tanpa mengetahui itu, satu - satunya jawaban yang benar untuk pertanyaan seperti milik Anda tampaknya adalah Mu
nyamuk
2
Terutama dengan nama tidak jelas seperti "BucketService" - sepertinya "UtilityManager" atau "ThingDoer". Dengan nama yang tidak jelas seperti itu, satu-satunya pilihan Anda adalah melihat kodenya. Sayangnya, kelas dengan nama yang tidak jelas umumnya melakukan sedikit dari segalanya (atau banyak dari semuanya, jika Anda beruntung).
Tacroy

Jawaban:

36

Sebuah ember dalam bahasa Inggris adalah alat untuk menahan air.

Ketika digunakan dalam perangkat lunak, biasanya berarti tipe data yang mengelompokkan objek bersama.

Istilah ini sering digunakan ketika membahas algoritma hashing , di mana item yang berbeda yang memiliki kode hash yang sama (tabrakan hash) masuk ke "ember" yang sama. Artinya, objek dikelompokkan berdasarkan hash.

Secara umum, fungsi hashing dapat memetakan beberapa kunci berbeda ke indeks yang sama. Oleh karena itu, setiap slot tabel hash dikaitkan dengan (secara implisit atau eksplisit) satu set rekaman, bukan satu rekaman tunggal. Untuk alasan ini, setiap slot tabel hash sering disebut ember, dan nilai hash juga disebut indeks ember.

Secara informal, saya telah melihat istilah yang digunakan dengan kamus yang nilainya (bukan kunci) adalah kumpulan item.


Wikipedia memiliki halaman yang didedikasikan untuk istilah yang digunakan dalam komputasi - Bucket (Komputasi) :

Dalam komputasi, istilah bucket dapat memiliki beberapa arti. Ini digunakan baik sebagai metafora hidup, dan sebagai istilah teknis yang diterima secara umum di beberapa bidang khusus. Ember biasanya merupakan tipe buffer data atau tipe dokumen yang datanya dibagi menjadi beberapa wilayah.

Oded
sumber
6
+1 Anda mengalahkan saya untuk itu! Saya ingin menambahkan bahwa tujuan dari elemen pengurutan algoritma hash ke dalam ember memungkinkan untuk pengambilan lebih cepat dan menyortir koleksi besar. Jika saya ingin mencari 20 item untuk item tertentu, maka cara yang tidak efisien adalah mencari satu per satu dengan ID. Cara yang lebih baik adalah koleksi menyimpan item dengan hash yang sama ke dalam ember , jadi hanya beberapa item yang perlu dicari dalam ember daripada seluruh daftar.
maple_shaft
@maple_shaft - Poin bagus tentang penggunaan bucket dalam hashing. Saya tidak berpikir itu relevan dengan pertanyaan itu :)
Oded
0

Mungkin itu referensi ke 'bit bucket'. Di situlah bit yang digeser dari satu byte pergi ke bit kiri dan kanan bergeser.

Jon Strayer
sumber