Abbiamo un framework per applicazioni aziendali centralizzato e contiene tutta la nostra logica aziendale e fornisce l'accesso a tutti i nostri sistemi di back-end. Vi si accede da una serie di diversi programmi e client tramite servizi remoti.
Quando abbiamo bisogno di fare un cambiamento in una certa parte del programma, al momento dobbiamo sottoporre nuovamente a test tutti i nostri diversi programmi e client. Anche supponendo di estendere i nostri test automatizzati, riteniamo che non ci sia modo di essere certi che rilasciando una nuova versione del nostro framework applicativo tutti i diversi programmi funzioneranno correttamente dopo tale modifica senza ripetere manualmente tutti questi programmi. Ogni volta che rilasciamo una nuova versione del progetto C, dobbiamo testare anche i programmi A e B per modifiche involontarie.
Preferibilmente, passeremmo a un sistema di rilascio dove, rilasciando il progetto C, dovremo ripetere solo il test del programma C, e non A e B per eventuali modifiche di rottura che abbiamo trascurato.
L'idea vive per duplicare il nostro quadro applicativo aziendale centralizzato, uno per ciascun sottoprogetto. Significherebbe che quando pubblicheremo una nuova versione del programma C, forniremo una versione privata del framework dell'applicazione. Al rilascio del programma C, nulla sarà cambiato per l'applicazione A e B, essi comunicano ancora con il loro framework di applicazione privato - quindi non è necessario sottoporli a test.
Ho trovato i seguenti pro e contro:
Aspetti negativi:
- Avremo il nostro framework ospitato n volte per ogni progetto
- Ci confonderemo in quale versione / progetto quale bug è stato risolto.
- Con una correzione / modifica importante, dovremo rilasciare nuovamente tutte le n versioni del framework dell'applicazione.
Professionisti:
- Riduce notevolmente i test
- "Certezza" che nessuna modifica non intenzionale è stata rilasciata per diversi progetti.
Devo ammettere che non sono un fan dell'approccio delle copie private, ma non riesco a fornire un'alternativa migliore, o argomenti migliori contro questo.
Qualcuno si è trovato in una situazione simile e come è stato gestito? L'approccio sopra descritto di "quadri privati" copia un approccio solido / accettato? Qualsiasi consiglio è ben accetto.
Grazie in anticipo.