Отслеживание прогресса в области глобализации
-
02-07-2019 - |
Вопрос
С нашим следующим крупным выпуском мы планируем глобализировать наше ASP.Сетевое приложение, и меня попросили подумать о способе отслеживания того, над каким кодом уже была проведена работа в рамках этой работы.
Моя мысль состояла в том, чтобы использовать пользовательский атрибут и разместить его во всех классах, которые были "исправлены".
А ты как думаешь?
У кого-нибудь есть идея получше?
Решение
Использование атрибута для определения того, какие классы были глобализованы, затем потребовало бы инструмента для обработки кода и определения того, какие классы были "обработаны", а какие нет, похоже, это становится немного сложнее.
Более традиционный процесс отслеживания проекта, вероятно, был бы лучше - и не "загрязнял" бы ваш код атрибутами / другой разметкой, которые не имеют функционального значения после завершения проекта глобализации.Как насчет того, чтобы выявить дефект для каждого класса, требующий доработки, и отслеживать его таким образом?
Другие советы
Как насчет простого подсчета или перечисления классов, а затем работы от класса к классу?Хотя атрибут может быть интересной идеей, я бы расценил его как чрезмерно продуманный.Глобализация не делает ничего большего, чем, ну, прохождение по каждому классу и глобализация кода :)
Вы все равно хотите закончить это до следующего релиза.Так что продолжайте и просто делайте это одно за другим, и вот вам ваш прогресс.Я бы также расценил дефект, выявленный для каждого класса, как слишком большой.
В моем последнем проекте я немного запоздало приступил к полной глобализации.Я просто просмотрел список файлов кода сверху донизу.В моем случае в алфавитном порядке, и папка за папкой.Поэтому мне всегда нужно было только помнить, над каким файлом я работал в последний раз.Для меня это сработало довольно хорошо.
Редактировать:Еще кое - что:В моем последнем проекте глобализация в основном включала перемещение жестко закодированных строк в файлы ресурсов и повторную генерацию всего текста при изменении языка во время выполнения.Но вам также придется подумать о таких вещах, как форматы чисел и тому подобное.Microsoft FxCop помогла мне в этом, поскольку она помечает все преобразования чисел и т.д.без указания культуры в качестве нарушений.FxCop отслеживает это, поэтому, когда вы устраните такое нарушение и повторно запустите FxCop, он сообщит о нарушении как об отсутствующем (т.е.решено).Это особенно полезно для таких трудноразличимых вещей.
Как насчет написания модульного теста для каждой страницы приложения?Модульный тест загрузит страницу и выполнит
foreach (System.Web.UI.Control c in Page.Controls)
{
//Do work here
}
Для рабочей части загрузите различные настройки глобализации и посмотрите, соответствуют ли они .Свойство Text (или соответствующее свойство для вашего приложения) отличается.
Мое предположение состояло бы в том, что ни один язык не должен быть одинаковым во всех случаях, кроме самых простых.
Используйте набор успешно завершенных модульных тестов, чтобы отслеживать свой прогресс.