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
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Рекомендации
Рекомендации Новыми интерфейсами следует пользоваться аккуратно. Читайте свежую документацию, относящуюся к конкретному выпуску операционной системы. Интерфейсы часто меняются от одного выпуска к другому, причем таким образом, что заметно это далеко не сразу. Все это
8.1. Рекомендации
8.1. Рекомендации С точки зрения условий федерального софинансировния ИКТ проектов регионов:1. Законодательно устанавливать какие-либо преференции для свободного ПО в общем случае – не нужно (в отсутствии общественного консенсуса по поводу свободы ПО). В то же время,
Выводы и рекомендации
Выводы и рекомендации Для большинства пользователей универсальные поисковики являются основным, а зачастую и единственным средством интернет-поиска. Они предлагают хороший охват источников, а также набор инструментов, достаточный для решения основных поисковых
Выводы и рекомендации
Выводы и рекомендации Создание качественного и популярного тематического поисковика – непростая задача. Не стоит забывать, что интернет-поиск – зона тяжелой конкурентной борьбы, и чтобы достичь успеха, специализированный вертикальный поисковик должен предложить
Выводы и рекомендации
Выводы и рекомендации Ценность метапоиска состоит в широком охвате ресурсов. Именно они позволяют наглядно убедиться, что обращаясь к одному, пусть даже самому лучшему «обычному» поисковику, вы рискуете пройти мимо ресурсов в альтернативных базах данных. Особый интерес
Выводы и рекомендации
Выводы и рекомендации В этой главе рассмотрены два интересных направления совершенствования интернет-поиска. Современные семантические поисковики являются в большей степени экспериментальными машинами, находящимися в стадии развития. Для того чтобы получить
Выводы и рекомендации
Выводы и рекомендации Рекомендательные ресурсы – специфический продукт, который не без оснований относят к поколению Web 2.0. Если рассматривать их как средство поиска, необходимо помнить о нескольких ключевых особенностях.Первая особенность рекомендательных сервисов –
Выводы и рекомендации
Выводы и рекомендации Главные достоинства средств персонального поиска – это уменьшение информационного шума в результатах поиска, а также возможность быстрого создания специализированных тематических поисковиков. Можно только порадоваться тому факту, что
Практические рекомендации
Практические рекомендации Чтобы создать меню автоматического определения компакт-диска с помощью программы AutoPlay Menu Builder, можно придерживаться следующей последовательности действий.1. Запустите программу AutoPlay Menu Builder.2. В окне Новый проект щелкните мышью на значке
Рекомендации
Рекомендации Рекомендации, составляющие 50 советов этой книги, основаны на мнениях и наблюдениях опытнейших программистов STL. Они в краткой форме подводят итог всему, что практически всегда следует (или наоборот, не следует) делать для успешного использования библиотеки
Рекомендации
Рекомендации Какие переменные целого типа со знаком лучше всего использо вать? Одной из целей введения в язык трех классов целых чисел, имеющих различные размеры, было предоставить возможность согласования типа переменной с требованиями задачи. Например, если
Глава 5 Требования к оформлению документов
Глава 5 Требования к оформлению документов Правила составления документов Правила составления документов устанавливает Государственный стандарт РФ из Унифицированной системы организационно-распорядительной документации (УСОРД) ГОСТ Р 6.30-2003 «Требования к оформлению
V. Рекомендации
V. Рекомендации Помимо требований, выдвигаемых в Лицензии, распространителю предлагается и настоятельно рекомендуется следующее.1. Если вы собираетесь распространять материалы, для которых действует Лицензия, в печатном виде или на компакт-диске, сообщите авторам по
Рекомендации
Рекомендации Рассмотренные примеры заданий можно изменять как в направлении усложнения самого содержания, комбинирования различных вариантов представления информации (текст, графика, аудио, видео), так и за счет использования дополнительных инструментов. Например, в
§ 5.1 Советы по оформлению книг
§ 5.1 Советы по оформлению книг Совет номер один. Не стоит стремиться воспроизвести все полиграфические изыски печатного оригинала.В понятие «изыски» входит, например, выделение заголовков жирным или курсивным шрифтом, отбитие фрагментов текста пустыми строками и т.д.Но