Saat menggunakan fitur untuk mengelola penyebaran, haruskah saya memecah fungsionalitas saya menjadi banyak fitur kecil atau satu fitur besar?

15

Saya relatif baru pada modul fitur dan saya telah membaca rekomendasi kontradiktif online mengenai apakah paling mudah untuk mempertahankan A) satu fitur besar atau B) beberapa fitur yang lebih kecil dan kemudian modul tipe " fitur-controller " yang mencantumkan semua fitur yang lebih kecil sebagai dependensi.

Sedikit tentang situasi spesifik saya: Saya menggunakan local development -> dev server -> staging server -> live serveralur kerja. Situs khusus ini hampir pasti akan menjadi satu-satunya dari jenisnya yang pernah saya kembangkan; Saya tidak bermaksud menggunakan featuresSaya buat untuk situs ini di situs lain mana pun.

Ini membuat saya condong ke arah melakukan segala sesuatu dalam satu fitur besar karena saya punya masalah di masa lalu di mana saya secara tidak sengaja mendefinisikan aturan yang sama dalam banyak fitur dan mendapat masalah. Namun, dalam hal struktur sepertinya ini salah bagi saya - ada fitur / fungsi yang berbeda sehingga mereka harus dibagi menjadi fitur yang terpisah. Di sisi lain, saya merasa dengan melakukan ini, saya hanya dapat membuat pekerjaan tambahan dan biaya tambahan untuk diri saya sendiri yang tidak akan menguntungkan siapa pun.

Pendekatan mana yang lebih mudah dipertahankan dalam praktik sebenarnya - satu fitur besar atau banyak yang lebih kecil?

Patrick Kenny
sumber

Jawaban:

7

Buat beberapa Fitur kecil, dibagi dengan lapisan konseptual .

Keuntungan:

  1. Granularity saat meninjau Override dan melakukan Reverts - jadi Anda tidak harus mengembalikan semuanya sekaligus.
  2. Modularitas - bahkan jika Anda tidak berencana untuk menggunakan kembali komponen individu, memecah hal-hal menjadi modul diskrit akan membantu dengan pemeliharaan.

Untuk menyebarkan satu situs dari pengembangan ke pengujian hingga produksi, kami menggunakan taksonomi berikut (di mana "situs" diganti dengan nama mesin unik untuk situs) -

  • site_typesFitur - menyatakan Jenis Konten, Bidang, pengaturan ImageCache, Peran Pengguna
  • site_structureFitur - menyatakan Konteks, Tampilan, Menu dan Tautan Menu , Blok, Izin Pengguna, Variabel
    • tergantung pada site_typesFitur
  • site_contentFitur - menyatakan Nodes
    • tergantung pada site_structureFitur

Jika ada beberapa bagian situs yang berbeda (misalnya, Publik vs Pribadi), pertimbangkan untuk membagi lebih lanjut:

  • site_types Fitur
  • site_structure Fitur - menyatakan komponen struktural yang umum untuk Publik dan Privat
    • tergantung pada site_typesFitur
  • site_public_structure Fitur
    • tergantung pada site_typesFitur
  • site_public_content Fitur
    • tergantung pada site_public_structureFitur
  • site_private_structure Fitur
    • tergantung pada site_typesFitur
  • site_private_content Fitur
    • tergantung pada site_private_structureFitur
smokris
sumber