Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткие ответы.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
373.85 Кб
Скачать

6. Аргументы функций. Приемлемое количество и качество аргументов. Побочные эффекты в функциях. Примеры

АРГУМЕНТЫ ФУНКЦИЙ

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

Аргументы усложняют функции.

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

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

СТАНДАРТНЫЕ УНАРНЫЕ ФОРМЫ

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

БИНАРНЫЕ ФУНКЦИИ

Функцию с двумя аргументами понять сложнее, чем унарную функцию. Напри­мер, вызов writeField(name) выглядит более доступно, чем writeField(outputStream.name). Во второй форме первый параметр должен игнорироваться. Это создает проблемы, потому что никакие части кода игнорироваться не должны.

ТЕРНАРНЫЕ ФУНКЦИИ

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

ИЗБАВЬТЕСЬ ОТ ПОБОЧНЫХ ЭФФЕКТОВ

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

Для примера возьмем функцию из листинга 3.6.

Листинг 3.6. UserValidator.java

public class UserValidator {

private Cryptographer cryptographer;

public boolean checkPassword(String userName, String password) {

User user = UserGateway.findByName(userName);

if (user != User.NULL) {

String codedPhrase = user.getPhraseEncodedByPasswordO;

String phrase = cryptographer.decrypt(codedPhrase. password);

if ("Valid Password".equals(phrase)) {

Session.initialize();

return true;

} }

return false;

} }

Побочным эффектом является вызов Session.initialize(). Имя checkPassword сообщает, что функция проверяет пароль. Оно ничего не говорит о том, что функция инициализирует сеанс. Таким образом, тот, кто поверит имени функции, рискует потерять текущие сеансовые данные, когда он решит проверить данные пользователя.

7. Комментарии. Основные правила написания хороших комментариев. Комментарии todo.

КОММЕНТАРИИ

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

Делайте комментариев больше, чем это кажется необходимым.

Цель ком­ментариев — облегчить понимание программы, — они должны быть так же хорошо продуманы и проработаны, как и кодировка про­граммы. Существуют три типа комментариев: вводные, оглавления и пояснительные.

ВВОДНЫЕ КОММЕНТАРИИ

Минималь­ная информация, содержащаяся в вводных комментариях, должна включать следующие пункты:

  • Назначение программы.

  • Указания по вызову программы и ее использованию.

  • Список и назначение основных, переменных или массивов.

  • Название применяемых математических методов, а также ссылки на литературные источники, где содержится их описание.

  • Сведения об авторе.

  • Дату написания программы.

ПОЯСНИТЕЛЬНЫЕ КОММЕНТАРИИ

Пояснениями нужно сопровождать те части программы, кото­рые трудно понять без комментариев. Сопровождайте комментариями те действия, которые, с вашей точки зрения, могут быть не совсем понятны дру­гому. Эта документация будет всегда находиться вместе с про­граммой. Она поможет другому программисту понять вашу про­грамму. Сред­ней нормой можно считать одну строку комментариев на десять строк программы.

Комментарии должны объяснять цель группы операто­ров программы, а не описывать действия, производимые этим» операторами.

Комментарии должны содержать некоторую дополнительную информацию, а не перефразировать программу.

РАСПОЛОЖЕНИЕ КОММЕНТАРИЕВ

Располагайте комментарии таким образом, чтобы это не делало ее менее наглядной.

ПРАВИЛЬНЫЕ КОММЕНТАРИИ

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

КОММЕНТАРИИ TODO

Иногда бывает полезно оставить заметки «на будущее» в форме комментариев //TODO.

Комментарии TODO напоминают о том, что, по мнению программиста, сделать необходимо, но по какой-то причине нельзя сделать прямо сейчас.

Код не должен загромождаться лишними комментариями TODO.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]