首页 > 解决方案 > 硬编码区域、城市、国家字符串

问题描述

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

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

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

你选择哪个选项?

标签: javastringstreet-addresshardcode

解决方案


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

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

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

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

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


推荐阅读