Norme di denominazione o convenzioni per l'e-commerce

1

Assegnazione di nomi alle voci

There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton

Assegnare nomi alle cose sembra così banale, prima di leggere questa citazione, avrei pensato che tutta questa questione fosse fuori tema qui. Tuttavia, un nome ben scelto può fare una così grande differenza nella leggibilità che considero un thesaurus uno strumento di codifica di base. Il naming è davvero molto importante per scrivere codice leggibile.

Denominazione corrente

L'app con cui sto lavorando è per la vendita di materiale, ad es. tappeti. Pur trattando di tappeti, non ho classe Carpet nel mio codice. Il motivo è che ci sono diversi contendenti, che finiscono per essere nominati come Carpet[Suffix] .

  • Un controller per una mesh 3D - suffisso : attore
  • Una parte dell'interfaccia utente - suffisso: Visualizza
  • Specifiche del prodotto per un tipo di tappeto, ad es. nome, costo per m2 ecc. - suffisso: Dbo (per DataBaseObject)
  • La selezione corrente delle app, incluso un prodotto specifico (il punto precedente), una quantità di prodotti, un prezzo totale ecc. - suffisso: CartItem (abbreviato da ShoppingCartItem)

Quindi ho un CarpetActor, CarpetView, CarpetDbo e CarpetCartItem. Funziona, ma per essere onesti, "View" è l'unico di quelli con cui sono soddisfatto. Per questa domanda voglio concentrarmi sugli ultimi due. Considerando quanto codice è stato scritto per l'e-commerce, mi aspetterei che alcune convenzioni per la denominazione di queste cose esistano. Tuttavia, le mie ricerche hanno solo generato risultati centrati sul marketing.

Domanda

Ci sono convenzioni stabilite per nominare la cosa che contiene tutte le specifiche di un prodotto e la cosa che tiene traccia dei dati del prodotto nell'ordine corrente

    
posta R. Schmitz 13.03.2018 - 14:07
fonte

1 risposta

2

La domanda chiave è: che cosa chiama l'azienda un tappeto?

Probabilmente non si preoccupano della mesh 3d o del componente dell'interfaccia utente, ma scommetto che dicono "Quanti tappeti abbiamo in magazzino?" o "chi ha comprato quel tappeto?" e se si tiene traccia di ciascuno di essi, ad esempio con un codice a barre. Quindi probabilmente dovresti avere un oggetto chiamato Carpet not CarpetDbo. e le cose nel carrello dovrebbero probabilmente essere tappeti

Ma forse lo chiamano SKU o StockItem. La cosa fondamentale è cercare di mantenere i termini allineati con il business tanto quanto è ragionevolmente possibile farlo.

Non penso che tu possa completamente allontanarti dai suffissi. Come dici tu, CarpetView o CarpetViewModel sono generalmente accettati. Ma CartItem? un po 'di codice puzza se me lo chiedi.

Quindi per riassumere.

  • Sì, esistono convenzioni stabilite per i suffissi. Visualizza, ViewModel, Controller. ma questi sono dipendenti dalla lingua e dal framework
  • No non ce ne sono (per quanto ne so) per l'eCommerce generico (su cui ho un buon livello di esperienza lavorativa)
  • Esiste un principio, possibilmente derivante dal Domain Driven Design, ma io penso più generico di questo, che tu "chiami nomi di cose che corrispondono al modo in cui gli affari parlano della cosa" o "I nomi degli oggetti corrispondono alla loro controparte reale" .
risposta data 13.03.2018 - 23:12
fonte

Leggi altre domande sui tag