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