เรามีรูปแบบการเข้ารหัสหรือข้อกำหนดการเข้ารหัสมากมาย แต่เรามักจะลืมรายการนี้ กล่าวคือ เรามักใช้พารามิเตอร์บูลในพารามิเตอร์ฟังก์ชัน ซึ่งจะลดความสามารถในการอ่านโค้ดลงอย่างมาก ไม่เชื่อเหรอ? ก่อนอื่นเรามาดูโค้ดด้านล่างนี้กันก่อน
เมื่อคุณอ่านโค้ดต่อไปนี้ คุณคิดว่าโค้ดนี้หมายถึงอะไร
วิดเจ็ต -> ทาสีใหม่ (เท็จ); คุณต้องการทาสีใหม่หรือไม่? หรือมันหมายถึงอย่างอื่น?
หลังจากอ่านเอกสารแล้ว เราได้เรียนรู้ว่าพารามิเตอร์นี้เกิดขึ้นทันที กล่าวคือ false หมายถึงไม่ต้องวาดใหม่ทันที และ true หมายความว่าโค้ดจะวาดใหม่ทันที
นอกจากนี้ยังมีฟังก์ชันดังกล่าวใน Windows API: InvalidateRect เมื่อคุณเห็นโค้ดต่อไปนี้ คุณคิดว่ามันหมายถึงอะไร?
InvalidateRect(hwnd, lpRect, false); อย่าพูดถึงว่าชื่อฟังก์ชันของ InvalidateRect นั้นแย่แค่ไหน ไม่ถูกต้องหมายถึง "XXX ไม่ถูกต้อง" เท็จหมายถึงอะไร ลบสองเท่า? มันหมายถึงตกลงเหรอ?
ถ้าเห็นโค้ดแบบนี้จะค่อนข้างสับสน ดังนั้น คุณต้องดูเอกสารประกอบหรือคำจำกัดความฟังก์ชันของ InvalidateRect คุณจะเห็นว่าพารามิเตอร์คือ BOOL bErase ซึ่งหมายความว่า: "ไม่ว่าคุณต้องการวาดพื้นหลังใหม่หรือไม่"
มีหลายสิ่งหลายอย่าง เมื่อดูโค้ดต่อไปนี้ ฉันต้องการแทนที่ "%USER%" ใน str ด้วยชื่อผู้ใช้จริง:
str.replace("%USER%", ผู้ใช้, false); // Qt 3TNND, false หมายถึงอะไร? ไม่เปลี่ยนเหรอ? หรือมันหมายถึงอย่างอื่น?
ฉันพบหลังจากอ่านเอกสารแล้วว่าคำผิดหมายถึง: "การเปลี่ยนโดยไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่"
จริงๆ แล้ว ถ้าคุณใช้ตัวแปร/ค่าคงที่ enum แทนตัวแปรบูล คุณจะทำให้โค้ดของคุณอ่านง่ายขึ้น เช่น: