Ho tirato denominazione il termine puffo da qui (numero 21). Per salvare chiunque non abbia familiarità con il problema, la denominazione di Puffo è l'atto di prefissare un gruppo di classi, variabili, ecc. Correlate con un prefisso comune in modo da finire con "a SmurfAccountView
passa a SmurfAccountDTO
a SmurfAccountController
", ecc.
La soluzione che ho sentito in generale è creare uno spazio dei nomi puffo e rilasciare i prefissi puffi. Questo mi ha generalmente servito bene, ma sto incontrando due problemi.
Sto lavorando con una biblioteca con una
Configuration
classe. Potrebbe essere stato chiamatoWartmongerConfiguration
ma è nello spazio dei nomi Wartmonger, quindi è appena chiamatoConfiguration
. Allo stesso modo ho unaConfiguration
classe che potrebbe essere chiamataSmurfConfiguration
, ma è nello spazio dei nomi Puffo, quindi sarebbe ridondante. Ci sono punti nel mio codice in cuiSmurf.Configuration
appare a fiancoWartmonger.Configuration
e digitare nomi completi è goffo e rende il codice meno leggibile. Sarebbe più bello avere a che fare con unSmurfConfiguration
e (se fosse il mio codice e non una libreria)WartmongerConfiguration
.Ho una classe chiamata
Service
nel mio spazio dei nomi Puffo che avrebbe potuto essere chiamataSmurfService
.Service
è una facciata sulla cima di una complessa libreria di Puffi che esegue lavori di Puffo.SmurfService
sembra un nome migliore perchéService
senza il prefisso Puffo è così incredibilmente generico. Posso ammettere cheSmurfService
era già un nome generico, inutile e togliere puffo lo rendeva semplicemente più evidente. Ma avrebbe potuto essere chiamatoRunner
,Launcher
ecc. E mi starebbe ancora "meglio"SmurfLauncher
perché non so cosaLauncher
fa, ma so cosaSmurfLauncher
fa. Si potrebbe sostenere che ciò cheSmurf.Launcher
fa dovrebbe essere altrettanto evidente di aSmurf.SmurfLauncher
, ma ho potuto vedere `Puffo.Launcher essendo una sorta di classe relativa alla configurazione piuttosto che una classe che lancia puffi.
Se c'è un modo aperto e chiuso per affrontare uno di questi sarebbe fantastico. In caso contrario, quali sono alcune pratiche comuni per mitigare il loro fastidio?
SmurfJob
s, o tecnicamente li esegue per essere coerenti con il linguaggio della documentazione di Puffo. Alla luce di questo e l'altro risponde, ho intenzione di rinominare SmurfService
a SmurfJobRunner
. Sembra che il numero 1 non abbia una migliore risoluzione agnostica della lingua come mi aspettavo. Riesco a vedere casi in cui andare SmurfConfiguration
sarebbe la chiamata giusta, ma nel mio caso penso che Configuration
sia meglio anche con il fastidio di Wartmonger.Configuration
.
Smurf.Configuration
e SmurfConfiguration
sentirsi diversi? Sicuramente non è il carattere extra, vero? (Accorciare Config
se la lunghezza è il problema.) Ha Smurf.Configuration
qualche problema che SmurfConfiguration
non lo fa?
Smurf.Launcher
puffi di lancio, o lo fa lanciareSmurfJob
s? Forse potrebbe essere chiamatoSmurf.JobLauncher
?