스머프 명명이라는 용어를 여기 에서 뽑았습니다 (21 번). 문제를 잘 모르는 사람을 구하기 위해 Smurf 이름 지정은 관련 클래스, 변수 등을 공통 접두어로 접두어로 붙여 "a SmurfAccountView
a SmurfAccountDTO
to a SmurfAccountController
"등으로 끝나는 행위입니다 .
내가 일반적으로 들었던 해결책은 스머프 네임 스페이스를 만들고 스머프 접두사를 삭제하는 것입니다. 이것은 일반적으로 나에게 도움이되었지만 두 가지 문제가 있습니다.
Configuration
수업 이있는 도서관에서 일하고 있습니다. 호출되었을 수는WartmongerConfiguration
있지만 Wartmonger 네임 스페이스에 있으므로 그냥 호출Configuration
됩니다. 마찬가지로Configuration
호출 할 수 있는 클래스가SmurfConfiguration
있지만 Smurf 네임 스페이스에 있으므로 중복됩니다. 내 코드에는Smurf.Configuration
나란히 표시Wartmonger.Configuration
되고 정규화 된 이름을 입력하는 것이 어색하고 코드를 읽을 수 없게 만드는 장소가 있습니다. aSmurfConfiguration
와 라이브러리 를 다루는 것이 더 좋을 것WartmongerConfiguration
입니다.Service
Smurf 네임 스페이스에서 호출 될 수 있는 클래스 가 있습니다SmurfService
. Smurf 작업을 실행하는 복잡한 Smurf 라이브러리 위에Service
있는 외관 입니다. Smurf 접두사가 없으면 매우 일반적SmurfService
이기 때문에 더 나은 이름처럼 보입니다Service
. 나는SmurfService
이미 일반적이고 쓸모없는 이름이며 스머프를 없애는 것이 단지 이것을 더 분명하게 만들었 음을 받아 들일 수 있습니다 . 그러나 이름이 지정 될 수 있었다Runner
,Launcher
등, 그리고 여전히 나를에 "기분"것이라고SmurfLauncher
나는 무엇을 모르기 때문에Launcher
않지만, 나는 무엇을 알고SmurfLauncher
않습니다. 당신은 무엇을하는Smurf.Launcher
것만큼이나 명백해야 한다고 주장 할 수 있다Smurf.SmurfLauncher
하지만`Smurf.Launcher는 스머프를 시작하는 클래스가 아니라 설정과 관련된 클래스입니다.
이 중 하나를 처리 할 수있는 개방적이고 폐쇄 된 방법이 있다면 좋을 것입니다. 그렇지 않다면 성가심을 완화시키는 일반적인 관행은 무엇입니까?
SmurfJob
Smurf 설명서의 언어와 일치하도록 시작 하거나 기술적으로 실행합니다. 그와 다른 답변에 비추어로 이름 SmurfService
을 바꿀 것 SmurfJobRunner
입니다. 예상대로 1 번 언어에 가장 적합한 해상도가없는 것 같습니다. 나는 SmurfConfiguration
올바른 통화가 될 수있는 사례를 볼 수 있지만, 제 경우 Configuration
에는 번거 로움이 가장 좋다고 생각 Wartmonger.Configuration
합니다.
Smurf.Configuration
와 SmurfConfiguration
다른 느낌? 확실히 그것은 여분의 문자가 아닙니다. ( Config
길이가 문제라면 짧게 말입니다.) 그렇지 않은 Smurf.Configuration
문제가 SmurfConfiguration
있습니까?
Smurf.Launcher
스머프를 시작 합니까 , 아니면 시작 합니까SmurfJob
? 아마도 그것은 호출 될 수Smurf.JobLauncher
있습니까?