Почему строковые идентификаторы используются для доступа к данным ресурса?

Я работаю над проектом по замене система управления ресурсами (QuickTime Resource Manager на Mac и Windows), которая устарела, и я использую текущую модель, которую использует Qt, когда данные извлекаются из файла ресурсов с использованием строкового ключа.

Например, у меня может быть изображение в моем файле ресурсов "HungryBear.png", хранящееся в моем файле ресурсов. Qt и моя предложенная система получат его так, как показано на psuedocode:

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 используют его, я знаю, что они используют для пар ключ-значение строки и т. Д.

Однако мой коллега выразил обеспокоенность по поводу изменения текущей системы использования этих числовых идентификаторов для идентификаторы строк, которые я предлагаю. Кажется, что есть много преимуществ, и они решают многие проблемы, которые у нас были с текущей системой. Я хочу иметь подтверждающую документацию о том, что предлагаемая система лучше и желательнее, поэтому мой вопрос таков:

Знаете ли вы о каком-либо исследовании или обсуждении, которое демонстрирует, что использование строкового идентификатора (иерархического) в коде лучше, чем использование произвольного числа?

ПРИМЕЧАНИЯ

  1. Я планирую использовать zip-файл (возможно, несжатый) для содержат файлы данных.
  2. У нас есть среда приложения-плагина. Приложение и каждый плагин могут иметь свои собственные файлы ресурсов. Плагины могут иметь доступ к данным ресурсов в файле ресурсов приложения.
  3. Вот некоторые требования, которые были рассмотрены, и я считаю, что они выполнены:

    • Разработчики программного обеспечения должны иметь возможность уникально идентифицировать ресурсы.
    • Разработчики программного обеспечения должны возможность называть ресурсы значимыми именами.
    • Ресурсы должны быть связаны с частями приложения, которые в них нуждаются.
    • Локализаторы должны иметь возможность легко идентифицировать файлы ресурсов, которые изменились.
    • Локализаторы должны иметь возможность использовать свои собственные инструменты для изменения файлов ресурсов.
    • Клиенты должны быть предупреждены в случае, если используемые ими функции зависят от устаревших вызовов.
7
задан Cody Gray 19 September 2017 в 18:06
поделиться