Назад Оглавление Вперед
На головную страницу М.М.Горбунов-Посадов
 
РАСШИРЯЕМЫЕ ПРОГРАММЫ
 

 Г л а в а  1
ОФОРМЛЕНИЕ ВАРИАНТА
 
1.3. Размножение окрестности
 

 

1.3. Размножение окрестности

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


 
Рис. 1.1.  Оформление варианта посредством размножения окрестности.
а, б — исходный файл,  в — отредактированный файл-близнец;
 
— дублируемые части,   , — вариантные части

Для участия в последующих трансляции и сборке конкретных конфигураций программы всякий раз выбирается один из сформированных файлов-близнецов.
      Известно, однако, что дублирование может принести определенную пользу только в качестве средства обеспечения надежного хранения. Если некоторый материал вам особенно дорог, имеет смысл запасти и поддерживать его точную копию, скажем, на гибком диске. Тогда последствия аварии основного винчестера будут не столь губительны.
      Использование же дублирования хранимых в программном фонде текстов для решения каких-либо иных задач, и в частности для оформления варианта, чревато серьезными неприятностями. Характерная ошибка возникает в случае, когда по прошествии некоторого времени программист исправляет в одном из порожденных таким образом файлов окрестность варианта (дублируемый текст, объемлющий вариантный фрагмент), но по каким-либо причинам забывает или не успевает исправить ее в файле-близнеце. Возникающие тем самым нарушения целостности программного фонда неизбежно рано или поздно приводят к серьезным коллизиям, поиск причин которых отнимает много времени и сил.
      Применение размножения (точнее, клонирования) текста окрестности для оформления варианта может привести к быстрому росту числа файлов, содержащих исходные тексты. Ведь если появится потребность в организации еще одного вариантного фрагмента в новом месте размноженной ранее окрестности варианта, то понадобятся уже четыре (2x2) частично повторяющих друг друга файла. Нелегко будет придумать для таких файлов мнемоничные имена, нерационально будет расходоваться память для их хранения. Но главная неприятность заключена в другом и связана с организацией последующего редактирования. Теперь изменения, вносимые в объемлющий текст, должны будут повторяться четырехкратно, а это, конечно же, технологически неприемлемо.
      В то же время нельзя не обратить внимание на важное качество данного способа, выгодно отличающее его от многих других. Изменения программного фонда, связанные с появлением вариантного фрагмента, выполняются тут безболезненно. Дело в том, что при размножении текста старый текст сохраняется в неизменном виде, тем самым практически исключается возможность нарушения работоспособности отлаженной ранее версии программы. Безболезненно выполняется и обратная операция, ликвидирующая вариантность указанного алгоритмического решения. В данном случае она сводится к уничтожению одного из альтернативных файлов, что, естественно, не должно повлиять на работоспособность программы из остающегося файла-близнеца.

Далее

Рейтинг@Mail.ru