1.7. Превращение в комментарий
Один из самых популярных приемов оформления варианта превращение отключаемого вариантного фрагмента в комментарий. Точнее, при появлении нового вариантного фрагмента старый фрагмент превращают в комментарий, вставляя в исходный текст соответствующие конструкции языка программирования, а новый фрагмент располагают вслед за старым. При необходимости включения в выполняемую программу «закомментированного» ранее вариантного фрагмента включенный теперь фрагмент подобным же образом превращается в комментарий, а требуемый фрагмент «раскомментируется», т. е. из текста удаляются вставленные ранее конструкции, превращавшие фрагмент в комментарий (рис. 1.4).
Рис. 1.4. Превращение в комментарий.
а исходный текст, б включение нового фрагмента, в обратное включение; /* открывающая скобка комментария (в языке Си),
*/ закрывающая скобка
Дублирования текста, характерного для некоторых из рассмотренных ранее способов оформления варианта, при превращении в комментарий не происходит. Однако такое включение в программу нового вариантного фрагмента связано с редактированием ее исходного текста, что может привести к потере работоспособности отлаженной ранее версии. Поэтому изменения, связанные с превращением в комментарий, не являются безболезненными. Более того, в отличие от всех рассмотренных ранее способов безболезненными не будут и последующие переключения с одного оформленного вариантного фрагмента на другой. Они осуществляются посредством включения и исключения превращающих в комментарий языковых конструкций, а это требует редактирования исходного текста.
Превращенные в комментарии вариантные фрагменты сливаются с окружающим текстом программы, и их назначение трудно бывает распознать при последующем анализе. Дополнительные сложности возникают, если синтаксис языка программирования требует заключать комментарий в специальные скобки, но не допускает вложенных комментариев. В этом случае, прежде чем обрамлять вариантный фрагмент превращающими в комментарий скобками, необходимо убедиться в том, что внутри этого фрагмента комментарии отсутствуют.
Применение превращения в комментарий не препятствует, вообще говоря, одновременному существованию двух версий объектного кода программы: со старым и новым вариантными фрагментами. Однако на практике лучше не пренебрегать известным правилом: не хранить утративший силу объектный код программы, исходный текст которой изменен. Строго следуя этому правилу, можно иметь только одну версию объектного кода программы с «закомментированными» вариантами, что влечет за собой необходимость перетрансляции при каждом переключении с варианта на вариант. Тут проявляется еще одна из слабых сторон превращения в комментарий: если переключать варианты приходится часто, то перетрансляция может оказаться весьма обременительной.
Несмотря на отмеченные слабости, превращение в комментарий имеет сейчас самое массовое распространение. Даже удивительно, что в современных инструментальных средах данная техника почему-то, как правило, не получает специализированных средств поддержки. Вместе с тем, если уж привлекать специализированные средства, то будет точнее, по-видимому, нацелиться не на этот конкретный далеко не безупречный подход, а на общую постановку задачи оформления варианта.
|