魔术数字
请注意,在前面的示例中,我总是把常量数字变量放在类常量中,而不是直接放在代码中:
const minRate = 2.50;
const secondsInDay = 60 * 60 * 24;
const mileRate = 0.2;
我这样做的原因是为了避免一种被称为 "魔法数字" 或 "未命名数字常量" 的反模式。使用类常量可以使代码更易于阅读、理解和维护;当然,根据 PSR 标准,类常量应该用大写字母声明,并用下划线分隔。
总结
在本章中,我们介绍了一些需要避免的基本反模式;有些是架构方面的,有些是 PHP 相关的,还有些是管理层方面的。
从根本上说,反模式会导致技术债务。所谓技术债务,是指代码很难扩展,以至于日后很难修改。
为了解决这个问题,我希望你做以下几件事:
-
开始编码之前做好计划
-
发表评论,并在代码用途不明显的地方添加评论
-
确保你的代码有结构
-
尽量避免在一种方法中放入太多代码
-
使用 DocBlocking
-
使用 PHP 的常识方法
在本章中,我们了解了一些可能导致严重问题的常见设计问题;这些原则可以帮助您避免日后出现重大问题。编写可扩展代码是设计的一个重要因素。其核心是要了解制约因素。使用适当的进程间通信策略可以帮助您扩展服务,而编写松散耦合的代码可以提高代码重用率和调试率。最后,在部署这些出色的代码时,自动化测试和完美分阶段迁移可以确保顺利进行。
在接下来的章节中,我们将介绍一些设计模式(想必这也是你一直在等待的)。
如果你有兴趣了解如何改进现有代码库的设计,你可能会发现本书中关于重构的专门章节特别有趣;但值得先阅读一下其他设计模式,以便了解我们试图重构的模式。