Книга: Windows XP
Версии программ
Версии программ
Программы, как известно, пишут живые люди. А люди имеют привычку ошибаться. А в программах ошибки встречаются, пожалуй, чаще, чем во всех остальных видах человеческой деятельности вместе взятых. Причин для этого много, но основная – сложность современных компьютеров: ни один человек не может отследить все команды, выполняемые компьютером при работе программы, – уж очень там много всего задействовано. Я даже не говорю о диком разнообразии всевозможных железок, настроек и установленных программ, с которым встречается творение любого программиста, вышедшее «в свет». Ну и, разумеется, про ошибки самого программиста как в алгоритме, так и в его реализации тоже забывать не стоит…
Для того чтобы понять, откуда берутся ошибки реализации, можно взять типичный пример – деление на ноль. Допустим, вы решили написать программу, которая будет считать среднюю скорость роста человека (не знаю зачем, но допустим). Пользователь вводит дату своего рождения и свой рост, а программа вычитает из сегодняшнего числа дату рождения, подсчитывает ваш возраст в днях и делит рост на число ваших дней. Такая программа будет прекрасно работать для вас и ваших родственников, но если вы ее «выпустите в люди», то обязательно найдется кто-то, кто в качестве дня рождения введет сегодняшнее число. И готово – возраст ноль дней, попытка деления на ноль и программа вылетает с ошибкой.
Разумеется, это самый простой пример. В реальной жизни все сложнее и зависит не только от данных, вводимых пользователем (которые можно, а точнее, нужно проверять перед использованием в программе), но и от установленных системных файлов, драйверов и кучи других вещей, предсказать которые невозможно, а их влияние на работоспособность программы совсем не очевидно.
Как правило, ошибки «первого типа» вычисляются и исправляются очень легко, в течение 10 минут. «Второй тип» – сложнее, но он затрагивает относительно небольшое число пользователей. Обычно исправление подобных ошибок приводит к изменению второй или третьей цифры в номере версии (или же автор вообще не меняет версию, а просто выкладывает обновленный файл).
Если вы видите, что вместо версии 2.1 появилась, скажем, 2.11, то имеет смысл заглянуть на сайт программы и посмотреть, не появилось ли там описание изменений, чтобы понять, нужно оно вам или нет. Ну а если программа небольшая, то можно просто скачать обновленную версию…
Другая штука – это внесение новых функций в программу. Ведь после выхода программы автор получает какое-то количество писем от пользователей с просьбами добавить или изменить что-то в программе, советами по ее совершенствованию и тому подобное. Если много людей просят что-то одно, то автор часто прислушивается к их мнению и дописывает соответствующую функцию. Кроме того, он и сам может придумать что-то новое и интересное и встроить в программу. Обычно подобные изменения приводят к увеличению второй цифры в номере версии, то есть вместо 1.1 появляется 1.2.
Такие обновления в большинстве случаев документируются и их описание помещается в файл history txt или WhatsNew txt. К такой версии стоит приглядеться повнимательнее – есть большая вероятность того, что там появилось что-то такое, чего вам не хватало…
Обнаруженные ошибки или неоптимальные куски в алгоритме программы, как правило, оказываются самыми неприятными для автора, так как они требуют переписывания больших кусков кода или даже всей программы «с нуля». В то же время, их исправление приносит наибольшую пользу тем, кто этой программой пользуется – значительно увеличиваются возможности программы, скорость ее работы, часто меняется внешний вид, появляется много новых функций… С другой стороны, при этом может измениться формат хранения данных, что потребует каких-то специальных действий при переходе на новую версию; может измениться название программы, ее цена и какие-то другие вещи, которые потребуют от пользователя внимательного изучения документации (что, в общем-то, никогда не мешает). Подобные «глобальные» изменения обычно приводят к увеличению первой цифры версии программы, то есть из 1х она превращается в 2.0. К сожалению, правила изменения версий нигде не описаны и не формализованы; то, что я описал – это «усредненное описание». Многие авторы в качестве номера версии используют дату выхода программы. Кто-то не использует «минорные» версии вообще, увеличивая номер на единицу при любом самом маленьком обновлении. Кто-то меняет программу, не меняя версии. Иногда встречаются случаи, когда версия меняется, но отсутствует какое-либо упоминание о сделанных изменениях. Все в руках авторов…
Работая над программой, ее автор может выкладывать в Сеть не только окончательные, но и предварительные версии! Каждая из них имеет свое собственное обозначение:
Альфа (alpha) – самая первая версия программы, черновой набросок. Статус «альфы» гарантирует вам, что скачанная программа установится и даже запустится, однако ее дальнейшие действия непредсказуемы. Чаще всего «альфа-версия» напичкана ошибками, как сдобная булочка изюмом, многие из ее возможностей и функций просто не работают. Вот почему пользоваться «альфой» могут лишь самые нетерпеливые и отчаянные экспериментаторы, выполняя таким образом роль тестеров. Остальным же стоит дождаться появления более стабильной и надежной версии – «беты».
Бета (beta) – уже вполне пригодный к употреблению продукт. Грубые ошибки убраны, базовые задачи программа выполняет успешно. Остались лишь маленькие недоделки, которые могут исчезнуть уже в следующих «бетах». В статусе «беты» многие программы пребывают большую часть жизни – вспомним хотя бы проигрыватель WinAmp, почтовую программу The Bat! и ряд других программ, «бетовость» которых не мешает пользоваться ими миллионам пользователей.
После того как ошибки, обнаруженные в альфа– и бета-версиях программ, исправлены, а функции добавлены, наступает очередь RC (ReleaseCandidate) – кандидат на окончательную версию. Эта программа уже считается стабильной и используется для выявления наиболее скрытых ошибок – такую программу, практически без опаски, могут скачивать и устанавливать даже те пользователи, которые слабо разбираются в компьютерах. А так как таких большинство, то увеличивается число пользователей, что означает увеличение числа «тестеров». Ошибки в RC версиях вычисляются довольно редко, так что при переходе в «основную» версию программа практически не меняется.
Наконец, после всех мучений и доделок на свет появляется релиз (release) – полностью готовая, окончательная версия программы.
- Улучшенное время отклика для версии SuperServer
- 8.2. Языки программирования Виды программирований
- 1.1. Введение в объектно-ориентированное программирование
- 11.2. СВОЙСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- 6.2. Типичные ошибки при проведении программ продвижения и варианты их устранения
- Системное программное обеспечение
- Другие изменения в 7-й версии InterBase
- Определение версии клиента
- Отличительные особенности новой версии
- Язык программирования Python