home | login | register | DMCA | contacts | help | donate |      

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я


my bookshelf | genres | recommend | rating of books | rating of authors | reviews | new | форум | collections | читалки | авторам | add
fantasy
space fantasy
fantasy is horrors
heroic
prose
  military
  child
  russian
detective
  action
  child
  ironical
  historical
  political
western
adventure
adventure (child)
child's stories
love
religion
antique
Scientific literature
biography
business
home pets
animals
art
history
computers
linguistics
mathematics
religion
home_garden
sport
technique
publicism
philosophy
chemistry
close

реклама - advertisement





Версии программ


Программы, как известно, пишут живые люди. А люди имеют привычку ошибаться. А в программах ошибки встречаются, пожалуй, чаще, чем во всех остальных видах человеческой деятельности вместе взятых. Причин для этого много, но основная - сложность современных компьютеров: ни один человек не может отследить все команды, выполняемые компьютером при работе программы, - уж очень там много всего задействовано. Я даже не говорю о диком разнообразии всевозможных железок, настроек и установленных программ, с которым встречается творение любого программиста, вышедшее «в свет». Ну и, разумеется, про ошибки самого программиста как в алгоритме, так и в его реализации тоже забывать не стоит…

Для того чтобы понять, откуда берутся ошибки реализации, можно взять типичный пример - деление на ноль. Допустим, вы решили написать программу, которая будет считать среднюю скорость роста человека (не знаю зачем, но допустим). Пользователь вводит дату своего рождения и свой рост, а программа вычитает из сегодняшнего числа дату рождения, подсчитывает ваш возраст в днях и делит рост на число ваших дней. Такая программа будет прекрасно работать для вас и ваших родственников, но если вы ее «выпустите в люди», то обязательно найдется кто-то, кто в качестве дня рождения введет сегодняшнее число. И готово - возраст ноль дней, попытка деления на ноль и программа вылетает с ошибкой.

Разумеется, это самый простой пример. В реальной жизни все сложнее и зависит не только от данных, вводимых пользователем (которые можно, а точнее, нужно проверять перед использованием в программе), но и от установленных системных файлов, драйверов и кучи других вещей, предсказать которые невозможно, а их влияние на работоспособность программы совсем не очевидно.

Как правило, ошибки «первого типа» вычисляются и исправляются очень легко, в течение 10 минут. «Второй тип» - сложнее, но он затрагивает относительно небольшое число пользователей. Обычно исправление подобных ошибок приводит к изменению второй или третьей цифры в номере версии (или же автор вообще не меняет версию, а просто выкладывает обновленный файл).

Если вы видите, что вместо версии 2.1 появилась, скажем, 2.11, то имеет смысл заглянуть на сайт программы и посмотреть, не появилось ли там описание изменений, чтобы понять, нужно оно вам или нет. Ну а если программа небольшая, то можно просто скачать обновленную версию…

Другая штука - это внесение новых функций в программу. Ведь после выхода программы автор получает какое-то количество писем от пользователей с просьбами добавить или изменить что-то в программе, советами по ее совершенствованию и тому подобное. Если много людей просят что-то одно, то автор часто прислушивается к их мнению и дописывает соответствующую функцию. Кроме того, он и сам может придумать что-то новое и интересное и встроить в программу. Обычно подобные изменения приводят к увеличению второй цифры в номере версии, то есть вместо 1.1 появляется 1.2.

Такие обновления в большинстве случаев документируются и их описание помещается в файл history txt или WhatsNew txt. К такой версии стоит приглядеться повнимательнее - есть большая вероятность того, что там появилось что-то такое, чего вам не хватало…

Обнаруженные ошибки или неоптимальные куски в алгоритме программы, как правило, оказываются самыми неприятными для автора, так как они требуют переписывания больших кусков кода или даже всей программы «с нуля». В то же время, их исправление приносит наибольшую пользу тем, кто этой программой пользуется - значительно увеличиваются возможности программы, скорость ее работы, часто меняется внешний вид, появляется много новых функций… С другой стороны, при этом может измениться формат хранения данных, что потребует каких-то специальных действий при переходе на новую версию; может измениться название программы, ее цена и какие-то другие вещи, которые потребуют от пользователя внимательного изучения документации (что, в общем-то, никогда не мешает). Подобные «глобальные» изменения обычно приводят к увеличению первой цифры версии программы, то есть из она превращается в 2.0. К сожалению, правила изменения версий нигде не описаны и не формализованы; то, что я описал - это «усредненное описание». Многие авторы в качестве номера версии используют дату выхода программы. Кто-то не использует «минорные» версии вообще, увеличивая номер на единицу при любом самом маленьком обновлении. Кто-то меняет программу, не меняя версии. Иногда встречаются случаи, когда версия меняется, но отсутствует какое-либо упоминание о сделанных изменениях. Все в руках авторов…

Работая над программой, ее автор может выкладывать в Сеть не только окончательные, но и предварительные версии! Каждая из них имеет свое собственное обозначение:

Альфа (alpha) - самая первая версия программы, черновой набросок. Статус «альфы» гарантирует вам, что скачанная программа установится и даже запустится, однако ее дальнейшие действия непредсказуемы. Чаще всего «альфа-версия» напичкана ошибками, как сдобная булочка изюмом, многие из ее возможностей и функций просто не работают. Вот почему пользоваться «альфой» могут лишь самые нетерпеливые и отчаянные экспериментаторы, выполняя таким образом роль тестеров. Остальным же стоит дождаться появления более стабильной и надежной версии - «беты».

Бета (beta) - уже вполне пригодный к употреблению продукт. Грубые ошибки убраны, базовые задачи программа выполняет успешно. Остались лишь маленькие недоделки, которые могут исчезнуть уже в следующих «бетах». В статусе «беты» многие программы пребывают большую часть жизни - вспомним хотя бы проигрыватель WinAmp, почтовую программу The Bat! и ряд других программ, «бетовость» которых не мешает пользоваться ими миллионам пользователей.

После того как ошибки, обнаруженные в альфа- и бета-версиях программ, исправлены, а функции добавлены, наступает очередь RC (ReleaseCandidate) - кандидат на окончательную версию. Эта программа уже считается стабильной и используется для выявления наиболее скрытых ошибок - такую программу, практически без опаски, могут скачивать и устанавливать даже те пользователи, которые слабо разбираются в компьютерах. А так как таких большинство, то увеличивается число пользователей, что означает увеличение числа «тестеров». Ошибки в RC версиях вычисляются довольно редко, так что при переходе в «основную» версию программа практически не меняется.

Наконец, после всех мучений и доделок на свет появляется релиз (release) - полностью готовая, окончательная версия программы.



Коммерческий статус программ | Windows XP | ОПЕРАЦИОННЫЕ СИСТЕМЫ