Все Лекции
.pdf
Избегание глобальных переменных в функциях
• Если в функции используются глобальные переменные, изолированность нарушается.
• Это приводит к появлению
побочного эффекта.
• Применение глобальных переменных внутри функций нарушает изоляцию ошибок и модификаций.
6
Правильное применение аргументов, передаваемых по ссылке
•При любой возможности следует применять передачу параметров по значению.
•При компиляции функции для её параметров выделяются отдельные участки памяти.
•При вызове функции вычисляются значения аргументов, которые передаются на место параметров.
•При этом любые изменения, происходящие над формальными аргументами внутри функции, никак не отражаются на фактических параметрах, передаваемых ей вызывающим модулем.
Правильное применение функций
•Как известно, функции, вычисляющие значение,
возвращают результат своей работы с помощью оператора return, а пустые функции (void function) не возвращают ничего.
•Таким образом, функции, вычисляющие значения, должны возвращать единственный результат.
•Функция, возвращающая значение не должна:
•Использовать передачу аргументов по ссылке. Если аргументы нужно передать по ссылке, следует применять пустые функции.
•Выполнять ввод или вывод данных.
8
Обработка ошибок
•Функция должна проверять лишь
определенные виды ошибок,
например, неверный ввод или неправильные значения аргументов.
•В зависимости от контекста, реакция функции может варьироваться от игнорирования неверных данных до прекращения работы программы.
•В общем случае функции должны либо возвращать признак ошибки, либо генерировать исключительную ситуацию, но не выводить на экран сообщение об ошибке.
9
Обработка ошибок
Читабельность
•Для того чтобы программу было легко читать и отслеживать, она должна иметь хорошую структуру, правильно выбранные идентификаторы, содержать нужное количество пустых строк и сопровождаться подробной документацией.
•Имена идентификаторов должны быть понятны и самоочевидны.
•Они должны отличаться от ключевых слов, таких как int и др.
11
Читабельность. Имена переменных и функций
•Имена должны передавать намерения программиста.
•int d;
•int days;
•int daysSinceCreation;
•Избегайте дезинформации.
•int hp; // плохой пример для обозначения длины гипотенузы
12
Читабельность. Имена переменных и функций
•Используйте осмысленные различия (плохой пример: klass вместо class).
•Используйте удобопроизносимые имена.
•Выбирайте имена, удобные для поиска.
•Используйте имена из пространства задачи.
•Добавьте содержательный контекст.
•Не добавляйте избыточный контекст.
13
Читабельность
•Для повышения читабельности программ следует использовать свободный стиль форматирования текста.
•Программа должна быть написана так, чтобы ее модули сразу бросались в глаза.
•Каждая функция должна отделяться от остального текста пустой строкой.
•Внутри функций и главного модуля отдельные блоки кода также следует перемежать пустыми строками, облегчая чтение программы.
•Обычно (но не всегда) под блоками понимается некая управляющая структура, например цикл while или оператор if.
14
Читабельность
•Есть несколько хороших стилей свободного форматирования текста программы:
•блоки должны четко отделяться друг от друга;
•форматирование должно быть последовательным:
идентичные конструкции должны выглядеть одинаково;
•стиль форматирования должен учитывать проблему дрейфа вправо, которая заключается в том, что вложенные блоки наезжают на правое поле страницы;
•в составных операторах открывающие и закрывающие фигурные скобки должны быть выровнены.
15
