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 SmurfAccountViewpass a SmurfAccountDTOto 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
Configurationlớp học. Nó có thể được gọiWartmongerConfigurationnhư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ộtConfigurationlớ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.Configurationxuất hiện dọc theoWartmonger.Configurationvà 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ộtSmurfConfigurationvà (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
Servicetrong không gian tên Smurf của tôi có thể được gọiSmurfService.Servicelà 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.SmurfServicecó vẻ như là một cái tên tốt hơn bởi vìServicekhô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,Launcherv.v. và nó vẫn sẽ "cảm thấy tốt hơn" đối với tôiSmurfLaunchervì tôi không biết những gìLauncherlàm, nhưng tôi biết những gìSmurfLauncherlàm. Bạn có thể lập luận rằng những gìSmurf.Launcherkhô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ì?
SmurfJobs, 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 SmurfServicethà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 SmurfConfigurationsẽ là cuộc gọi đúng, nhưng trong trường hợp của tôi, tôi nghĩ Configurationlà tốt nhất ngay cả với những rắc rối Wartmonger.Configuration.
Smurf.Configurationvà SmurfConfigurationcả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 Confignếu độ dài là vấn đề.) Có Smurf.Configurationvấn đề SmurfConfigurationnào không?
Smurf.Launcherkhởi chạy smurfs, hoặc nó khởi chạySmurfJobs? Có lẽ nó có thể được gọi làSmurf.JobLauncher?