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?