ฉันเห็นคำถามที่คล้ายกับเรื่องนี้เกี่ยวกับชื่อพารามิเตอร์ที่ตรงกับคุณสมบัติในคลาส แต่ฉันไม่พบสิ่งใดเกี่ยวกับการใช้ชื่อพารามิเตอร์ที่เหมือนกับชื่อประเภทพารามิเตอร์ยกเว้นการใส่ใน C # ดูเหมือนจะไม่เป็นการละเมิดที่ฉันสามารถหาได้ แต่มันถือว่าเป็นการปฏิบัติที่ไม่ดี ตัวอย่างเช่นฉันมีวิธีการดังต่อไปนี้
public Range PadRange(Range range) {}
วิธีนี้ใช้ช่วงและส่งกลับช่วงใหม่ที่มีการเติมเต็มบางส่วน ดังนั้นด้วยบริบททั่วไปฉันไม่สามารถนึกถึงชื่อที่อธิบายเพิ่มเติมสำหรับพารามิเตอร์ได้ อย่างไรก็ตามฉันระลึกถึงปลายที่ฉันหยิบขึ้นมาเมื่ออ่านรหัสสมบูรณ์เกี่ยวกับ "ระยะทางทางจิตวิทยา" มันบอกว่า
ระยะทางทางจิตวิทยาสามารถกำหนดได้ว่าเป็นความง่ายในการแยกความแตกต่างของสองรายการ ... เมื่อคุณดีบั๊กให้พร้อมสำหรับปัญหาที่เกิดจากระยะห่างทางจิตใจไม่เพียงพอระหว่างชื่อตัวแปรที่คล้ายกันและระหว่างชื่อรูทีนที่คล้ายกัน ในขณะที่คุณสร้างรหัสให้เลือกชื่อที่มีความแตกต่างมากเพื่อให้คุณสามารถหลีกเลี่ยงปัญหาได้
ลายเซ็นวิธีการของฉันมี "ช่วง" มากมายเกิดขึ้นดังนั้นจึงรู้สึกว่ามันอาจเป็นปัญหาเกี่ยวกับระยะห่างทางจิตวิทยานี้ ตอนนี้ฉันเห็นนักพัฒนาหลายคนทำต่อไปนี้
public Range PadRange(Range myRange) {}
โดยส่วนตัวฉันมีความไม่พอใจที่แข็งแกร่งสำหรับการประชุมครั้งนี้ การเพิ่มคำนำหน้า "ของฉัน" ไปยังชื่อตัวแปรไม่มีบริบทเพิ่มเติม
ฉันยังเห็นดังต่อไปนี้
public Range PadRange(Range rangeToPad) {}
ฉันชอบสิ่งนี้ดีกว่าส่วนนำหน้า "ของฉัน" แต่ก็ยังไม่สนใจโดยรวม มันรู้สึก verbose มากเกินไปสำหรับฉันและอ่านอย่างเชื่องช้าเป็นชื่อตัวแปร สำหรับฉันมันเป็นที่เข้าใจกันดีว่าช่วงนั้นจะถูกเพิ่มเนื่องจากชื่อเมธอด
ดังนั้นเมื่อทั้งหมดนี้ออกมาอุทรของฉันคือการได้ไปกับลายเซ็นแรก สำหรับฉันมันสะอาด ไม่จำเป็นต้องบังคับบริบทเมื่อไม่จำเป็น แต่ฉันทำตัวเองหรือผู้พัฒนาในอนาคตเป็นความเสียหายกับการประชุมนี้หรือไม่? ฉันกำลังละเมิดแนวปฏิบัติที่ดีที่สุดหรือไม่?
Range r
(อย่างน้อยสำหรับร่างกายวิธีสั้น) Range toPad
และ
Range range
นี้ก็ดี