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

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

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

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

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

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

В вводные комментарии обычно помещают информацию о назначении программы, указания по ее вызову и использованию, о ее структуре, о требуемом объеме памяти, о времени выполнения  программы, дате написания программы, сведения об авторе и др.

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

Пояснительные комментарии должны сопровождать трудно понятные части программы. Перед циклами или условными операторами, важными для понимания  логики программы, должны появляться комментарии с указанием действия, которое будет производиться. Средней нормой можно считать одну строку комментариев на десять строк программы, написанной на языке высокого уровня. Комментарии должны объяснять цель группы операторов, а не описывать действия, производимые этими операторами. Комментарии должны содержать некоторую дополнительную информацию, а не перефразировать программу.

Комментарии должны быть правильными с самого начала и изменяться  в соответствии с изменениями программы. Очевидно, что  неправильные комментарии – это хуже, чем их отсутствие, поскольку они вводят в заблуждение программиста.

Пропуск строк – это часто недостаточно оцениваемый метод улучшения  наглядности программ.  Этот метод  можно использовать  для вертикальной разрядки. Пропуском одной строки можно отделять каждую группу логически связанных операторов, пропуском двух строк – основные логические фрагменты программы.

Пробелы следует ставить везде, где это приводит к улучшению  читаемости программы.

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

void main(void)

{

float stipendia, dengi, rabota;

stipendia = dengirabota;

}

Работать с такими переменными крайне затруднительно и нерационально.

При работе с файлами для идентификации каждого файла часто выбирают какой-либо префикс или суффикс, например, FILE, RECORD, INPUT, OUTPUT и т.д. Например, в имени файла iosream первые две буквы являются префиксами от слов input, output.

Введение стандартных или общепринятых сокращений может значительно облегчить чтение данной  программы разными  программистами, особенно  когда коллектив программистов создает одну большую систему. Можно, например, посоветовать включать в аббревиатуру сокращений начальные  буквы слов, лучше согласные, чем гласные и т.д., например: str -> string, src -> source, tbl -> table и т.д.

Если оператор записывается на нескольких строках, то целесообразно делать перенос после знака операции.

Правильное использование скобок существенно улучшает вид программы. Скобки обходятся дешевле, чем ошибки.

Обычно при записи операторов для указания связи между ними делают одинаковый отступ от  начала строки. Отступы, не оказывая влияния на логику программы, существенно улучшают ее внешний вид. Это аналогично разделению текста на разделы (логически связанные группы предложений) на естественном языке. Правильно сделанные отступы выявляют структуру программы.