Интернет магазин китайских планшетных компьютеров



Компьютеры - Нумерация версий программного обеспечения - Алгоритмы определения старшинства версий

22 января 2011


Оглавление:
1. Нумерация версий программного обеспечения
2. Схемы нумерации
3. Значение номеров версий
4. Алгоритмы определения старшинства версий
5. Применение схем нумерации ПО в других сферах культуры



Часто нужно программно определять, какая из двух версий старше — например, «пузыри» поддерживаются в Windows начиная с 2000, а в более ранних версиях надо поступать другими способами. Такая проверка делается по довольно сложным правилам: например, если версия — десятичная дробь, сначала требуется сравнить целые части как числа; если они равны, то дробные — как строки. Если версия — тройка или четвёрка чисел, то сравнивают числа по одному, пока не будет зафиксировано неравенство.

Поскольку чрезмерно сложные алгоритмы чреваты ошибками, а модульные тесты писать не всегда есть время, часто обходятся упрощёнными вариантами: например, строят с помощью битовых полей длинное число; либо сравнивают версии как строки. Первое не сработает, если одно из чисел перейдёт за 256, второе — если выйдет версия 10.

Иногда подобные упрощения играют злую шутку: в первые годы популярности Windows выяснилось, что множество программ некорректно проверяли версию ОС, отказываясь работать под 4.0. Поэтому Windows 95 и Windows 98 имели внутренние версии 3.95 и 3.98.

Похожие ухищрения применялись в User-Agent’е браузера Opera при переходе с версии 9.64 на 10.00. Это вызвано тем, что некоторые сайты, реагирующие на User-Agent, либо сравнивали номера как строки, либо брали первую цифру. Разработчикам пришлось использовать запись Opera/9.80 вместо Opera/10.00, а настоящий номер версии добавить в конце UserAgent’а. Планировалось, что к 11-й версии UserAgent примет привычный вид, однако это ухищрение используется до сих пор.



Просмотров: 6756


<<< Недокументированные возможности