Haruskah Saya Menggunakan Kembali Bidang Drupal yang Ada?

Diterbitkan: 2022-02-16

Terkadang kita dapat memberikan nasihat yang sangat jelas: "Lakukan ini!" atau "Jangan lakukan itu!"

Ini tidak akan menjadi salah satu posting blog itu.

Drupal memberi Anda kemampuan untuk menggunakan kembali bidang. Jika Anda memiliki bidang "Gambar", Anda dapat memilih untuk menggunakan bidang yang sama pada setiap jenis konten di situs Anda. Namun, tidak selalu jelas apakah menggunakan kembali bidang adalah ide yang bagus. Kadang iya, kadang enggak.

Berikut adalah ikhtisar keuntungan dan kerugian yang perlu dipertimbangkan sebelum menggunakan kembali bidang Drupal.

Saran umum tentang penggunaan kembali bidang

Anda dapat memilih fitur "Gunakan kembali bidang yang ada" setiap kali Anda membuka "Struktur", lalu "Jenis konten" dan klik "Kelola bidang" untuk jenis konten.

gunakan kembali bidang drupal

Dokumentasi Drupal.org digunakan untuk secara resmi merekomendasikan agar Anda tidak menggunakan kembali bidang:

Disarankan untuk membuat bidang baru, daripada menggunakan kembali yang sudah ada, kecuali Anda memiliki alasan yang jelas untuk melakukannya.

Namun, saran itu menjadi lebih bernuansa dalam beberapa tahun terakhir, dan Drupal secara resmi mengatakan bahwa itu adalah kelebihan dan kekurangannya.

Dokumentasi UI Bidang Drupal memiliki bagian terperinci yang disebut "Menggunakan Kembali Bidang":

Ada dua alasan utama untuk menggunakan kembali bidang. Pertama, menggunakan kembali bidang dapat menghemat waktu Anda dalam menentukan bidang baru. Kedua, menggunakan kembali bidang juga memungkinkan Anda untuk menampilkan, memfilter, mengelompokkan, dan mengurutkan konten bersama-sama berdasarkan bidang di seluruh tipe konten. Misalnya, modul Tampilan yang dikontribusikan memungkinkan Anda membuat daftar dan daftar isi. Jadi, jika Anda menggunakan bidang yang sama pada beberapa tipe konten, Anda bisa membuat Tampilan yang berisi semua tipe konten tersebut bersama-sama menampilkan bidang itu, diurutkan menurut bidang itu, dan/atau difilter menurut bidang itu. Ada satu alasan utama untuk tidak menggunakan kembali bidang: izin yang berbeda. Misalnya, Anda mungkin memerlukan peran pengguna yang berbeda untuk memiliki tingkat akses yang berbeda ke bidang, bergantung pada tipe konten yang telah ditambahkan. Ini bisa sulit jika Anda menggunakan kembali bidang.

Keuntungan: menggunakan kembali bidang dapat membuat Anda lebih sederhana

Ya, mungkin ada peningkatan kecepatan, tetapi penghematan waktu sangat kecil. Keuntungan yang lebih menarik adalah bahwa penggunaan kembali bidang terkadang dapat membuat administrasi situs menjadi lebih sederhana. Inisiatif Web merangkum ini dengan baik:

Penggunaan kembali bidang juga dapat mengurangi kompleksitas sistem. Alih-alih membuat dan memelihara 10 bidang yang berbeda, admin Drupal hanya memelihara dua bidang dan dokumentasinya. Administrator basis data hanya perlu meningkatkan kinerja dua tabel tambahan. KISS selalu merupakan prinsip yang baik.

Pasti akan lebih mudah untuk menerapkan izin, pengaturan, dan elemen desain ke satu bidang yang digunakan kembali daripada 10 bidang unik.

Keuntungan: beberapa konten berfungsi dengan baik dengan bidang yang digunakan kembali

Kembali ke dokumentasi UI Bidang Drupal lagi:

menggunakan kembali bidang juga memungkinkan Anda untuk menampilkan, memfilter, mengelompokkan, dan mengurutkan konten bersama-sama berdasarkan bidang di seluruh tipe konten. Misalnya, modul Tampilan yang dikontribusikan memungkinkan Anda membuat daftar dan daftar isi. Jadi, jika Anda menggunakan bidang yang sama pada beberapa tipe konten, Anda bisa membuat Tampilan yang berisi semua tipe konten tersebut bersama-sama menampilkan bidang itu, diurutkan menurut bidang itu, dan/atau difilter menurut bidang itu.

