Il nostro sistema è stato inizialmente creato attorno alla logica di ordinamento del client ricevuta da un'API. Ciò è stato permesso dal precedente I.T. dept.
Tuttavia nel tempo (dopo la crescita) molti clienti diversi con sistemi diversi inviano i loro ordini alla nostra API che devono essere puliti e modificati nella nostra versione funzionante, esempi sono nomi di file senza tipi di file per immagini che hanno aggiunto ', jpg' a il nome del file, o stati che sono stringhe cioè 'finito' che vengono convertiti nel nostro nuovo stato di int 2 ecc.
Ci sono enormi sezioni di istruzioni if e di switch che cambiano le cose in base a chi è il client che ha creato i controller God che hanno tutta questa logica mentre i modelli sono anemici, e ho bisogno di revisionare il codice mentre refactor mentre vado , ma ci sono poco in termini di test ecc.
Voglio usare i principi SOLID e imparare una programmazione migliore e spostare la logica nei modelli per riutilizzarli, creare viewModels, spostare javascript da pagine HTML e in file javascript e rimuovere il codice duplicato che sembra essere ovunque.
Non sto cercando un modo per decidere i modelli di progettazione, ma voglio sapere quali schemi di progettazione sono i migliori per avere una logica di base e una logica specifica per il cliente quando refactoring i controller God.
Idealmente, incoraggerei una logica unica e solida con i tempi supplementari dei clienti che accetterebbero determinate variazioni.
Mentre ho commentato un'architettura di servizio sembra che non stiamo usando il modello di servizio.