Come mantenere una versione demo di un'applicazione?

7

Devo essere in grado di dimostrare la nostra applicazione di produzione ai potenziali clienti. Il modo in cui l'ho installato oggi è semplice. L'applicazione demo è un duplicato esatto del sistema di produzione, ad eccezione del fatto che i dati nel database sono offuscati per proteggere i dati dei nostri attuali clienti. Funziona alla grande perché non richiede alcuna modifica dell'applicazione.

Il capo ha lasciato cadere un potenziale BOMBSHELL oggi e ha detto che il sistema demo deve contenere un link speciale e che SOLO viene mostrato nella demo. Ha proseguito spiegando che in futuro potrebbero esserci differenze molto più grandi tra la demo e le app di produzione (ad esempio un'intera area di funzionalità). Cosa faccio ora?

Alcune cose che ho pensato di fare:

  • Mantieni un ramo diverso in subversion specifico per il sistema demo
  • Crea un pacchetto di installazione con le modifiche per la demo, quindi ripristina e crea un pacchetto di installazione di produzione
  • Modularizza l'applicazione (non so come)
  • Di ': "Vaffanculo! Non lo farò!" (LOL)
  • Utilizza una sorta di logica condizionale nell'app per determinare se si tratta di una demo o di un'app di produzione. Per esempio. (se l'URL contiene 'demo', quindi mostra else else).

Se non hai indovinato, questa è un'applicazione web

Comunque, non ho esperienza in questo scenario su quale sia il migliore o se nessuno di questi è buono. Qualcuno ha una risposta, strategia, qualcosa!?

    
posta O.O 01.11.2011 - 19:40
fonte

2 risposte

2
  • Mantieni un ramo diverso in subversion specifico per il sistema demo

    • Sì! Questo aiuta veramente. Ma fai attenzione a come lo fai. La cosa migliore è quando il sistema principale si evolve, dovresti sapere come ridurre le tue modifiche il più vicino possibile.
  • Crea un pacchetto di installazione con le modifiche per la demo, quindi ripristina e crea un pacchetto di installazione di produzione

    • Potrebbe funzionare, ma se stai facendo molte dimostrazioni perderai la tua buona parte della vita su questo.
  • Modularizza l'applicazione (non hai idea di come)
    • Questa è la migliore risposta. Vedi sotto.
  • Di ': "Vaffanculo! Non lo farò!" (LOL)
    • Decisamente no! Non perché dovresti aver paura. Ma un buon ingegnere non ha lasciato le sfide.
  • Utilizza una sorta di logica condizionale nell'app per determinare se si tratta di una demo o di un'app di produzione. Per esempio. (se url contiene 'demo', quindi mostra else else).
    • Decisamente no! Ciò renderebbe il tuo prodotto molto debole nel tempo.

Quando si pensa a un prodotto Demo (a meno che non si parli di versioni trail), non pensare come un "prodotto separato" ma pensarlo come un "ambiente separato". Se io e te installiamo entrambi word-press engine nei nostri rispettivi siti, avremo lo stesso prodotto ma diversi dati. È necessario progettare il proprio prodotto in modo tale che l'installazione (e l'utilizzo) di elementi specifici possa essere creata come si creano diverse origini di contenuto. Analogamente, ad esempio, si sta creando un'applicazione nativa .Net o JAVA, la funzionalità rimane la stessa, ma da dove possono essere visualizzate le immagini (inclusi gli splash screen ei pulsanti) possono essere cartelle diverse per mostrarle in forma diversa. Più avanti, la richiesta arriverà persino a modificare i layout: è allora che sai che hai bisogno di più template!

Non saltare per la modularizzazione in one-shot. Come e quando arriva il requisito, per prima cosa inizia un ramo separato (linea di sviluppo) e dai la demo! (Poiché tutte le dimostrazioni sono in genere il giorno successivo alle 10.30 del mattino). La deviazione che hai ora creato ti dice cosa avrebbe dovuto essere la modularizzazione per essere prelevata da risorse esterne. Applicalo e uniscilo indietro - la prossima volta la stessa demo sarebbe la tua versione standard (con URL diversi).

Quasi sempre se finisci per creare un "prodotto separato" come demo - stai invitando problemi o dolore o entrambi!

Dipan.

    
risposta data 01.11.2011 - 20:22
fonte
9

L'approccio migliore sarebbe quello di modularizzare in modo da poter attivare o disattivare gli elementi in qualsiasi app.

La tua demo è un'installazione prod, con una configurazione che attiva cose diverse dall'app prod e punta a un altro database.

    
risposta data 01.11.2011 - 20:01
fonte

Leggi altre domande sui tag