|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
|
Esercizietto di progettazione
Stavo a farmi un pò di roba in Ruby per riprenderci la mano.
Io ho una tabella prodotti del tipo 001 Mela 10 euro 002 Pera 14 euro 003 Kiwi 20 euro Quando voglio fare checkout della roba che ho scelto all'interno di un ipotetico carrello, devo poter applicare delle policy promozionali. Esempio: se spendo più di 60 euro applico il 10% di sconto, se compro due oggetti di tipo X allora li pago Y invece di Z. (queste sono le due casistiche fornite) In generale il checkout funzionerebbe con questa interfaccia (è obbligatorio che sia così, non c'è ordine specifico nel modo in cui gli oggetti vanno inseriti). Codice:
co = Paga.new(regole_promozionali) co.add(ogg) co.add(ogg) co.total Io ho pensato, diciamo anche per user-experience diretta, che è il caso di farsi una tabella di output, per esempio con un contatore di oggetti dello stesso tipo. Ad ogni aggiunta di oggetto devo applicare la regola promozionale tanto sicuramente un cliente vorrà la roba aggiornata per ogni aggiunta (tipo il totale) con le promozioni applicate. Il punto è proprio questo: come progettare le promozioni il più parametrizzabili possibili? Io pensavo a IdProdotto (con wildcard se è una promozione da applicare al totale), TipoPromozione (% o prezzo modificato), Soglia (può essere prezzo o quantità) ed infine il valore della modifica da applicare (10% o prezzo modificato). Chiaramente poi va implementata la business logic per le casistica. Io la farei dentro l'add ed applicherei solo le casistiche per l'IdProdotto ed il totale. Che dite?
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale. Go to a Wormhole |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:40.



















