Durante il mio primo seminario di part-time durante il college, mi sono occupato di un'applicazione web di grandi dimensioni responsabile della gestione di un evento periodico ospitato dal nostro cliente, in gran parte un semplice snoozefest CRUD con un numero di moduli da compilare per gli utenti .
Le forme cambiano tra gli eventi, con la maggior parte delle forme con una piccola quantità di modifiche apportate a loro - alcuni campi aggiunti, rimossi e adattati, ad es. una domanda aperta divisa in due o una scelta cambiata da radio a caselle di controllo. Tutti i moduli delle edizioni precedenti devono essere accessibili in ogni momento.
Il codice è diventato rapidamente pieno di classi base come:
veryImportantFormModel
veryImportantFormModelLegacy
veryImportantFormModel2017
costituito principalmente da codice incollato su copia in molti strati del backend e del frontend. Quale per i miei occhi inesperti di sviluppatori junior sembra un modo rapido per accumulare quantità ingestibili di debito, e speriamo che non sia la soluzione ideale per quello che presumo sia uno scenario molto comune.
Quale sarebbe un modo più sano di fare le cose?