สิ่งที่คุณต้องการคือการกำจัดอาการคลื่นไส้โฆษณาที่อ้างอิงถึงค่าคงที่ไม่ว่าพวกเขาจะตั้งชื่อหรือเปล่า:
for_each_chess_square (row, col) {
/*...*/
}
หากคุณกำลังจริงจะเพิ่มจำนวนอย่างต่อเนื่องโดยการทำซ้ำเช่นลูปและ whatnot 8
จะดีที่สุดที่จะติดกับ
8
เป็นการอธิบายตนเอง ไม่ใช่มาโครที่หมายถึงอย่างอื่น
คุณไม่ได้เปลี่ยนเป็นโปรแกรมหมากรุก 9x9 และถ้าคุณทำการเพิ่มจำนวน 8 จะไม่เป็นปัญหาใหญ่
เราสามารถค้นหาฐานรหัส 150,000 บรรทัดสำหรับโทเค็น 8 และจำแนกว่าสิ่งที่เกิดขึ้นหมายถึงอะไรในไม่กี่วินาที
สิ่งที่สำคัญกว่านั้นคือการทำให้โค้ดเป็นโมดูลเพื่อให้ความรู้เกี่ยวกับหมากรุกมีความเข้มข้นในสถานที่น้อยที่สุดเท่าที่จะเป็นไปได้ ดีกว่าที่จะมีหนึ่ง, สองหรือสามโมดูลหมากรุกเฉพาะที่เกิดขึ้นจริง 8, กว่าสามสิบเจ็ดโมดูลที่มีความรับผิดชอบเฉพาะหมากรุกหมายถึง 8 ผ่านชื่อสัญลักษณ์
เมื่อหรือถ้าค่าคงที่ 8 นี้กลายเป็นแหล่งความตึงเครียดในโปรแกรมของคุณคุณสามารถแก้ไขได้อย่างง่ายดายในเวลานั้น แก้ไขปัญหาจริงที่เกิดขึ้นในขณะนี้ หากคุณไม่รู้สึกว่าตัวเองถูกขัดขวางจาก 8 ข้อนั้นไปด้วยสัญชาตญาณ
สมมติว่าในอนาคตคุณต้องการสนับสนุนขนาดกระดานทางเลือก ในกรณีที่ลูปเหล่านั้นจะมีการเปลี่ยนแปลงไม่ว่าจะใช้ชื่ออย่างต่อเนื่องหรือ8
เพราะขนาดจะถูกเรียกโดยการแสดงออกบางอย่างเช่นและboard.width
board.height
หากคุณมีBOARD_SIZE
แทน8
สถานที่เหล่านี้จะง่ายต่อการค้นหา นั่นคือความพยายามน้อยลง อย่างไรก็ตามคุณต้องไม่ลืมเกี่ยวกับความพยายามในการแทนที่8
ด้วยBOARD_SIZE
ในสถานที่แรก ความพยายามโดยรวมไม่ได้ลดลง การส่งรหัสผ่านหนึ่งครั้งเพื่อเปลี่ยน8
เป็นBOARD_SIZE
แล้วอีกส่วนหนึ่งเพื่อสนับสนุนมิติทางเลือกนั้นไม่ได้ราคาถูกกว่า8
การสนับสนุนมิติอื่น
เราสามารถดูได้จากการวิเคราะห์ความเสี่ยง / ผลประโยชน์ที่เป็นเป้าหมายอย่างเย็นชา โปรแกรมมีค่าคงที่เปลือยเปล่าในตอนนี้ หากสิ่งเหล่านี้ถูกแทนที่ด้วยค่าคงที่จะไม่มีประโยชน์ โปรแกรมเหมือนกัน การเปลี่ยนแปลงใด ๆ มีความเสี่ยงที่ไม่ใช่ศูนย์ ในกรณีนี้มันมีขนาดเล็ก แต่ถึงกระนั้นก็ไม่มีความเสี่ยงที่ควรได้รับโดยไม่มีประโยชน์ ในการ "ขาย" การเปลี่ยนแปลงในการเผชิญกับเหตุผลนี้เราต้องตั้งสมมติฐานผลประโยชน์: ผลประโยชน์ในอนาคตซึ่งจะช่วยให้มีโปรแกรมที่แตกต่างกัน: เวอร์ชันในอนาคตของโปรแกรมที่ไม่มีอยู่ในขณะนี้ หากมีการวางแผนโปรแกรมดังกล่าวสมมติฐานนี้และการใช้เหตุผลที่เกี่ยวข้องนั้นเป็นจริงโดยสุจริตและควรดำเนินการอย่างจริงจัง
ตัวอย่างเช่นหากคุณอยู่ห่างออกไปหลายวันจากการเพิ่มรหัสเพิ่มเติมที่จะเพิ่มค่าคงที่เหล่านี้ต่อไปคุณอาจต้องการลบออกจากพวกเขา หากอินสแตนซ์เหล่านั้นของค่าคงที่มีค่าประมาณอินสแตนซ์ทั้งหมดที่เคยมีอยู่ดังนั้นทำไมจึงต้องกังวล
หากคุณเคยใช้ซอฟต์แวร์เชิงพาณิชย์ข้อโต้แย้ง ROI ก็จะถูกนำมาใช้เช่นกัน หากโปรแกรมไม่ได้ขายและการเปลี่ยนตัวเลขที่มีรหัสตายตัวเป็นค่าคงที่จะไม่ช่วยเพิ่มยอดขายคุณจะไม่ได้รับการชดเชย การเปลี่ยนแปลงมีผลตอบแทนเป็นศูนย์จากการลงทุนของเวลา ข้อโต้แย้ง ROI ทั่วไปเกินกว่าเงิน คุณเขียนโปรแกรมใช้เวลาและความพยายามและเอาบางอย่างออกไปนั่นคือผลตอบแทนของคุณ "R" ของคุณ หากคุณทำการเปลี่ยนแปลงเพียงอย่างเดียวคุณจะได้รับ "R" มากขึ้นไม่ว่าจะเป็นอะไรก็ตามโดยวิธีทั้งหมด หากคุณมีแผนสำหรับการพัฒนาเพิ่มเติมและการเปลี่ยนแปลงนั้นจะปรับปรุง "R" ของคุณเหมือนกัน หากการเปลี่ยนแปลงนั้นไม่มี "R" ให้คุณทันทีหรือลืมไป