硬编码区域,城市,国家/地区字符串

时间:2019-06-08 01:54:16

标签: java string street-address hardcode

总共可能有多达1000个字符串。这些应该硬编码还是存储在数据库中?这些是经常访问的,因为每次用户想要注册或结帐项目时,他们将需要查看区域/郊区/省/国家/地区的列表。

如果我有一堆枚举,我认为性能应该很快,因为最大字符串数约为1-2k。

另一方面,如果我将它们存储在数据库中,则访问数据库的延迟以及CPU /内存的消耗。

您选择哪个选项?

2 个答案:

答案 0 :(得分:1)

1000并不是一个很大的数目,我会将这些信息放入一个文本文件中,并在启动时将其读入程序中。

无论如何,这是数据,而不是代码,因此不应是枚举(代码)。为什么不枚举?如果将来需要更改,则更新/更改数据比更改代码更容易,更灵活。

如果您一定会随着时间的流逝而更新和更改此信息,尤其是通过多个来源,那么数据库无疑是必经之路。

答案 1 :(得分:1)

这一切都取决于你。没有适当的约定。下面是三种方式以及它们的优缺点。

  1. 使用静态最终字符串变量创建一个类。 优点: 一种。很好用。 b。开发人员可以在IDE中进行查找。 缺点: 一种。每次您需要添加/删除某些内容时,都必须重新编译代码。但是,如果已安装ci-cd,这不会有太大问题。

  2. 将所有内容添加到属性文件中并在运行时加载。 优点: 一种。修改东西会很容易。无需重新编译代码。 缺点: 一种。这仍然需要重新部署和服务器重新启动。 b。开发人员将不满意,因为他们将不得不不时地引用txt文件。如果开发人员使用属性文件中不存在的错误代码,这也可能导致错误。

  3. 使用数据库 优点: 一种。高度可配置。 b。无需重新部署。 缺点: 一种。需要重新启动服务。

如您所见,所有它们都将需要重新启动服务,因为您肯定会在情况2和3中使用缓存。我的建议是,如果它们实际上不会改变,请使用第一个选项。对开发人员非常友好。