Mi è stato consegnato un oggetto molto ingombrante, "One Ring" (un oggetto per dominarli tutti). La classe OR ha 40 campi. Questi campi si associano a 16 oggetti diversi (l'OR ha tutti i campi dei 16 oggetti concatenati insieme. Alcuni dei campi sono comuni a tutti gli oggetti, alcuni sono unici per singoli oggetti [tutti i 16 oggetti discendono da un genitore comune] ). L'OR punta a una tabella catch-all in un database SQL denormalizzato. Mi è stato chiesto di scrivere un adattatore per questo che prenderà istanze casuali dei 16 oggetti, mapperà i campi da un dato oggetto a un'istanza dell'OR e li invierà per la sua strada. Oy.
Cambiare il back-end o il codice non è un'opzione (ho provato).
Come sono sicuro non è una sorpresa, questa bestia è una cosa cattiva da gestire. Mi piacerebbe sentire qualche idea su come contribuire a rendere il lavoro con questo un po 'più gestibile. Sono principalmente interessato alla manutenzione del codice: comprensione e leggibilità. So che qualsiasi cosa venga implementata sarà ben lungi dall'essere perfetta, perché fondamentalmente sto cercando di far sembrare carina la spazzatura. Detto questo, per ora, devo conviverci, quindi sto cercando di rendere il mio lato del treno un po 'più vivibile.