Dovrei usare Adattatore, Facciata, Fabbrica astratta o Modello di fabbrica per refactoring di God controller

1

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.

    
posta and 10.08.2018 - 13:58
fonte

1 risposta

1

Dai commenti qui ho determinato che il codice base è basato su un dominio, e che il progetto avrà il suo gui aggiornato / modificato, oltre ad avere funzionalità aggiuntive aggiunte nel tempo. Quindi le normali tecniche di refactoring funzioneranno al meglio, poiché devo spostare la logica nei modelli / viewModels, utilizzare meglio il patten MVC utilizzando correttamente viste parziali e riutilizzando il codice.

    
risposta data 13.08.2018 - 10:44
fonte

Leggi altre domande sui tag