Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PGTU / 5 семестр / Надежность / Nadezhnost_4-ya_redaktsia.doc
Скачиваний:
339
Добавлен:
29.03.2015
Размер:
12.07 Mб
Скачать

3.2.8. Стиль программирования

Центральное понятие, связанное со структурным программирова­нием – стиль программирования, т.е. манера, в которой программист (пра­вильно или неправильно) употребляет особенности своего языка програм­мирования – в том же смысле, как писатель (правильно или неправильно) использует естественный язык. Именно плюсы и минусы стиля програм­мирования обычно оказываются основной причиной таких, например, су­ждений: «Я видел программу, очень красиво размещенную на странице и без единого GO TO, но при этом абсолютно непостижимую, и другую, со­вершенно понятную программу, в которой было несколько GO TO».

Ясность программирования

Задача программиста должна состоять в том, чтобы писать на исход­ном языке программы, предназначенные для аудитории, состоящей в пер­вую очередь из людей, а не машин. Эта задача требует уделить больше внимания ясности, простоте и доступности текста за счет игнорирования менее важных критериев, например краткости (число ударов по клавишам, необходимых для того, чтобы напечатать программу) или машинной эф­фективности. Выполнение следующих правил помогает писать ясные про­граммы [1].

Используйте осмысленные имена.Это правило выражает самый важный принцип стиля программирования. Ничего нет хуже программы с именами XX, XXX, ХХХХ, XY, ЕКК, ЕККК, А и AI, заполненной коммен­тариями, разъясняющими смысл и назначение этих имен. Простой прием – использование более длинных содержательных имен – значительно облег­чает чтение программы и сводит к минимуму количество необходимых комментариев. Как правило, имена переменных должны содержать от 4 до 12 символов. Слишком длинные имена, типа ЧИСЛО _ ТРАНФОРМАЦИЙ _ НА _ СООБЩЕНИЕ, нежелательны, потому что они отвлекают внимание от собственно программы и сами подвержены ошибкам.

Длина используемых имен зависит от ограничений языка програм­мирования. Фортран существенно ограничивал длину имен (не более 6 символов). В большинстве реализаций PL/1 были разрешены идентифика­торы длиной до 31 символа, но имена процедур ограничива­лись семью символами – серьезное ограничение, если пытаться давать процедурам ос­мысленные имена. В современных языках этот недостаток был устранен.

Избегайте сходных имен.Иногда встречаются программы, в которых используются такие имена переменных, как VALUE и VALUES, или ряд переменных с именами BRACA, BRACB, BRACC и BRACD. Это услож­няет чтение программы. Выбирая осмысленные имена, старайтесь, чтобы они были как можно менее похожи.

Если в идентификаторах используются цифры, помещайте их только в конце. Цифры 0, 1, 2 и 5 легко спутать с буквами О, I, Z и S. Если уж цифры в именах переменных необходимы, помещайте их в конце.

Никогда не используйте в качестве идентификаторов ключевые слова.

В следующем примере на языке Cи++

int max(int x, int y)

{

if (x > y)

return x;

else

returny;

}

max, x и y – имена или идентификаторы. Слова int, if, return и else – ключевые слова, они не могут быть именами переменных или функций и используются для других целей.

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

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

Будьте внимательны, используя константы как аргументы.

Рассмотрим пример на С++:

int simple_function(const int&, int);

int simple_function(const int& a, int b);

{

a = 1;//Компилятор выдаст ошибку! Нельзя изменять переменную a

return 0;

}

Располагайте только один оператор на строке. Размещение не­скольких операторов на одной физической строке противоречит правилу структурированного программирования, требующему сдвигать оператор по строке в соответствии с уровнем его вложенности. Однако в языке Си возможны такие записи:

a = b = c = d;

(присвоение нескольким переменным одного и того же значения).

x = 2 * (a = 3 + b);

(выполнение присваивания в арифметическом выражении).

Логически они являются верными, но если первое выражение можно оставить, как логически понятное, то второе лучше записать в виде:

a = 3 + b

x = 2 * а;

Нe изменяйте значение параметра цикла в теле цикла.Изменение параметра цикла внутри цикла усложняет и понимание цикла, и доказа­тельство того, что он не является «бесконечным».

Соседние файлы в папке Надежность