Nome di antipattern stabilito? Solo ottenere anatre di dati in fila appena prima di averne bisogno

3

Questo è tutto il codice base, ma non sono sicuro di aver mai sentito nominare un nome.

Abbiamo C # e Java (e Rails ma non dobbiamo toccarlo molto spesso) quindi parlerò più in generale. È come se i problemi relativi ai dati non venissero pienamente stabiliti fino a quando non sei letteralmente a destra in un controller di visualizzazione che si prepara a rilasciarlo sulla pagina (nota: abbiamo superato le query SQL effettive nella maggior parte dei casi qui).

Ad esempio, disponiamo di dati per un determinato tipo di prodotto provenienti da CRM, dalle scansioni effettuate con la nostra app per dispositivi mobili e estratti dall'inventario nei DB, eppure in qualche modo non lo è fino a quando non arriviamo al punto in cui siamo letteralmente in procinto di rilasciarlo sulla pagina che improvvisamente scopriamo che c'è una logica di business a cui partecipare. Le nostre azioni e i controller di visualizzazione sono GIGANTIC. Stiamo chiedendo a tutti i tipi di domande su ogni oggetto e ramificazione su di loro, che si tratti di This o hasThat, fonti di dati, preferenze dei clienti e talvolta cose così apparentemente arbitrarie che potrebbero anche essere fasi lunari, abitudini di migrazione di specie che ho mai nemmeno sentito parlare, stelle del cinema più googled ...

E non si ferma sempre al controller. In particolare, Java è noto per far sì che tutto si diffonda nel JSP e poi anche sul lato client nel JS.

Questo fenomeno deve avere un nome, ma non l'ho mai sentito. Che cos'è?

    
posta Erik Reppen 12.07.2013 - 02:22
fonte

1 risposta

4

Craig Larman lo chiama " Il controller gonfiato " in Applicazione di UML e pattern: introduzione all'analisi orientata agli oggetti e progettazione e sviluppo iterativo

Poorly designed, a controller class will have low cohesion - unfocused and handling too many areas of resposibility; this is called a bloated controller. Signs of bloating include:

(...)

  • The controller itself performs many of the tasks necessary to fulfill the system event, without delegating the work. This usually involves a violation of Information Expert and High Cohesion.

(...)

    
risposta data 12.07.2013 - 03:20
fonte

Leggi altre domande sui tag