5 правил именования функций

Категория: Культура кода Автор: Александр Никитин Опубликовано: 20-01-2010

Метки: ,

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

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

  • Имя функции должно отражать все, что она делает. Если функция выполняет множество действий, которые напрямую между собой не связаны, то имя получится длинное и несуразное. Например: ConnectToDatabaseAndOpenFileAndWriteDatabaseRecordsCountToFile(); Такое километровое название функции – признак того, что вам стоит задуматься о её содержании и выделить ряд более мелких функций.
  • Откажитесь от неоднозначных и бессмысленных названий. Некоторые глаголы могут описывать практически любые действия внутри функций. Например, Calculation(), HandleInput() или ProcessData(). С одной стороны, название функции может согласовываться с содержимым, но догадаться о содержимом по названию практически невозможно. Поэтому вместо Calculation() нужно писать что-то более подробное, типа  GetSolutionOfEquation().
  • Не используйте нумерацию для функций, которые решают схожие задачи. Бывает, что функции выполняют одно и то же, но разными способами. Например, мы хотим написать функцию факториала и реализовали два варианта – с помощью цикла и с помощью рекурсии. Не нужно называть функции Fact1() и Fact2(). Дайте более осмысленные названия FactCicle() и FactRecursion().
  • Не старайтесь искусственно ограничить длину имени функции. Согласно исследованиям оптимальная длина переменной – это 9-15 символов. Функция, как вы понимаете, несет ещё большую смысловую нагрузку, соответственно и длина у неё может быть ещё больше. Важно иметь «говорящие» названия функций, а не определенную длину.
  • Используйте описание возвращаемого значения для именования функции. Если функция что-то возвращает, это должно быть ясно из названия. Пример хороших имен: sin(), GetMaxValue(), monitor.IsReady(), iterator.NextElement().

Что ж, это явно не все правила, которых следует придерживаться. Так что ждите её одной статьи, в которой я продолжу делиться секретами именований.

Напоследок пара интересных ссылок:

Рассказ одной модели по совместительству… программистки о том, как это её так угораздило :)

Забавный рассказ «детям» о программистах.

5 правил именования функций 5.051

Комментарии:

Оставить комментарий!