Come faccio a nominare un servizio che aggiunge un elemento alla quotazione?

-2

Ho un oggetto chiamato LineItem , che può essere aggiunto a un oggetto chiamato Quote . Un Quote può avere 0 o più di LineItem .

Ho un servizio, che è una classe, il cui scopo è aggiungere LineItem a Quote . Questa classe ha un metodo chiamato addLineItemToQuote . Il metodo

  1. Legge il numero corrente di righe dalla rappresentazione Quote sul database
  2. scrive il contatore + 1 in LineItem , che verrà posizionato per ultimo.
  3. scrive quote_id in LineItem oggetto per collegarlo a Quote
  4. invia il comando INSERT al database con le informazioni LineItem

Ho difficoltà a nominare questa classe di servizio.

Voglio nominarlo LineItemService ma non si occupa rigorosamente dell'elemento pubblicitario. Esce dall'ambito dell'elemento pubblicitario, poiché ad esempio conta il numero di altri elementi pubblicitari nella citazione.

Potrei chiamarlo QuoteService , ma ho già un altro QuoteService che aggiunge elementi di prodotto generici (come LineItem ) e anche elementi pubblicitari speciali come elementi pubblicitari per packaging che non sono considerati un prodotto.

Quali sono alcune linee guida che posso utilizzare per denominare questo servizio in modo che rispecchi maggiormente il suo scopo?

    
posta Dennis 20.11.2018 - 22:22
fonte

1 risposta

0

Denominare qualcosa di buono è difficile.

In questo caso il tuo codice deve essere conforme alle convenzioni sui nomi locali che hai?

Se hai convenzioni di denominazione, segui queste convenzioni. Sei bloccato e il minimo che puoi fare non sorprende i tuoi colleghi. Possono fare una smorfia, ma non saranno confusi.

Altrimenti, campi verdi. Posso suggerire di guardare molte delle presentazioni di Kevlin Henney su YouTube, ha alcuni punti sulla denominazione. In generale, rispondi ai tuoi principi di comunicazione di base.

Specificamente, la funzione / classe ha lo scopo di incapsulare l'implementazione. Quindi la tua descrizione di esattamente cosa sta succedendo, non dovrebbe essere comunicata nel nome. Domani potrei sostituire il negozio relazionale con qualche altro sistema di registrazione, ma comunque fornire esattamente lo stesso servizio. Quindi cosa viene effettivamente fatto?

Per mettere questo nel contesto. Il servizio di avere il mio taglio di capelli, non è chiamato LowLevelScissorsHairManipulationService . Si chiama Hair Dresser o Barber a seconda dell'esperienza ricevuta dal cliente.

Quindi cosa sta effettivamente accadendo a quel livello più alto di astrazione? Qual è l'esperienza che l'utente di questo servizio riceve? Lassù è probabilmente circa (sto indovinando qui) qualche prodotto. Nello specifico riguarda l'ordinazione di un prodotto?

Inoltre, se hai nomi in conflitto, è vero che il tuo nuovo "servizio" non è in realtà distinto? Che in realtà è un'operazione offerta da quell'altro servizio?

    
risposta data 20.11.2018 - 23:59
fonte

Leggi altre domande sui tag