นานมาแล้วฉันได้อ่านบทความ (ฉันเชื่อว่ารายการบล็อก) ซึ่งทำให้ฉัน "ติดตาม" ขวาบนวัตถุการตั้งชื่อ: ระมัดระวังมากเกี่ยวกับการตั้งชื่อสิ่งต่าง ๆ ในโปรแกรมของคุณ
ตัวอย่างเช่นหากแอปพลิเคชันของฉัน (เป็นแอปทางธุรกิจทั่วไป) ที่จัดการผู้ใช้ บริษัท และที่อยู่ที่ฉันมีคลาสUser
a Company
และa Address
โดเมนและอาจเป็นที่ไหนสักแห่งUserManager
a CompanyManager
และa AddressManager
จะปรากฏขึ้นเพื่อจัดการกับสิ่งเหล่านั้น
ดังนั้นคุณสามารถบอกบรรดาสิ่งUserManager
, CompanyManager
และAddressManager
ทำอย่างไร ไม่เพราะผู้จัดการเป็นคำทั่วไปที่เหมาะกับทุกสิ่งที่คุณสามารถทำได้กับวัตถุโดเมนของคุณ
บทความที่ฉันอ่านแนะนำโดยใช้ชื่อเฉพาะมาก ถ้ามันเป็นแอพพลิเคชั่น C ++ และUserManager
งานของมันถูกจัดสรรและปลดปล่อยผู้ใช้จากฮีปมันจะไม่จัดการผู้ใช้ แต่ปกป้องการเกิดและความตาย อืมเราอาจเรียกมันUserShepherd
ว่า
หรืออาจจะUserManager
เป็นหน้าที่ของการตรวจสอบข้อมูลของวัตถุผู้ใช้แต่ละคนและลงนามในข้อมูลการเข้ารหัส UserRecordsClerk
แล้วเราต้องการมี
ตอนนี้ความคิดนี้ติดอยู่กับฉันฉันพยายามที่จะใช้มัน และพบว่าความคิดที่เรียบง่ายนี้ยากอย่างน่าอัศจรรย์
ฉันสามารถอธิบายสิ่งที่เรียนทำและ (ตราบเท่าที่ฉันไม่ได้แอบเข้าไปอย่างรวดเร็วและสกปรกเข้ารหัส) เรียนที่ผมเขียนทำสิ่งหนึ่งสิ่ง สิ่งที่ฉันพลาดไปจากคำอธิบายนั้นไปยังชื่อเป็นประเภทของชื่อคำศัพท์ที่แมปแนวคิดกับชื่อ
ในที่สุดฉันต้องการมีแคตตาล็อกรูปแบบในใจของฉัน (บ่อยครั้งที่รูปแบบการออกแบบให้ชื่อวัตถุได้ง่ายเช่นโรงงาน )
- โรงงาน - สร้างวัตถุอื่น ๆ (การตั้งชื่อที่นำมาจากรูปแบบการออกแบบ)
- Shepherd - คนเลี้ยงแกะจัดการกับอายุของวัตถุการสร้างและการปิด
- ซิงโครไนซ์ - คัดลอกข้อมูลระหว่างวัตถุสองชิ้นขึ้นไป (หรือลำดับชั้นวัตถุ)
Nanny - ช่วยให้วัตถุเข้าถึงสภาวะ "ใช้งานได้" หลังการสร้างตัวอย่างเช่นโดยการเดินสายไปยังวัตถุอื่น
ฯลฯ
ดังนั้นคุณจะจัดการกับปัญหานั้นได้อย่างไร คุณมีคำศัพท์ที่ตายตัวคุณสร้างชื่อใหม่ได้ทันทีหรือคุณคิดว่าการตั้งชื่อไม่สำคัญหรือผิด
PS: ฉันสนใจในการเชื่อมโยงไปยังบทความและบล็อกที่พูดถึงปัญหา เป็นการเริ่มต้นที่นี่เป็นบทความต้นฉบับที่ทำให้ฉันนึกถึง: การตั้งชื่อ Java Classes ที่ไม่มี 'Manager'
อัปเดต: สรุปคำตอบ
ต่อไปนี้เป็นบทสรุปเล็กน้อยของสิ่งที่ฉันเรียนรู้จากคำถามนี้ในระหว่างนี้
- พยายามอย่าสร้างคำอุปมาอุปมัยใหม่ (พี่เลี้ยง)
- ดูที่กรอบอื่น ๆ ทำ
บทความ / หนังสือเพิ่มเติมในหัวข้อนี้:
- คุณคิดว่าชื่ออะไรที่คุณกำลังต่อเติม / ต่อท้ายชั้นเรียนเป็นประจำ
- วิธีที่ดีที่สุดในการตั้งชื่อคลาสคืออะไร
- หนังสือ: รูปแบบการออกแบบ: องค์ประกอบของซอฟต์แวร์เชิงวัตถุที่ใช้ซ้ำได้ (ปกแข็ง)
- หนังสือ: รูปแบบของสถาปัตยกรรมแอปพลิเคชันองค์กร (ปกแข็ง)
- Book: Implementation Patterns (หนังสือปกอ่อน)
และรายการปัจจุบันของคำนำหน้าชื่อ / คำต่อท้ายที่ฉันรวบรวม (ส่วนตัว) จากคำตอบ:
- ผู้ประสาน
- ผู้ก่อสร้าง
- นักเขียน
- ผู้อ่าน
- ผู้ดำเนินการ
- ภาชนะ
- มาตรการ
- เป้า
- แปลง
- ตัวควบคุม
- ดู
- โรงงาน
- เอกลักษณ์
- ถัง
และเคล็ดลับที่ดีสำหรับถนน:
อย่าตั้งชื่ออัมพาต ใช่ชื่อมีความสำคัญมาก แต่ไม่สำคัญพอที่จะเสียเวลาเป็นจำนวนมาก หากคุณไม่สามารถคิดชื่อที่ดีภายใน 10 นาทีให้ไปต่อ