Garantire componenti non in conflitto in un sistema modulare

0

Quindi diciamo che stiamo creando un semplice framework "sistema modulare".

Le bare bare potrebbero essere la gestione degli utenti. Ma vogliamo che le cose come il Gestore delle pagine, il Blog, la Galleria di immagini siano tutti componenti "opzionali".

Quindi uno sviluppatore può installare Page Manager per consentire al proprio client di aggiungere una home page statica e una pagina con contenuto che possono essere facilmente modificati con un editor wysiwyg.

Lo sviluppatore potrebbe quindi installare anche il componente Blog per consentire al client di aggiungere voci di blog.

Lo sviluppatore potrebbe quindi installare anche il componente Galleria per consentire al client di mostrare un sacco di immagini.

Il fatto è che tutte queste componenti sono progettate per essere indipendenti, quindi come fare per garantire che non si scontrino? Per esempio. assicurando che il client non crei una pagina / gallery con Page Manager e poi si chieda perché la galleria abbia smesso di funzionare, o lo stesso problema con il componente Blog, supponendo che consentiamo agli utenti di personalizzare la struttura dell'URL del blog (perché ricorda, il Gestore della Pagina non deve necessariamente essere lì, quindi potremmo evitare che i post del nostro blog siano formattati per Data / Titolo, allo stesso modo i nostri clienti non saranno sempre contenti di avere le loro pagine sotto la formattazione di pagine / titoli .

La mia domanda principale qui è che, quando costruisci un sistema modulare, possiamo garantire che i moduli non siano in conflitto senza limitare la funzionalità?

Lascialo solo ai clienti / sviluppatori che usano i moduli per assicurarti che ottengano il setup in un modo che non sia in conflitto?

    
posta Hailwood 23.04.2014 - 02:03
fonte

2 risposte

1

namespace sono la solita risposta a questo. Un namespace limita l'ambito dei componenti interni (oggetti, metodi e variabili).

Diverse lingue implementano spazi dei nomi in misura maggiore o minore

php: link

javascript: link

Di solito puoi specificare quale componente intendi specificando lo spazio dei nomi, ad es. mycomponents.mylistcomponent specifica il componente mylist nello spazio dei nomi mycomponents. La maggior parte delle lingue fornisce un modo per saltare specificando sempre lo spazio dei nomi, ad es.

in c #:

using System.Objects

guarderà nello spazio dei nomi System.Objects per qualsiasi oggetto dichiarato

    
risposta data 23.04.2014 - 02:38
fonte
0

Non puoi avere entrambi senza limitare il tuo utente:

che consente agli utenti di creare gli URL liberamente E con URL privi di collisioni per ciascun modulo.

Se si desidera consentire agli utenti di creare URL, è possibile verificare se l'URL inserito è già in uso tramite l'esecuzione di interrogazioni automatiche, ma ciò comporterebbe comunque la ristrutturazione dell'utente del catalogo URL in caso di configurazione errata ( come nel tuo esempio /gallery ).

Potresti creare URL in base al nome del modulo automaticamente ovvero /gallery-one per una voce one per modulo gallery e quindi offrire funzionalità utente per aggiungere riscritture di URL non in conflitto, ma ciò potrebbe portare a file .htaccess che creano confusione.

    
risposta data 19.12.2014 - 10:49
fonte

Leggi altre domande sui tag