La formattazione appartiene alla vista o al livello dei servizi?

4

Dovresti formattare i numeri nella vista o nel livello servizi?

Se stai andando a arrotondare un numero a 2 posizioni decimali. Ha senso se quel numero è arrotondato nella vista o nel livello dei servizi? Che dire se quel numero è un tipo nullable come in C #? Non voglio scrivere if(number.HasValue) { number.ToString() }

È sicuramente più testabile se questo viene fatto nel livello servizi per una formattazione più complessa.

    
posta RyanDawkins 16.01.2017 - 21:43
fonte

1 risposta

5

Se lo metti nel livello di servizio, allora TUTTO che usa quel servizio otterrà il risultato formattato. Questo può o non può essere un problema, a seconda di chi utilizzerà il servizio e se alcuni utenti hanno bisogno di un formato diverso.

Se lo metti nel livello vista, la vista sta facendo tutto il lavoro di formattazione. Forse sei preoccupato che questo potrebbe causare problemi di prestazioni se devi formattare qualcosa n volte su una pagina / componente UI, invece di una volta nel livello di servizio. Non mi preoccuperei della formattazione dei numeri che causa un notevole calo di prestazioni, ma per lo meno, significa che ogni componente dell'interfaccia utente potrebbe aver bisogno di un proprio formattatore interno se si prevede di ricevere dati non formattati.

ANCHE ...

È possibile aggiungere un'opzione di formattazione alla richiesta di servizio, in modo che i client che desiderano un risultato preformattato ne ottengano uno (con una delle poche scelte di formattazione predefinite) e altri otterranno i dati più "grezzi" , per formattare come meglio credono. Questo è qualcosa che ho visto un paio di volte, anche se di solito è nel contesto della formattazione di un intero dataset tsv vs. JSON vs. XML vs. binario ... ma può anche essere fatto per i singoli campi di dati in cui la formattazione è importante.

    
risposta data 16.01.2017 - 22:20
fonte

Leggi altre domande sui tag