Повторение программы, толерантной к неисправностям
Повторение программы, толерантной к неисправностям
Предположим, вы написали текстовый редактор, и к вашему стыду нет уверенности, что он полностью свободен от жучков. Но вам хочется передать эту версию некоторым пользователям для получения обратной связи. Нашлись смельчаки, готовые принять систему с оставшимися ошибками, понимая, что могут возникать ситуации, когда их запросы не будут выполнены. Но они не будут тестировать ваш редактор на серьезных текстах, (а именно это вам и требуется), если будут бояться, что отказы могут привести к катастрофе, например грубый выход с потерей текста, над которым шла работа последние полчаса. Используя механизм повторения, можно обеспечить защиту от такого поведения.
Предположим, что редактор, как это обычно бывает для подобных систем, содержит основной цикл, выполняющий команды редактора:
from ... until exit loop
execute_one_command
end
где тело программы execute_one_command имеет вид:
"Декодировать запрос пользователя"
"Выполнить команду, реализующую запрос"
Инструкция "Выполнить ..." выбирает нужную программу (например, удалить строку, заменить слово и так далее). Мы увидим в последующих лекциях, как техника наследования и динамическое связывание дает простые, элегантные структуры для подобных ветвящихся решений.
Будем исходить из того, что не все эти программы являются безопасными. Некоторые из них могут отказать в непредсказуемое время. Вы можете обеспечить примитивную, но эффективную защиту против таких событий, написав программу следующим образом:
execute_one_command is
-- Получить запрос от пользователя и, если возможно,
-- выполнить соответствующую команду.
do
"Декодировать запрос пользователя"
"Выполнить подходящую команду в ответ на запрос"
rescue
message ("Извините, эта команда отказала")
message ("Пожалуйста, попробуйте использовать другую команду")
message ("Пожалуйста, сообщите об отказе автору")
"Команды, латающие состояние редактора"
retry
end
Эта схема предполагает на практике, что поддерживаемые запросы пользователя включают: "сохранить текущее состояние работы", "завершить работу". Оба последних запроса должны работать корректно. Пользователь, получивший сообщение "Извините...", несомненно, захочет сохранить работу и выйти как можно скорее. Некоторые из программ, реализующих команды редактора, могут иметь собственные предложения rescue, хотя и приводящие к отказу, но предварительно выдающие более информативные сообщения.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
(8.7) Под W2k не хотят работать некоторые программы, требующие интенсивного обращения к CD приводу, такие как Audiograbber, CDEx, программы для записи CD-RW, некоторые DVD декодеры, и т. д..
(8.7) Под W2k не хотят работать некоторые программы, требующие интенсивного обращения к CD приводу, такие как Audiograbber, CDEx, программы для записи CD-RW, некоторые DVD декодеры, и т. д.. Многие программы, требующие непрерывного потока данных идущих на или с CD/DVD привод, нуждаются в
7.4. Под XP не хотят работать некоторые программы, требующие интенсивного обращения к CD приводу, такие как Audiograbber, CDEx, программы для записи CD-RW, некоторые DVD декодеры, и т. д..
7.4. Под XP не хотят работать некоторые программы, требующие интенсивного обращения к CD приводу, такие как Audiograbber, CDEx, программы для записи CD-RW, некоторые DVD декодеры, и т. д.. Многие программы, требующие непрерывного потока данных идущих на или с CD/DVD привод, нуждаются в
2.2. Повторение (операторы цикла)
2.2. Повторение (операторы цикла) Циклом называется группа операторов, которая выполняется повторно. После каждого повторения проверяется условие, называемое условием окончания цикла, по которому принимается решение продолжать повторение или закончить
Повторение с помощью циклов
Повторение с помощью циклов Управляющие структуры типа "цикл" используются тогда, когда необходимо повторить выполнение некоторого блока программного кода несколько раз. Повторение одного или нескольких операторов является главным средством выполнения многих
Повторение под управлением циклов For...Next
Повторение под управлением циклов For...Next Если уже перед выполнением цикла известно, сколько раз он должен выполняться, используйте цикл For. . . Next. Число проходов цикла задается значениями начало и коней, которые могут быть целыми числами, переменными и даже сложными
Повторение и свобода
Повторение и свобода Работайте итерационноНе ожидайте того, что будете все понимать и делать правильно с первого раза. Пусть приложение растет и общается с вами. Позвольте ему трансформироваться и эволюционировать.Нет никакой необходимости отправлять веб-программы в
Повторение пройденного
Повторение пройденного Примеры доступа к объектам Pocket Outlook рассматривались применительно к карманным компьютерам. Но теперь надо воссоздать их, опираясь уже на смартфоны. Сам код примеров останется практически неизменным. Но при этом изменится логика управления
Отмена и повторение изменений
Отмена и повторение изменений Многие действия, произведенные над проектом, можно отменить. Выполняется это с помощью команды меню Монтаж ? Отменить <действие>. Вместо <действие> после слова Отменить в названии пункта меню записано, какое конкретно действие будет
Все программы
Все программы Управление отображением команды Все программы (стиль Windows Vista) также осуществляется в системном реестре в разделе HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer. Для этого следует создать REG_DWORD-параметр NoStartMenuMorePrograms и присвоить ему значение 1. Ниже приведен текст
27 Повторение и вознаграждение
27 Повторение и вознаграждение Многие вещи, начиная от сумок для покупок и заканчивая картриджами, мы используем повторно. Почему бы тогда не попробовать применять повторно код? Почему бы не использовать повторно макеты и модели вместо того, чтобы создавать их заново?
Повторение
Повторение Вполне возможно, что из 20 кадров прекрасной водяной белой лилии у вас как минимум 15 соответствуют всем требуемым стандартам и вы можете сократить число снимков, в которые влюблены, максимум до 10. Ну и пусть ракурс практически везде одинаковый, она ведь такая
3.2.4. Удаление программы из меню Все программы
3.2.4. Удаление программы из меню Все программы Иногда нужно удалить ярлык программы из меню Все программы. Заметьте, удаление ярлыка не приводит к удалению программы, программа все еще останется на жестком диске и ее можно запустить, если вы знаете, как называется ее
5.2. Стандартные служебные программы: Пуск | Все программы | Стандартные | Служебные
5.2. Стандартные служебные программы: Пуск | Все программы | Стандартные | Служебные В программной группе Стандартные | Служебные находятся следующие программы:? Internet Explorer (без надстроек) — запускает IE без надстроек, что поможет в случае, если какая-то из надстроек
Повторение вычислений
Повторение вычислений Инструкция повторного выполнения рассматривалась при обсуждении исключительных ситуаций (лекция 12). Она появляется только в предложении rescue, повторно запуская тело подпрограммы, работа которой была
Программы.
Программы. В процессе работы узла Fidonet может быть задействована масса различных программ и утилит, но две из них обязательно присутствуют на любом узле любой FTN–совместимой сети.Первая из них — телекоммуникационная программа, или мэйлер, обеспечивающая связь станций