10
เราควรกำหนดประเภทสำหรับทุกสิ่งหรือไม่
เมื่อเร็ว ๆ นี้ฉันมีปัญหากับการอ่านรหัสของฉัน ฉันมีฟังก์ชั่นที่ทำการดำเนินการและส่งคืนสตริงที่แสดง ID ของการดำเนินการนี้สำหรับการอ้างอิงในอนาคต (บิตเช่น OpenFile ใน Windows ที่ส่งคืนหมายเลขอ้างอิง) ผู้ใช้จะใช้ ID นี้ในภายหลังเพื่อเริ่มการทำงานและเพื่อตรวจสอบความสมบูรณ์ ID ต้องเป็นสตริงแบบสุ่มเนื่องจากความกังวลเกี่ยวกับการทำงานร่วมกัน สิ่งนี้สร้างวิธีที่มีลายเซ็นที่ไม่ชัดเจนเช่น: public string CreateNewThing() สิ่งนี้ทำให้เจตนาของประเภทผลตอบแทนไม่ชัดเจน ฉันคิดว่าการพันสตริงนี้ในรูปแบบอื่นที่ทำให้ความหมายของมันชัดเจนขึ้นเช่น: public OperationIdentifier CreateNewThing() ประเภทจะมีเฉพาะสตริงและใช้เมื่อใดก็ตามที่มีการใช้สตริงนี้ เห็นได้ชัดว่าข้อดีของวิธีการใช้งานแบบนี้คือความปลอดภัยและความตั้งใจที่ชัดเจนยิ่งขึ้น แต่มันก็สร้างรหัสและรหัสจำนวนมากขึ้น ในมือข้างหนึ่งฉันชอบความปลอดภัยที่เพิ่มขึ้น แต่ก็สร้างความยุ่งเหยิงมากมาย คุณคิดว่าเป็นวิธีปฏิบัติที่ดีในการห่อประเภทที่เรียบง่ายในชั้นเรียนด้วยเหตุผลด้านความปลอดภัยหรือไม่?
141
type-systems