Separazione della logica di business e del layout in un progetto altamente interconnesso

3

La mia azienda sta sviluppando software che ha un sacco di debito tecnico che esiste da oltre 20 anni. È un mix di C ++ e C e consiste di circa 2M LOC. Vorrei fare alcuni suggerimenti su come possiamo portare avanti il nostro progetto e liberarci del debito tecnico utilizzando i moderni principi di progettazione.

Questa applicazione è strongmente modulare e comprende più di 250 moduli che possono essere visualizzati dall'utente. Questi moduli sono progettati con il nostro framework, un file xml con tutto il layout, una logica di business interpretata dall'applicazione e una classe c ++ con altra logica.

Ad esempio per creare una maschera con una sola griglia che visualizza alcuni dati, dobbiamo creare i file di classe generici che registrano il nostro nuovo modulo all'applicazione, apri la nostra applicazione in designer-Mode , posiziona una griglia nel nostro modulo e allega una dichiarazione SQL che recupera i dati per essa. Se desideriamo aggiungere una logica che non è possibile con il nostro designer , dobbiamo aggiungere alcuni callback alla nostra classe e aggiungerli alla nostra griglia nel designer. Ora il file xml è pieno di tutte le informazioni necessarie alla nostra applicazione per generare quel modulo (vale a dire dove si trova esattamente la griglia, l'ID, i callback allegati e lo sql per riempirlo).

Come puoi vedere, non c'è un taglio assoluto tra design, business logic e dipendenze.

Ci sono naturalmente due vantaggi principali:

  • molte cose possono essere fatte senza ricompilare l'applicazione
  • piccoli errori possono essere risolti da non sviluppatori (come istruzioni SQL errate, nome delle etichette, posizionamento degli elementi

Ma spero tu sia d'accordo con me, sul fatto che questo sistema potrebbe trarre grandi benefici, ma non ho esperienza nel proporre le mie soluzioni. Quali misure posso adottare per risolvere il problema in modo realistico e accettabile per gli sviluppatori e la gestione di entrambi noi?

    
posta Sven 27.09.2011 - 13:55
fonte

1 risposta

3

Ogni tanto arriva un punto nella vita di un programmatore in cui lui / lei ha bisogno di scaricare i paradigmi 'tutto va' e 'più nuovo è meglio' e condurre un esercizio di decenza.

Questo progetto sembra una splendida opportunità per questo. È molto probabile che non vi sia alcun beneficio in una riprogettazione o ricreazione da zero, almeno non misurabile dal management, non importa quanto vecchio e noioso possa sembrare a voi: la conoscenza del dominio (apparentemente) è da tempo diventata una parte essenziale dell'interconnettore e della quantità non fattibile di tutti i re, i mitici mesi uomo possono separarlo di nuovo.

    
risposta data 27.09.2011 - 21:16
fonte

Leggi altre domande sui tag