Valutazione della manutenibilità relativa

4

Noi (un appaltatore, in realtà) stiamo implementando un sistema standard per sostituire un sistema homegrown legacy per il dominio principale della società (progettazione di widget). Sfortunatamente entrambi i sistemi dovranno essere eseguiti contemporaneamente per un po 'di tempo, poiché il prodotto non è ancora pronto. Inoltre, è stata presa la decisione di migrare solo alcuni dei widget dal sistema legacy, in base alla data dell'ultima attività di vendita.

Più tardi è venuto fuori un nuovo requisito: alcune persone nell'azienda, molte delle quali al di fuori del contesto di sviluppo dei widget, vogliono cercare i tutti widget. La schermata dei risultati della ricerca contiene 3 pezzi di dati: un GUID, un identificativo leggibile dall'uomo che è ricercabile e una breve descrizione (potrebbe essere necessario effettuare ricerche in futuro). Nei dettagli del widget, ci saranno più schermate. Queste schermate si allineano molto bene lungo SOA / linee di contesto limitate - una schermata per i dati di marketing, una schermata per la cronologia delle vendite, ecc.

UML avanti! Probabilmente sto usando il tipo sbagliato di frecce qui quindi per favore perdonami. La soluzione attuale, che non è ancora in produzione, è simile alla seguente:

Entrambiisistemiverrannointerrogatieilcontrollerfonderàirisultati.

Ilnuovosistemahailpropriolinguaggiodiqueryproprietario(l'abbiamoalleviatounpo'conunproviderLINQ).Metteancheunlottodidatisulfilo.15risultatidiricercatipicamenteeseguonocirca60.000dixmlinglobatiinSOAPincomprensibili.Quindipreferireievitarediinterrogaredirettamentequestosistema.

Questiduesistemipubblicanoeventiperaiutarciadintegrarciconaltrisistemi,principalmenteconunsistemaERP.Unodiquestieventicontienetuttiidatinecessariperlaschermatadiricerca.Hopropostolaseguentealternativa:

Tuttavia mi viene detto che "l'aggiunta di un altro database" creerà più manutenzione lungo la strada. Tuttavia, ritengo che ciò sia falso, poiché ho dovuto aggiungere una funzione relativamente semplice che richiedeva diverse ore in più del previsto a causa di questo codice di fusione.

Voglio avere un'idea di quale sistema sia più manutenibile a lungo termine. Personalmente non ho avuto l'onere di mantenere qualsiasi sistema di grandi dimensioni. Voglio qualcosa di più del mio istinto. In particolare mi piacerebbe sapere se avere più database fisici specializzati è più o meno mantenibile rispetto a database fisici meno grandi.

    
posta user408866 02.07.2013 - 19:20
fonte

1 risposta

1

Il "database di ricerca" introduce un ulteriore punto di errore nel sistema totale e gli errori introdotti potrebbero passare inosservati per un tempo molto lungo.

Il problema che vedo è che il "database di ricerca" potrebbe mancare o comunque non riuscire a elaborare un widget_event e uscire dalla sincronizzazione con i due sottosistemi per i quali fornisce un front-end. Tale incoerenza avverrà a lungo termine e non verrà notata fino a quando qualcuno non noterà che un particolare widget è mancante dai risultati della ricerca, mentre è noto che sia presente.

Il "database di ricerca" potrebbe funzionare se lo si progetta in modo tale da eseguire periodicamente una sincronizzazione completa con i sistemi di back-end, ma poi il valore aggiunto diminuisce quasi a zero, perché non si è saltato fuori le query per i sistemi di back-end, mentre è ancora necessario mantenere un sistema aggiuntivo.

    
risposta data 03.07.2013 - 09:15
fonte

Leggi altre domande sui tag