Противники строго структурного программирования часто представляют себе его неправильно. Они полагают, что структурный код создаётся в два шага:
- сначала алгоритм создаётся «нормально» (на самом деле, как придётся)
- а затем придумывается, как устранить из него нарушения структурности
Разумеется, устранение нарушений требует дополнительных усилий, может сопровождаться дополнительными ошибками, и может приводить к странному коду, который не столько устраняет нарушения структурности, сколько описывает их с помощью структурных операторов, что всегда возможно за счёт алгоритимческой полноты [0], не давая в тоже время никаких преимуществ в сравнении с исходным неструктурным кодом.
Не удивительно, что такое соломенное чучело структурного программирования может вызывать «справедливое» негодование, только к настоящей дисциплине структурности это не имеет никакого отношения.
Обучение структурному программированию с самого начала состоит не в подобных упражнениях, а в выработке способности создания алгоритмов сразу в структурном виде. Именно такой подход даёт преимущества строго структурного кода. Он требует дополнительных усилий лишь в самом начале, а в дальнейшем воспроизводится естественным образом без требования постоянной борьбы с самим собой.
Это можно сравнить с культурной речью. Если она лежит в основе общения человека, то её поддержание, когда она необходима, будет являться не подвигом, а рутиной. Если же человек привык через слово вставлять слова паразиты, то культурная речь будет представляться ему чем-то затратным и противоестественным. А в крайних случаях она оказывается совсем невозможной.
[0] Примеры точного воспроизведения неструктурного программирования с помощью струтурных операторов есть в заметке Структурное программирование не про запрет GOTO
Комментариев нет:
Отправить комментарий