Ho estratto il termine smurf naming da qui (numero 21). Per salvare qualcuno che non ha familiarità con il problema, la denominazione Smurf è l'atto di prefisso a un gruppo di classi correlate, variabili, ecc. Con un prefisso comune così si finisce con "un SmurfAccountView passa un SmurfAccountDTO a SmurfAccountController ", ecc.
La soluzione che ho sentito in generale è di creare uno spazio dei nomi smurf e rilasciare i prefissi smurf. Questo in genere mi è servito bene, ma sto incontrando due problemi.
-
Sto lavorando con una libreria con una classe
Configuration. Potrebbe essere stato chiamatoWartmongerConfigurationma è nello spazio dei nomi Wartmonger, quindi è chiamatoConfiguration. Anch'io ho una classeConfigurationche potrebbe essere chiamataSmurfConfiguration, ma è nello spazio dei nomi Smurf in modo che sia ridondante. Ci sono dei posti nel mio codice in cuiSmurf.Configurationappare accanto aWartmonger.Configuratione la digitazione di nomi completi è goffa e rende il codice meno leggibile. Sarebbe più carino gestire unSmurfConfiguratione (se fosse il mio codice e non una libreria)WartmongerConfiguration. -
Ho una classe chiamata
Servicenel mio spazio dei nomi Smurf che avrebbe potuto essere chiamataSmurfService.Serviceè una facciata in cima a una libreria Smurf complessa che esegue lavori Smurf.SmurfServicesembra un nome migliore perchéServicesenza il prefisso Smurf è così incredibilmente generico. Posso accettare cheSmurfServiceera già un nome generico e inutile e portare via lo smurf ha semplicemente reso questo più evidente. Ma potrebbe essere stato chiamatoRunner,Launcher, ecc. E sarebbe ancora "mi sento meglio" comeSmurfLauncherperché non so cosa faccia unLauncher, ma so cosaSmurfLauncherlo fa. Potresti obiettare che ciò che unSmurf.Launcherdovrebbe essere altrettanto evidente diSmurf.SmurfLauncher, ma potrei vedere 'Smurf.Launcher essere una sorta di classe correlata all'impostazione piuttosto che una classe che lancia smurfs.
Se esiste un modo aperto e chiuso per gestire uno di questi, sarebbe fantastico. In caso contrario, quali sono alcune pratiche comuni per mitigare il loro fastidio?