将属性文件值与数据库中的数据耦合为反
我正在开发一个应用程序,其中有一些配置值在属性文件中定义,其值或有效范围在某种程度上取决于存储在数据库中的数据。
这似乎是错误的一些原因,但我很努力地找到这个名称或确实任何发表的文章,可能表明这是不好的做法。 任何人都可以建议吗?
你的痛苦有一个名字,它是耦合。
我收集的属性文件是服务器配置的一部分,或与应用程序捆绑在一起 - 与数据库耦合。 数据库中的更改将波及属性文件。
这不是最糟糕的一种耦合 - 地狱圈是病理学/内容耦合 - 但耦合仍然是。
2016年2月15日,StackOverflow用户“zerobandwidth”声明,根据从数据库数据派生的环境边界验证您的配置设置是个坏主意。 在那里,现在有一个帖子,有人说这是一个坏主意。 O操作。〜
但是,严肃地说,无论何时,当你试图根据外部情况进行输入验证时,特别是当这些标准的推导依赖于像网络或数据库连接那样脆弱的东西时,你将会有一段糟糕的时间。
如果我们必须为这种模式创造一个名称,使其感觉更加正式,那么“不可靠的基础依赖性”如何呢? 这似乎有一个适当的臭味内涵,对吗? ^ _ ^
有一些反模式想到。 最合适的一种可能是软编码(与硬编码值相反)。 避免使用硬编码值和“幻数”通常是好事,但如果发挥到极致则不会。 从维基百科条目:
该术语通常用于软编码变成反模式的地方。 抽象出太多的值和特征可能会带来比在需要时更改代码时所遇到的更多复杂性和维护问题。
既然你要求发表文章,关于软编码的更多细节可以在The Daily WTF中找到,Alex在其中将软编码定义为...
从源代码中删除“应该在源代码中的东西”并将它们放置在某些外部资源中的做法。
从你所描述的内容来看,这些值应该存储在源代码中,或者也可以存储在数据库中,这些值依赖于存储的值,而不是存储在外部属性文件中。 所以是的,我会同意这里的确有一些“设计气味”。
在较小的程度上,你可能会认为这是一个应用货物崇拜节目的例子。
货物崇拜编程也可以指的是盲目应用设计模式或编码风格的结果,而不理解该设计原则背后的原因。
原理与应用金锤不太一样,但有点相似。
(但是,在向这些代码的“作者”提供这些定义时要小心,因为大多数开发人员往往不会意识到在他们的设计中指出了反模式。)
链接地址: http://www.djcxy.com/p/29725.html上一篇: Is coupling property file values with data in a database an anti