32.1. Неофициальные рекомендации по оформлению сценариев

32.1. Неофициальные рекомендации по оформлению сценариев

? Комментируйте свой код. Это сделает ваши сценарии понятнее для других, и более простыми, в обслуживании, для вас.

? PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"

? # Эта строка имела некоторый смысл в момент написания,

? # но через год-другой будет очень тяжело вспомнить -- что она делает.

? # (Из сценария "pw.sh", автор: Antek Sawicki)

Добавляйте заголовочные комментарии в начале сценария и перед функциями.

#!/bin/bash

#************************************************#

# xyz.sh #

# автор: Bozo Bozeman #

# Июль 05, 2001 #

# #

# Удаление файлов проекта. #

#************************************************#

BADDIR=65 # Нет такого каталога.

projectdir=/home/bozo/projects # Каталог проекта.

# ------------------------------------------------------- #

# cleanup_pfiles () #

# Удаляет все файлы в заданном каталоге. #

# Параметры: $target_directory #

# Возвращаемое значение: 0 -- в случае успеха, #

# $BADDIR -- в случае ошибки. #

# ------------------------------------------------------- #

cleanup_pfiles ()

{

if [ ! -d "$1" ] # Проверка существования заданного каталога.

then

echo "$1 -- не является каталогом."

return $BADDIR

fi

rm -f "$1"/*

return 0 # Успешное завершение функции.

}

cleanup_pfiles $projectdir

exit 0

Не забывайте начинать ваш сценарий с sha-bang -- #!/bin/bash.

? Заменяйте повторяющиеся значения константами. Это сделает ваш сценарий более простым для понимания и позволит вносить изменения, не опасаясь за его работоспособность.

? if [ -f /var/log/messages ]

? then

? ...

? fi

? # Представьте себе, что через пару лет

? # вы захотите изменить /var/log/messages на /var/log/syslog.

? # Тогда вам придется отыскать все строки,

? # содержащие /var/log/messages, и заменить их на /var/log/syslog.

? # И проверить несколько раз -- не пропустили ли что-нибудь.

?

? # Использование "констант" дает лучший способ:

? LOGFILE=/var/log/messages # Если и придется изменить, то только в этой строке.

? if [ -f "$LOGFILE" ]

? then

? ...

? fi

? В качестве имен переменных и функций выбирайте осмысленные названия.

? fl=`ls -al $dirname` # Не очень удачное имя переменной.

? file_listing=`ls -al $dirname` # Уже лучше.

?

? MAXVAL=10 # Пишите имена констант в верхнем регистре.

? while [ "$index" -le "$MAXVAL" ]

? ...

?

? E_NOTFOUND=75 # Имена кодов ошибок -- в верхнем регистре,

? # к тому же, их желательно дополнять префиксом "E_".

? if [ ! -e "$filename" ]

? then

? echo "Файл $filename не найден."

? exit $E_NOTFOUND

? fi

?

? MAIL_DIRECTORY=/var/spool/mail/bozo # Имена переменных окружения

? # так же желательно записывать символами

? # в верхнем регистре.

? export MAIL_DIRECTORY

?

? GetAnswer () # Смешивание символов верхнего и нижнего решистров

? # удобно использовать для имен функций.

? {

? prompt=$1

? echo -n $prompt

? read answer

? return $answer

? }

?

? GetAnswer "Ваше любимое число? "

? favorite_number=$?

? echo $favorite_number

?

? _uservariable=23 # Допустимо, но не рекомендуется.

? # Желательно, чтобы пользовательские переменные не начинались с символа подчеркивания.

? # Так обычно начинаются системные переменные.

? Используйте смысловые имена для кодов завершения.

? E_WRONG_ARGS=65

? ...

? ...

? exit $E_WRONG_ARGS

См. так же Приложение C.

? Разделяйте большие сложные сценарии на серию более коротких и простых модулей. Пользуйтесь функциями. См. Пример 34-4.

? Не пользуйтесь сложными конструкциями, если их можно заменить простыми.

? COMMAND

? if [ $? -eq 0 ]

? ...

? # Избыточно и неинтуитивно.

?

? if COMMAND

? ...

? # Более понятно и коротко.

... читая исходные тексты сценариев на Bourne shell (/bin/sh). Я был потрясен тем, насколько непонятно и загадочно могут выглядеть очень простые алгоритмы из-за неправильного оформления кода. Я не раз спрашивал себя: "Неужели кто-то может гордиться таким кодом?"

Landon Noll

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

8.1. Рекомендации

Из книги Перспективы свободного программного обеспечения в сфере государственного управления и бюджетном секторе автора Отставнов Максим

8.1. Рекомендации С точки зрения условий федерального софинансировния ИКТ проектов регионов:1. Законодательно устанавливать какие-либо преференции для свободного ПО в общем случае – не нужно (в отсутствии общественного консенсуса по поводу свободы ПО). В то же время,


Практические рекомендации

Из книги Запись CD и DVD: профессиональный подход автора Бахур Виктор

Практические рекомендации Чтобы создать меню автоматического определения компакт-диска с помощью программы AutoPlay Menu Builder, можно придерживаться следующей последовательности действий.1. Запустите программу AutoPlay Menu Builder.2. В окне Новый проект щелкните мышью на значке


Глава 5 Требования к оформлению документов

Из книги Эффективное делопроизводство автора Пташинский Владимир Сергеевич

Глава 5 Требования к оформлению документов Правила составления документов Правила составления документов устанавливает Государственный стандарт РФ из Унифицированной системы организационно-распорядительной документации (УСОРД) ГОСТ Р 6.30-2003 «Требования к оформлению


§ 5.1 Советы по оформлению книг

Из книги Создание электронных книг в формате FictionBook 2.1: практическое руководство [Release 1.01 от 28.II.2010 г.] автора Кондратович Михаил Иосифович

§ 5.1 Советы по оформлению книг Совет номер один. Не стоит стремиться воспроизвести все полиграфические изыски печатного оригинала.В понятие «изыски» входит, например, выделение заголовков жирным или курсивным шрифтом, отбитие фрагментов текста пустыми строками и т.д.Но


Рекомендации

Из книги Эффективное использование STL автора Мейерс Скотт

Рекомендации Рекомендации, составляющие 50 советов этой книги, основаны на мнениях и наблюдениях опытнейших программистов STL. Они в краткой форме подводят итог всему, что практически всегда следует (или наоборот, не следует) делать для успешного использования библиотеки


Рекомендации

Из книги Интерактивные доски и их использование в учебном процессе автора Горюнова М. А.

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


Рекомендации

Из книги Язык Си - руководство для начинающих автора Прата Стивен

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


V. Рекомендации

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

V. Рекомендации Помимо требований, выдвигаемых в Лицензии, распространителю предлагается и настоятельно рекомендуется следующее.1. Если вы собираетесь распространять материалы, для которых действует Лицензия, в печатном виде или на компакт-диске, сообщите авторам по


Выводы и рекомендации

Из книги Профессиональный поиск в Интернете автора Кутовенко Алексей

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


Выводы и рекомендации

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Выводы и рекомендации Создание качественного и популярного тематического поисковика – непростая задача. Не стоит забывать, что интернет-поиск – зона тяжелой конкурентной борьбы, и чтобы достичь успеха, специализированный вертикальный поисковик должен предложить


Выводы и рекомендации

Из книги автора

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


Выводы и рекомендации

Из книги автора

Выводы и рекомендации В этой главе рассмотрены два интересных направления совершенствования интернет-поиска. Современные семантические поисковики являются в большей степени экспериментальными машинами, находящимися в стадии развития. Для того чтобы получить


Выводы и рекомендации

Из книги автора

Выводы и рекомендации Рекомендательные ресурсы – специфический продукт, который не без оснований относят к поколению Web 2.0. Если рассматривать их как средство поиска, необходимо помнить о нескольких ключевых особенностях.Первая особенность рекомендательных сервисов –


Выводы и рекомендации

Из книги автора

Выводы и рекомендации Главные достоинства средств персонального поиска – это уменьшение информационного шума в результатах поиска, а также возможность быстрого создания специализированных тематических поисковиков. Можно только порадоваться тому факту, что


Рекомендации

Из книги автора

Рекомендации Новыми интерфейсами следует пользоваться аккуратно. Читайте свежую документацию, относящуюся к конкретному выпуску операционной системы. Интерфейсы часто меняются от одного выпуска к другому, причем таким образом, что заметно это далеко не сразу. Все это