Regole aziendali front-end / JSON

2

Sto lavorando a un progetto che ora ha bisogno di regole di business. Un modello discusso è quello di effettuare chiamate API (basate sul modulo in cui ci troviamo) che risponde alle regole aziendali per l'immissione di moduli. Non sono sicuro se questo è il modo migliore. Le regole aziendali sono in JSON, ma il server delle regole aziendali ha in realtà un motore di regole aziendali (quindi il motore scricchiola le regole e sputa JSON).

Alcuni background:

Nella nostra app Web esistono varie forme, come ad esempio il login, la registrazione, la modifica di un profilo, ecc. Forse 25-30 moduli. Sono gestiti con contenuti.

Per ognuna di queste forme, esistono varie regole per mostrare o nascondere i campi o presentare messaggi di errore sul modulo in base alla logica, ad esempio il nome di un campo troppo lungo, troppo corto o non conforme a un'espressione regolare. Esistono altre cose come i validatori di campi obbligatori, ecc.

L'idea era di avere tutto centralizzato in un ambiente diverso (come menzionato sopra ... sul server delle regole aziendali).

Sono preoccupato di fare così tante chiamate a un server per ottenere regole semplici come se fosse richiesto un nome, o mostrare o nascondere un pulsante in base a se una persona vende un certo numero di widget, ecc.

Forse una soluzione migliore sarebbe quella di pubblicare questo motore di regole sul nostro server, e chiamiamo semplicemente il server locale piuttosto che effettuare chiamate API dal front-end ogni volta.

Che cosa pensano tutti? È naturale effettuare chiamate API dai nostri moduli .net (usando jquery) per ottenere le nostre regole per ogni modulo, ogni volta?

Grazie!

    
posta NullHypothesis 09.05.2014 - 22:09
fonte

1 risposta

1

Dovrai rispondere a diverse domande per sapere cosa funzionerà meglio. Questi non sono in ordine particolare.

Le regole aziendali sono statiche in base alla domanda / campo che viene mostrato / nascosto?

Se sono statici, è possibile memorizzare in cache le regole di business localmente (sulla pagina o sul server, a seconda dei casi). In caso contrario, è possibile determinare quale sia la differenza di output e quindi memorizzarla nella cache? Inoltre, quanto spesso cambiano le regole?

Il / i valore / i selezionato / inserito possono influenzare le regole aziendali di un altro campo?

Se scelgo un camion al posto di un'automobile, mi sarà ancora consentito selezionare un tipo di veicolo con due volumi di portellone? Un veicolo a motore elettrico può scegliere un numero di cilindri per il motore?

La tua convalida cambia in base ai valori selezionati / inseriti?

Selezionando il produttore di automobili A imposta la convalida VIN su un numero di lettere, seguito da un numero di cifre, in cui il produttore B ha lettere, numeri, un paio di glifi e più numeri.

I tuoi dati cambiano in base ai valori selezionati / inseriti?

I dropdown a cascata sono molto comuni per questo tipo di oggetto; produttori elencati nel primo elenco a discesa, i modelli nel secondo.

Dove verrà eseguita l'applicazione?

Se sarà sulla tua rete, è possibile che il tuo throughput sia sufficientemente veloce da non dover prendere in considerazione la memorizzazione nella cache. Potresti anche avere router di memorizzazione nella cache tra te e il server delle regole aziendali che limiterà il numero di chiamate al server delle regole aziendali.

Quanti utenti useranno l'applicazione?

Se questo numero è abbastanza piccolo, la spesa aggiunta della memorizzazione nella cache probabilmente non valga la pena.

Quanto sovraccarico di rete aggiungerà l'applicazione?

Dovrai misurarlo. Dipenderà da più fattori di quanti ne possa elencare facilmente. Chiediti se il trade off in larghezza di banda vale la differenza nella maggiore complessità della tua applicazione.

    
risposta data 10.05.2014 - 04:02
fonte

Leggi altre domande sui tag