Wyciągnąłem stąd termin nazywanie smerfa (numer 21). Aby zaoszczędzić każdemu, kto nie zna problemu, nazewnictwo Smurf polega na prefiksowaniu szeregu powiązanych klas, zmiennych itp. Wspólnym przedrostkiem, aby uzyskać „a SmurfAccountViewprzechodzi SmurfAccountDTOna SmurfAccountController” itd.
Rozwiązaniem, o którym ogólnie słyszałem, jest utworzenie przestrzeni nazw smurf i upuszczenie przedrostków smurf. To ogólnie mi dobrze służyło, ale mam dwa problemy.
Pracuję z biblioteką z
Configurationklasą. Można go było nazwać,WartmongerConfigurationale znajduje się w przestrzeni nazw Wartmonger, więc po prostu się nazywaConfiguration. Mam równieżConfigurationklasę, którą można nazwaćSmurfConfiguration, ale znajduje się ona w przestrzeni nazw Smurf, więc byłoby to zbędne. W moim kodzie są miejsca, w którychSmurf.Configurationpojawia się obok,Wartmonger.Configurationa wpisywanie w pełni kwalifikowanych nazw jest nieporęczne i sprawia, że kod jest mniej czytelny. Lepiej byłoby poradzić sobie zSmurfConfigurationa (gdyby to był mój kod, a nie biblioteka)WartmongerConfiguration.Mam klasę nazwaną
Servicew mojej przestrzeni nazw Smurf, którą można by nazwaćSmurfService.Servicejest fasadą na złożonej bibliotece Smurf, która obsługuje zadania Smurf.SmurfServicewydaje się lepszą nazwą, ponieważServicebez przedrostka Smurf jest tak niesamowicie ogólny. Mogę zaakceptować, żeSmurfServicebyła to już ogólna, bezużyteczna nazwa, a zabranie smerfa tylko to uwidoczniło. Ale to mogło być nazwaneRunner,Launcheritp i nadal będą „czuć się lepiej” mi sięSmurfLauncher, bo nie wiem, coLauncherrobi, ale wiem, że to, coSmurfLauncherrobi. Można argumentować, że to, coSmurf.Launcherrobi, powinno być tak samo oczywiste jakSmurf.SmurfLauncher, ale widziałem, że `Smurf.Launcher jest rodzajem klasy związanej z konfiguracją, a nie klasą, która uruchamia smerfy.
Jeśli istnieje otwarty i zamknięty sposób radzenia sobie z jednym z nich, byłoby świetnie. Jeśli nie, jakie są typowe praktyki ograniczania ich irytacji?
SmurfJobs lub technicznie uruchamia je, aby były zgodne z językiem dokumentacji Smurf. W świetle tej i innych odpowiedzi zamierzam zmienić nazwę SmurfServicena SmurfJobRunner. Wydaje się, że numer 1 nie ma najlepszej agnostycznej rozdzielczości językowej, jak się spodziewałem. Widzę przypadki, w których pójście SmurfConfigurationbyłoby właściwym telefonem, ale w moim przypadku myślę, że Configurationnajlepiej nawet z kłopotami Wartmonger.Configuration.
Smurf.Configurationi SmurfConfigurationczujesz się inaczej? Z pewnością to nie jest dodatkowy char, prawda? (Skróć do, Configjeśli problemem jest długość.) Czy Smurf.Configurationmasz jakieś problemy, które SmurfConfigurationnie?
Smurf.Launcheruruchamia smerfy, czy uruchamiaSmurfJobs? Być może można to nazwaćSmurf.JobLauncher?