Seorang penulis komentar pada dokumentasi Drupal.org membuat poin yang sama tentang Views. Mereka menunjukkan bahwa Tampilan dapat menyisir konten dengan cara yang canggih. Jadi, jika Anda memiliki beberapa tipe konten yang berbeda, dengan bidang tanggal yang berbeda, maka Tampilan dapat menggabungkannya menjadi satu tampilan. Namun, mereka juga menunjukkan bahwa Tampilan tidak begitu canggih dengan penyortiran. Jadi, jika Anda memiliki beberapa jenis konten yang berbeda, dengan bidang tanggal yang berbeda, maka Tampilan akan kesulitan untuk mengurutkan konten pada semua bidang tanggal yang berbeda tersebut.

Kekurangan: Bidang yang digunakan kembali tidak fleksibel

Brandon Williams di Twitter menyimpulkan ini dengan baik:

pada awalnya itu ide yang bagus, tetapi berikan beberapa minggu, reqs berubah, Anda akhirnya membuat yang terpisah pula

Untuk sebagian besar, jika Anda memilih bidang yang digunakan kembali, Anda membatasi perubahan yang dapat Anda lakukan dengan mudah pada data Anda nanti. Ini juga jauh lebih memakan waktu untuk membuat pembaruan karena Anda perlu mengedit setiap bidang satu per satu.

Kerugian: Bidang yang digunakan kembali membuat data lebih sulit untuk diekspor atau dimigrasi

Menggunakan kembali bidang dapat menjadi masalah saat Anda perlu mengekspor data atau saat Anda perlu bermigrasi ke versi baru Drupal atau platform lain.

Setiap bidang Drupal memiliki tabel databasenya sendiri, seperti yang ditunjukkan di bawah ini. Mengekstrak data itu bisa jadi sulit. Modul Fitur (cara paling umum untuk mengekspor data Drupal) berjuang untuk waktu yang lama dengan bidang bersama, meskipun versi saat ini dapat menanganinya dengan lebih efektif.

media_1392150946256.png

Saran ini mirip dengan pemikiran kami tentang penggunaan multi-situs. Setiap kali Anda mulai membangun dependensi antara basis kode atau tabel database, Anda menambahkan kompleksitas ke situs Anda.

Keuntungan atau kerugian? Pertunjukan

Dokumentasi Drupal menguraikan satu kemungkinan manfaat menggunakan kembali bidang:

Menggunakan kembali bidang tidak hanya membuat Drupal berjalan lebih cepat, tetapi juga membuat proyek Anda lebih mudah dirawat.

Utas di Stack Overflow ini memiliki diskusi yang sangat relevan tentang kinerja. Ini termasuk komentar ini:

Namun masalah sebenarnya adalah jumlah bidang yang Anda miliki. Karena saat ini di Drupal 7, konfigurasi bidang lengkap dari semua bidang, tidak peduli apakah itu dimuat atau tidak, diambil dari cache pada setiap permintaan. Saya telah melihat situs dengan 250+ bidang, di mana memuat dan membatalkan serial konfigurasi bidang membutuhkan memori 13MB+."

Jadi, menggunakan kembali bidang mungkin dapat memberikan sedikit peningkatan kinerja dengan membiarkan kami memiliki jumlah bidang yang lebih sedikit.

Namun, perbaikan kecil itu mungkin hilang di tempat lain. Ini dari Inisiatif Web lagi:

[bidang] kompleksitas ekstra ke sistem Drupal. Saat membuat bidang baru, definisi bidang ditambahkan ke tabel kelas bidang dan konfigurasi bidang ditambahkan ke tabel instance bidang; sementara itu, tabel baru ditambahkan ke database Drupal untuk menyimpan data lapangan. Tabel database menambah kompleksitas sistem. Selain itu, kueri node akan menimbulkan ekspresi JOIN dari tabel ke data lapangan. Beberapa GABUNG akan memengaruhi kinerja basis data karena MySQL merespons kueri dengan buruk dengan beberapa GABUNG tabel jika tidak dikonfigurasi dengan benar.

Ringkasan

Maaf kami tidak memiliki jawaban yang mudah untuk pertanyaan ini. Ini adalah pertanyaan di mana Anda akan mendapat manfaat dari membaca seputar masalah dan memahami pro dan kontra. Jika Anda melakukan pembuatan situs nyata, ada baiknya membangun situs dalam lingkungan pengujian untuk mempelajari lebih lanjut tentang bagaimana pro dan kontra ini memengaruhi kebutuhan situs Anda.