Quando utilizzo le funzionalità per gestire la distribuzione, dovrei suddividere la mia funzionalità in molte piccole funzionalità o in una grande funzionalità?


15

Sono relativamente nuovo nel modulo funzionalità e ho letto online raccomandazioni contraddittorie sul fatto che sia più facile mantenere A) una funzionalità grande o B) diverse funzionalità più piccole e quindi un modulo di tipo " controller di funzionalità " che elenca tutte le funzionalità più piccole come dipendenze.

Un po 'sulla mia situazione specifica: sto usando un local development -> dev server -> staging server -> live serverflusso di lavoro. Questo sito particolare sarà quasi certamente l'unico nel suo genere che io abbia mai sviluppato; Non intendo utilizzare la featurescreazione per questo sito su altri siti.

Questo mi spinge a fare tutto in un'unica grande funzione perché in passato ho avuto problemi in cui ho accidentalmente definito le stesse regole in più funzioni e mi sono messo nei guai. Tuttavia, in termini di struttura questo mi sembra sbagliato - ci sono diverse caratteristiche / funzioni, quindi dovrebbero essere divise in caratteristiche separate. D'altra parte, mi sento come se potessi creare solo lavoro aggiuntivo e spese generali per me stesso che non gioveranno a nessuno.

Quale approccio è più facile da mantenere nella pratica: una grande caratteristica o molte più piccole?

Risposte:


7

Crea diverse piccole caratteristiche, divise per livello concettuale .

vantaggi:

  1. Granularità durante la revisione delle sostituzioni e l'esecuzione dei ripristini, quindi non è necessario ripristinare tutto in una volta.
  2. Modularità: anche se non si prevede di riutilizzare i singoli componenti, suddividere le cose in moduli discreti contribuirà alla manutenibilità.

Per distribuire un singolo sito dallo sviluppo al test fino alla produzione, utilizziamo la tassonomia seguente (dove "sito" viene sostituito con un nome macchina univoco per il sito) -

  • site_typesFunzionalità: dichiara i tipi di contenuto, i campi, le impostazioni di ImageCache, i ruoli utente
  • site_structureFunzionalità: dichiara contesti, viste, menu e collegamenti ai menu , blocchi, autorizzazioni utente, variabili
    • dipende dalla site_typescaratteristica
  • site_contentFunzionalità: dichiara i nodi
    • dipende dalla site_structurecaratteristica

Se ci sono più sezioni distinte del sito (ad esempio, Pubblico vs Privato), considera di dividere ulteriormente le cose:

  • site_types caratteristica
  • site_structure Caratteristica: dichiara i componenti strutturali comuni sia al pubblico che al privato
    • dipende dalla site_typescaratteristica
  • site_public_structure caratteristica
    • dipende dalla site_typescaratteristica
  • site_public_content caratteristica
    • dipende dalla site_public_structurecaratteristica
  • site_private_structure caratteristica
    • dipende dalla site_typescaratteristica
  • site_private_content caratteristica
    • dipende dalla site_private_structurecaratteristica
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.