阅读材料二:代码复审>避免魔术数字
2016-12-15 本文已影响0人
达贡之邪力
原文地址:https://courses.edx.org/courses/course-v1:MITx+6.005.1x+3T2016/courseware/Readings_Videos/02-Code-Review/
避免魔术数字
在计算机科学家眼中,只有两个常量被认为是有效的,它们是0和1,也许还有2.(好吧,3个常量).
所有其他常量被称为魔术,因为它们似乎是从稀薄的空气中冒出来的,没有任何解释.一种解释这些数字的方式是注释,但是更好的方法是去定义它成为一个命名的常量,以一个好的,清晰的名字.
代码1dayOfYear充满了魔术数字:
--月份2,...,12写成FEBRUARY,...,DECEMBER会更好读懂.
--月份的天数30,31,28可以更好理解如果它们在一个数据结构比如数组,列表或者字典中.比如MONTH_LENGTH[month].
--神秘的数字59和90更是魔术数字的致命代表.不仅仅是他们没有注释和记录,而且他们是程序员自己笔算的结果.不要自己笔算常量的值.Java在算术方面比你强很多.明确的计算31+28比起刚刚的魔术数字来说要更具保护性.MONTH_LENGTH[JANUARY]+MONTH_LENGTH[FEBRUARY]就更加清晰了.