Как избежать жесткого кодирования строк
Это вопрос относительно лучших практик кодирования. Я хотел бы узнать консенсус о том, как наилучшим образом избежать жесткого кодирования строк и значений в приложении.NET. Что я видел до сих пор, где я раньше работал:
- использование ресурсов.resx
- хранение этих значений и строк в App.config или web.config
создание статического класса ApplicationStrings и объявление всех строк и значений в нем:
public static class ApplicationStrings { #region constants public const string APPLICATION_NAME = "X"; public const string APPLICATION_RESOURCEMANAGER_NAME = "ResourceManagerX"; public const string APPLICATION_DEFAULT_LOGFILENAME = "log.txt"; }
Однако не 3-й метод, просто еще один жесткий код? Имеет ли смысл иметь такой класс? Преимущество состоит в том, что все строки находятся в одном месте, но действительно ли это позволяет избежать жесткого кода?
Кроме того, если вы разработали другие привычки для этой ситуации, не стесняйтесь писать.
4 ответа
Главное преимущество состоит в том, чтобы все строки были в одном месте, и вам нужно всего лишь изменить их, чтобы обновить всю программу. Если разные части вашей программы используют одну и ту же строку и один экземпляр обновляется, а другой нет, то у вас есть проблема. Кстати, это относится ко всем литералам.
И тогда с файлами ресурсов есть преимущество i18n и l10n. Если вам это нужно, но многие крупные приложения должны.
В целом, я считаю, что рекомендуется хранить все настраиваемые данные в центральном конфигурационном файле, чтобы все данные находились в одном месте и могли использоваться другими приложениями.
На мой взгляд, ApplicationSettings полезен только в том случае, если ваши настройки (i) действительно постоянны и (ii), конечно, действительно общедоступны. Если любой из этих случаев не соответствует действительности, то это не идеальный вариант, и вы вернулись к файлу.config.resx