ฉันดึงคำว่า smurf ตั้งชื่อจากที่นี่ (หมายเลข 21) ในการบันทึกทุกคนที่ไม่คุ้นเคยปัญหาที่ Smurf การตั้งชื่อคือการกระทำของ prefixing พวงของการเรียนที่เกี่ยวข้องกับตัวแปรอื่น ๆ ที่มีคำนำหน้าร่วมกันเพื่อให้คุณจบลงด้วยการที่ " SmurfAccountViewผ่านSmurfAccountDTOไปSmurfAccountController" ฯลฯ
วิธีแก้ปัญหาที่ฉันเคยได้ยินโดยทั่วไปคือการสร้าง smurf namespace และวางคำนำหน้า smurf โดยทั่วไปฉันใช้งานได้ดี แต่ฉันพบปัญหาสองอย่าง
ฉันทำงานกับห้องสมุดที่มี
Configurationชั้นเรียน มันอาจจะได้รับการเรียกWartmongerConfigurationแต่ก็ใน namespace WartmongerConfigurationจึงเรียกว่าเพียงแค่ ฉันก็มีConfigurationคลาสที่สามารถเรียกSmurfConfigurationได้ แต่มันอยู่ในเนมสเปซ Smurf เพื่อที่จะซ้ำซ้อน มีสถานที่ในรหัสของฉันที่Smurf.Configurationปรากฏอยู่ด้านข้างWartmonger.Configurationและพิมพ์ชื่อที่ผ่านการรับรองครบถ้วนแล้วเป็น clunky และทำให้โค้ดอ่านน้อยลง มันจะดีกว่าที่จะจัดการกับSmurfConfigurationและWartmongerConfiguration(ถ้ามันเป็นรหัสและไม่ห้องสมุดของฉัน)ฉันมีคลาสที่เรียกว่า
Serviceในเนมสเปซ Smurf ซึ่งอาจเรียกได้ว่าSmurfServiceเป็นServiceเป็นส่วนหน้าของห้องสมุด Smurf ที่ซับซ้อนซึ่งดำเนินงาน SmurfSmurfServiceดูเหมือนชื่อที่ดีกว่าเพราะServiceไม่มีคำนำหน้า Smurf เป็นเรื่องธรรมดาอย่างไม่น่าเชื่อ ฉันยอมรับได้ว่าSmurfServiceชื่อสามัญไร้ประโยชน์อยู่แล้วและการกำจัด smurf ทำให้สิ่งนี้ชัดเจนยิ่งขึ้น แต่มันจะได้รับการตั้งชื่อ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?