我目前正在开发一个使用Access数据库作为后端的PHP应用程序.您不明白......数据库是客户最初使用的数据库,使用它是需求的一部分.
此数据库的一个问题是列名称具有您可能想象的最疯狂的命名约定.大写,小写,下划线,空格和平原疯狂.例如,"性别"列包含日期.列"User2"也是如此.还有更多,但你明白了.
面对这个,我决定创建一个数组来将数据库列映射到PHP变量,这样我们就可以将代码与疯狂隔离开来.然而,我的同事认为我过于复杂,我们应该使用数据库的列名来获取相应的PHP变量,因此我们不需要通过映射数组来查找其中的内容.
所以我的问题是......我做对了还是让事情变得复杂?
绝对是你走在正确的轨道上.如果你不抽象疯狂,你最终会自己屈服于疯狂.
你的同事有一个有效的观点,所以我建议你编写一个简单的方法来确定PHP中的数据到列映射.
这不是为了保持简单,而是为了改进坚实的基础来构建.
令我担心的是,这种随机设计经常隐藏某些商业规则,例如"......如果性别是约会,那么他们必须在某个时候购买了一个小部件,因此不能让他们嘲笑lubdub ......" - 我知道的疯狂,但比它应该更常见.
名字非常重要.如果您希望应用程序可维护,请在代码库进一步增长之前修复它们.
我不会说你让事情复杂化.
埃里克·埃文(Eric Evan)的书" 领域驱动设计 "(Domain Driven Design)有一个可爱的术语:反腐败层