Реклама:

Недопустимые побочные эффекты нужно обрабатывать так, чтобы устранять их воздействие в случае входа в оператор «Принять».

Тогда мы получаем процесс отката!

5.4. Реальные ситуации отката

Наш пример, иллюстрирующий метод отката, вполне может навести на мысль, что в конечном итоге множественное предварительное чтение позволило бы достичь таких же результатов, если буфер достаточно велик для охвата всех строчных элементов, которые нужны для заказа. Поэтому отчего бы не установить входной буфер предварительного чтения такой емкости? Это рассуждение правильно независимо от того, какой метод применяется для написания программы контрольных итогов. Однако существуют ситуации, в которых количество записей для предварительного чтения столь непредсказуемо и столь потенциально велико, что прием предварительного чтения теряет всякий практический смысл. К тому же соответствующее количество получаемых выходных данных может оказаться настолько меньше, чем входных, что будет значительно целесообразнее «буферизировать» выходные, а не входные данные.

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

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

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

Глава 6

Слияние нескольких наборов входных данных (метод упорядочения)

«Чем больше смешано ингридиентов, тем привлекательнее для меня каждый из них»^

При обработке экономических данных весьма типична ситуация, когда нужно сравнить и слить два или более файлов данных, чтобы получить выходной файл. Обычно «старый» основной файл записей о клиентах сливается с файлом текущих транзакций для формирования «новейшего» основного файла. Этот тип слияния файлов известен под названием «упорядочение».


⇐ Предыдущая страница| |Следующая страница ⇒