Я работаю над проектом по замене системы управления ресурсами (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 используют его, я знаю, что они используют для пар ключ-значение строки и т. Д.
Однако мой коллега выразил обеспокоенность по поводу изменения текущей системы использования этих числовых идентификаторов для идентификаторов строк, которые я предлагаю. Кажется, что есть много преимуществ, и они решают многие проблемы, которые у нас были с текущей системой. Я хочу иметь подтверждающую документацию о том, что предлагаемая система лучше и желательнее, поэтому мой вопрос такой:
Известны ли вам какие-либо исследования или обсуждения, которые демонстрируют, что использование строкового идентификатора (иерархического) в коде лучше, чем использование произвольного числа?
ПРИМЕЧАНИЯ
- Я планирую использовать zip-файл (возможно, несжатый) для хранения файлов данных.
- У нас есть среда приложения-плагина. Приложение и каждый плагин могут иметь свои собственные файлы ресурсов. Плагины могут иметь доступ к данным ресурсов в файле ресурсов приложения.
Вот некоторые требования, которые были рассмотрены, и я считаю, что они выполнены:
- Разработчики программного обеспечения должны иметь возможность однозначно идентифицировать ресурсы.
- Разработчики программного обеспечения должны иметь возможность называть ресурсы значимыми именами.
- Ресурсы должны быть связаны с теми частями приложения, которые в них нуждаются.
- Локализаторы должны иметь возможность легко идентифицировать файлы ресурсов, которые изменились.
- Локализаторы должны иметь возможность использовать свои собственные инструменты для изменения файлов ресурсов.
- Клиенты должны быть предупреждены в случае, если используемые ими функции зависят от устаревших вызовов.