我正在开发一个项目来替换已弃用的资源管理系统(Mac 和 Windows 上的 QuickTime 资源管理器),并且我一直在使用 Qt 使用的当前模型,其中使用字符串键从资源文件中检索数据。
例如,我的资源文件中可能有一个图像,“HungryBear.png”存储在我的资源文件中。Qt 和我提出的系统将以伪代码描述的方式得到它:
image = GetImageResource("BearPlugin/Images/HungryBear.png");
那时很清楚该图像是什么以及可以在哪里找到它。
在我们当前的系统中,我们使用数字。数字的问题在于,必须查找资源文件(可能有很多)才能找出它是什么图像(或资源)。
一个例子:
oldActiveResourceFile = GetActiveResourceFile(); // think of a stack of resource files
SetActiveResourceFile("BearPlugin");
image = GetImageResource(1);
// Perhaps other resources are retrieved and other functions called
// Possibly introduce problems by calling functions that change "Active Resource File"
SetActiveResourceFile(oldActiveResourceFile);
第一种方法是我在当前访问资源文件数据的系统中看到的。我被告知 C# 和 Java 使用它,我知道它们用于字符串键值对等。
但是,我的一个同行对更改当前使用这些数字 ID 的系统作为我提议的字符串 ID 表示担忧。似乎有很多好处,它们解决了我们在当前系统中遇到的许多问题。我希望有支持文件证明所提议的系统更好、更可取,所以我的问题是:
您是否知道任何研究或讨论表明在代码中使用字符串标识符(分层)比使用任意数字更好?
笔记
- 我计划使用 zip 文件(可能未压缩)来包含数据文件。
- 我们有一个应用程序插件环境。应用程序和每个插件都可以有自己的资源文件。插件可能能够访问应用程序资源文件中的资源数据。
以下是一些已经考虑过并且我认为已经满足的要求:
- 软件开发人员应能够唯一标识资源。
- 软件开发人员应该能够用有意义的名称命名资源。
- 资源应与需要它们的应用程序部分相关联。
- 本地化人员应能够轻松识别已更改的资源文件。
- 本地化人员应该能够使用他们自己的工具来修改资源文件。
- 如果客户正在使用的功能依赖于已弃用的调用,则应提醒客户。