Saya menarik istilah penamaan smurf dari sini (nomor 21). Untuk menyelamatkan siapa pun yang tidak mengenal masalahnya, penamaan Smurf adalah tindakan prefixing sekelompok kelas terkait, variabel, dll dengan awalan umum sehingga Anda berakhir dengan "a SmurfAccountViewpass a SmurfAccountDTOto the SmurfAccountController", dll.
Solusi yang umumnya saya dengar adalah membuat namespace smurf dan meletakkan awalan smurf. Ini umumnya bermanfaat bagi saya, tetapi saya mengalami dua masalah.
Saya bekerja dengan perpustakaan dengan
Configurationkelas. Itu bisa saja dipanggilWartmongerConfigurationtapi ada di namespace Wartmonger, jadi baru saja dipanggilConfiguration. Saya juga memilikiConfigurationkelas yang bisa dipanggilSmurfConfiguration, tetapi berada di namespace Smurf sehingga akan menjadi berlebihan. Ada tempat di kode saya di manaSmurf.Configurationmuncul di sampingWartmonger.Configurationdan mengetik nama yang sepenuhnya memenuhi syarat adalah kikuk dan membuat kode kurang dapat dibaca. Akan lebih baik untuk berurusan denganSmurfConfigurationdan (jika itu kode saya dan bukan perpustakaan)WartmongerConfiguration.Saya memiliki kelas yang dipanggil
Servicedalam namespace Smurf saya yang bisa dipanggilSmurfService.Serviceadalah fasad di atas perpustakaan Smurf yang kompleks yang menjalankan pekerjaan Smurf.SmurfServicesepertinya nama yang lebih baik karenaServicetanpa awalan Smurf sangat luar biasa. Saya dapat menerima bahwaSmurfServiceitu sudah generik, nama yang tidak berguna dan menghapus smurf hanya membuat ini lebih jelas. Tapi itu bisa saja dinamaiRunner,,Launcherdll dan itu akan tetap "terasa lebih baik" bagi sayaSmurfLauncherkarena saya tidak tahu apa yangLauncherdilakukan, tetapi saya tahu apa yangSmurfLaunchertidak. Anda bisa berargumen bahwa apa yangSmurf.Launcherdilakukan harus sejelas aSmurf.SmurfLauncher, tapi saya bisa melihat `Smurf.Launcher menjadi semacam kelas yang terkait dengan pengaturan daripada kelas yang meluncurkan smurf.
Jika ada cara terbuka dan tertutup untuk menangani salah satu dari ini, itu akan menjadi hebat. Jika tidak, apa sajakah praktik umum untuk mengurangi gangguan mereka?
SmurfJobs, atau secara teknis menjalankannya agar konsisten dengan bahasa dokumentasi Smurf. Mengingat itu dan jawaban lainnya, saya akan mengganti nama SmurfServicemenjadi SmurfJobRunner. Tampaknya nomor 1 tidak memiliki resolusi agnostik bahasa terbaik seperti yang saya harapkan. Saya dapat melihat contoh di mana pergi dengan SmurfConfigurationakan menjadi panggilan yang tepat, tetapi dalam kasus saya, saya pikir Configurationyang terbaik bahkan dengan kerumitan Wartmonger.Configuration.
Smurf.Configurationdan SmurfConfigurationterasa berbeda? Tentunya itu bukan char ekstra, kan? (Lebih Configpendek jika panjang masalahnya). Apakah Smurf.Configurationada masalah yang SmurfConfigurationtidak?
Smurf.Launchermeluncurkan smurf, atau meluncurkanSmurfJob? Mungkin itu bisa disebutSmurf.JobLauncher?