Книга: Рефакторинг. Зачем?

Именование переменных и функций

Именование переменных и функций

Первым делом проиллюстрируем то, о чем буду говорить примером:

function func(i1, i2: Integer): Integer;
begin
Result:= i1 * i2;
end;

Довольно простая функция, но сколько времени нужно, чтобы понять что она делает? А теперь представьте, что она куда больше по размеру и у вас таких десяток? Каждый раз, когда вы или кто–то ещё будет натыкаться на такую функцию — неменуемо будет тратиться лишнее время.

Приведу два основных тезиса:

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

2. Если названия переменных отражают характер величины, которая в них хранится — код читать значительно проще, а значит быстрее и безопаснее. Неправильно истолкованный фрагмент кода может привести к серьёзной ошибке.

Попробуем немного поменять нашу функцию:

function RectArea(Width, Height: Integer): Integer;
begin
Result:= Width * Height;
end;

Правда стало понятнее? Вообще говоря, исходя из того, что функция просто умножает два числа, можно было бы её просто Mult. Однако, в ряде случаев это хуже. Посмотрим на такой фрагмент кода:

if Mult(Width, Height) > 2 then
WriteLn('Big rectangel')
else
WriteLn('Small rectangel');

И сравним его с таким:

if RectArea(Width, Height) > 2 then
WriteLn('Big rectangel')
else
WriteLn('Small rectangel');

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

Забегая вперёд, напишу, что для улучшения читабельности, чтобы при этом избежать дублирования кода, иногда делают что–то вроде этого:

function RectArea(Width, Height: Integer): Integer;
begin
Result:= Mult(Width, Height);
end;

Ещё одна рекомендация, связанная с именованием функций и переменных — не использовать сокращений. Исключения составляют очевидные, часто используемые сокращения (например, Rect — достаточно распространённое сокращение слова Rectangle). Надо понимать, что сокращение, очевидное для вас сейчас, может быть совершенно не очевидно для вашего коллеги или для вас через месяц.

Оглавление книги


Генерация: 1.190. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз