Tôi lấy thuật ngữ đặt tên smurf từ đây (số 21). Để cứu bất kỳ ai không quen thuộc với rắc rối, đặt tên Smurf là hành động tiền tố một loạt các lớp, biến, v.v. có tiền tố chung để bạn kết thúc bằng "a SmurfAccountView
pass a SmurfAccountDTO
to the SmurfAccountController
", v.v.
Giải pháp tôi thường nghe nói đến là tạo một không gian tên smurf và bỏ các tiền tố smurf. Điều này thường phục vụ tốt cho tôi, nhưng tôi đang gặp phải hai vấn đề.
Tôi đang làm việc với một thư viện với một
Configuration
lớp học. Nó có thể được gọiWartmongerConfiguration
nhưng nó nằm trong không gian tên Wartmonger, vì vậy nó chỉ được gọiConfiguration
. Tôi cũng có mộtConfiguration
lớp có thể được gọiSmurfConfiguration
, nhưng nó nằm trong không gian tên Smurf nên sẽ không cần thiết. Có những vị trí trong mã của tôiSmurf.Configuration
xuất hiện dọc theoWartmonger.Configuration
và gõ ra các tên đủ điều kiện là khó hiểu và làm cho mã ít đọc hơn. Sẽ tốt hơn khi xử lý mộtSmurfConfiguration
và (nếu đó là mã của tôi chứ không phải thư viện)WartmongerConfiguration
.Tôi có một lớp được gọi
Service
trong không gian tên Smurf của tôi có thể được gọiSmurfService
.Service
là một mặt tiền trên đỉnh của một thư viện Smurf phức tạp chạy các công việc Smurf.SmurfService
có vẻ như là một cái tên tốt hơn bởi vìService
không có tiền tố Smurf thì rất chung chung. Tôi có thể chấp nhận rằng đóSmurfService
đã là một cái tên chung chung, vô dụng và lấy đi smurf chỉ làm cho điều này trở nên rõ ràng hơn. Nhưng nó có thể được đặt tênRunner
,Launcher
v.v. và nó vẫn sẽ "cảm thấy tốt hơn" đối với tôiSmurfLauncher
vì tôi không biết những gìLauncher
làm, nhưng tôi biết những gìSmurfLauncher
làm. Bạn có thể lập luận rằng những gìSmurf.Launcher
không nên làm rõ ràng như mộtSmurf.SmurfLauncher
, nhưng tôi có thể thấy `Smurf.Launcher là một loại lớp liên quan đến thiết lập chứ không phải là một lớp khởi chạy smurfs.
Nếu có một cách mở và đóng để đối phó với một trong những điều đó sẽ là tuyệt vời. Nếu không, một số thực tiễn phổ biến để giảm bớt sự khó chịu của họ là gì?
SmurfJob
s, hoặc về mặt kỹ thuật chạy chúng để phù hợp với ngôn ngữ của tài liệu Smurf. Trong bối cảnh đó và các câu trả lời khác, tôi sẽ đổi tên SmurfService
thành SmurfJobRunner
. Có vẻ như số 1 không có giải pháp tốt nhất về ngôn ngữ bất khả tri như tôi mong đợi. Tôi có thể thấy các trường hợp đi cùng SmurfConfiguration
sẽ là cuộc gọi đúng, nhưng trong trường hợp của tôi, tôi nghĩ Configuration
là tốt nhất ngay cả với những rắc rối Wartmonger.Configuration
.
Smurf.Configuration
và SmurfConfiguration
cảm thấy khác nhau? Chắc chắn đó không phải là char thêm, phải không? (Rút ngắn xuống Config
nếu độ dài là vấn đề.) Có Smurf.Configuration
vấn đề SmurfConfiguration
nào không?
Smurf.Launcher
khởi chạy smurfs, hoặc nó khởi chạySmurfJob
s? Có lẽ nó có thể được gọi làSmurf.JobLauncher
?