Berbutir kasar vs berbutir halus


129

Apa perbedaan antara berbutir kasar dan berbutir halus?

Saya telah mencari istilah-istilah ini di Google, tetapi saya tidak dapat menemukan apa artinya.


Saya kira pertanyaannya tidak cukup spesifik. Istilah-istilah ini tidak hanya digunakan untuk menjelaskan perincian komponen sistem . Mereka juga digunakan untuk menjelaskan perincian kontrol akses (dan mungkin ada lebih banyak penggunaan ...).
untuk

Jawaban:


137

Dari Wikipedia (perincian) :

Granularitas adalah sejauh mana suatu sistem dipecah menjadi bagian-bagian kecil, baik sistem itu sendiri atau deskripsi atau pengamatannya. Ini adalah sejauh mana entitas yang lebih besar dibagi lagi. Misalnya, halaman yang dipecah menjadi inci memiliki perincian yang lebih halus daripada halaman yang dipecah menjadi kaki.

Sistem berbutir kasar terdiri dari lebih sedikit komponen yang lebih besar daripada sistem berbutir halus; deskripsi kasar dari suatu sistem menganggap subkomponen besar sedangkan deskripsi berbutir halus menganggap komponen yang lebih kecil dari yang tersusun lebih besar.


39

Secara sederhana

  • Berbutir kasar - komponen lebih besar daripada subkomponen besar dan berbutir halus. Cukup gabungkan satu atau beberapa layanan berbutir halus menjadi operasi yang lebih berbutir kasar.
  • Butir halus - komponen yang lebih kecil di mana komponen yang lebih besar tersusun, layanan tingkat rendah

Lebih baik memiliki operasi layanan yang lebih terperinci, yang disusun oleh operasi terperinci

masukkan deskripsi gambar di sini


25

Berbutir kasar: Beberapa proyek menyimpan banyak data terkait, itulah sebabnya layanan memiliki cakupan fungsionalitas yang lebih luas. Contoh: Satu objek "Akun" berisi nama pelanggan, alamat, saldo akun, tanggal pembukaan, tanggal perubahan terakhir, dll. Jadi: Kompleksitas desain meningkat, jumlah sel yang lebih kecil untuk berbagai operasi

Fine-grained: Lebih banyak objek yang masing-masing menyimpan lebih sedikit data, itulah sebabnya layanan memiliki cakupan fungsionalitas yang lebih sempit. Contoh: Objek Akun menyimpan saldo, objek Pelanggan berisi nama dan alamat, objek AccountOpenings berisi tanggal pembukaan, dll. Jadi: Kompleksitas desain menurun, jumlah sel yang lebih tinggi untuk berbagai operasi layanan. Ini adalah hubungan yang ditentukan antara objek-objek ini.


Lebih baik memiliki operasi layanan yang lebih terperinci, yang disusun oleh operasi yang lebih terperinci.
Humaun Rashid Nayan


6

Satu cara lagi untuk memahaminya adalah dengan berpikir dalam kaitannya dengan komunikasi antara proses dan utas. Proses berkomunikasi dengan bantuan mekanisme komunikasi kasar seperti soket, penangan sinyal, memori bersama, semaphore, dan file. Thread, di sisi lain, memiliki akses ke ruang memori bersama yang termasuk dalam suatu proses, yang memungkinkan mereka untuk menerapkan mekanisme komunikasi grain yang lebih halus.

Sumber: konkurensi Java dalam praktik


3

Dalam istilah dataset seperti file teks, Coarse-grained artinya kita dapat mentransformasikan seluruh dataset tetapi bukan elemen individual pada dataset. Sedangkan fine-grained berarti kita dapat mentransformasikan elemen individual pada dataset.


2

Dalam konteks layanan:

http://en.wikipedia.org/wiki/Service_Granularity_Principle

Menurut definisi, operasi layanan berbutir kasar memiliki cakupan yang lebih luas daripada layanan berbutir halus, meskipun istilahnya relatif. Yang pertama biasanya memerlukan peningkatan kompleksitas desain tetapi dapat mengurangi jumlah panggilan yang diperlukan untuk menyelesaikan tugas.

Antarmuka layanan berbutir halus hampir sama dengan antarmuka yang cerewet.


2

Baik berbutir kasar dan halus berpikir tentang mengoptimalkan sejumlah layanan. Namun perbedaannya ada pada levelnya. Saya suka menjelaskan dengan contoh, Anda akan mengerti dengan mudah.

Halus : Misalnya, saya memiliki 100 layanan seperti findbyId, findbyCategry, findbyName ...... dll. Dari pada sekian banyak service kenapa kita tidak bisa memberikan find (id, category, name .... dst). Jadi dengan cara ini kami dapat mengurangi layanan. Ini hanya contoh, tapi tujuannya adalah bagaimana mengoptimalkan jumlah layanan.

Berbutir kasar : Misalnya, saya memiliki 100 klien, setiap klien memiliki 100 layanan mereka sendiri. Jadi saya harus menyediakan 100 * 100 layanan total. Ini sangat sulit. Alih-alih yang saya lakukan adalah, saya mengidentifikasi semua layanan umum yang berlaku untuk sebagian besar klien sebagai satu set layanan dan tetap terpisah. Misalnya dalam 100 layanan, 50 layanan sudah biasa. Jadi saya harus mengelola 100 * 50 + 50 saja.


1

Perincian berbutir kasar tidak selalu berarti komponen yang lebih besar, jika Anda menggunakan arti harfiah dari kata kasar, itu berarti kasar, atau tidak sesuai. misalnya Dalam manajemen proyek perangkat lunak, jika Anda memecah sistem kecil menjadi beberapa komponen, yang ukurannya sama, tetapi bervariasi dalam kompleksitas dan fitur, ini dapat menyebabkan perincian yang sangat kasar. Sebaliknya, untuk perincian halus, Anda akan membagi komponen berdasarkan keterpaduan fungsionalitas yang disediakan setiap komponen.


1

berbutir kasar dan berbutir halus. Kedua mode ini menentukan bagaimana inti dibagi antara beberapa tugas Spark. Seperti namanya, mode halus bertanggung jawab untuk berbagi inti pada tingkat yang lebih terperinci. Mode halus sudah tidak digunakan lagi oleh Spark dan akan segera dihapus.


1

Layanan berbutir halus memberikan fungsi yang lebih luas dibandingkan dengan layanan berbutir halus. Bergantung pada domain bisnis, satu layanan dapat dibuat untuk melayani satu unit bisnis atau beberapa layanan khusus dapat dibuat jika subunit sebagian besar tidak bergantung satu sama lain. Layanan berbutir kasar mungkin menjadi lebih sulit mungkin kurang dapat beradaptasi dengan perubahan karena ukurannya sementara layanan berbutir halus dapat memperkenalkan kompleksitas tambahan dalam mengelola beberapa layanan.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.