Имена Методов И Функций

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

Это побудило меня написать статью.



Имена методов и функций



Что побудило меня написать статью?

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

В конце концов, имя функции «str_replace» только говорит нам, что она делает, но ничего не говорит нам об аргументах.

Что это значит? Ладно, вы можете запомнить количество и порядок аргументов во встроенной библиотеке, но в собственной разработке запомнить аргументы не так-то просто.

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

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

Это признак качественного кода.

В качестве примера многочисленных ошибок приведу PHP. Могу сразу назвать несколько ошибок: 1. Названия некоторых функций не совсем четко передают их назначение.

Например, базовое имя .

2. Имена функций составлены по разному принципу.

Например, строковые функции начинаются с ул_ , но не все (например, стрстр , стрпос ).

Та же проблема с файлами: размер файла против Файл существует .

3. Неочевидность аргументов и их порядок в функциях.

Например, строка поиска в функции str_replace стоит на последнем месте, а в функции стрпос - во-первых ( str_replace($search, $replace, $subject[, $&count]) против strpos($haystack, $needle[, $offset]) ).

Если бы искомая строка, например, всегда занимала первую позицию, это было бы удобнее.

Да, это наследие Си Цзиньпина (и не только), но неважно: проблема есть проблема.



Ага

Это значит, что вам нужно придумать имена методов/функций так, чтобы: 1. Название функции/метода четко передавало ее назначение.

2. Имена функций/методов следуют одному и тому же принципу/стандарту.

3. Порядок и список аргументов в функциях/методах составлялись по тому же принципу и объединялись с именем.

4. Методы остаются методами.

Поясню четвертый пункт. Я часто вижу строки вроде object.Pi(): этот метод не имеет ничего общего с объектом.

Это скорее функция (или константа).



Примеры и многое другое

1. Нам нужно заменить подстроку в строке.

Самый очевидный вариант: string.replace(from, to).

Жаль, что на PHP это невозможно.

2. Намекаем на аргументы и смысл: groups.getByName(name).

Ничего лишнего.

Нет необходимости писать getGroupByName, потому что контекст понятен благодаря группам.

Аналогично другие методы: groups.remove(группа) или группа.

удалить() .

Ага! И тут интересный момент :) Если удалить из коллекции, то коллекция.

удалить(элемент) .

А если элемент удалит сам себя, то элемент.удалить() .

И это важно: наш код должен быть валидным с точки зрения английского языка.

3. Антонимы в названиях функций/методов.

Да, при именовании всегда следует использовать правильные антонимы.

Добавляйте и удаляйте элементы в коллекции: add/remove. Создаем и удаляем объекты: создаем/удаляем.

Мы начинаем и завершаем процесс: начало/конец, начало/окончание (но не начало/окончание и начало/окончание).

4. Логические возвращаемые значения.

Да-да-да, и на это следует намекнуть, чтобы код легко читался.

Такие слова, как: has, is, was, в начале имени метода намекают нам, что этот метод возвращает логическое значение.

Пример: объект.hasData() .

Спасибо крозов для напоминания.

5. Намекаем на порядок аргументов в методе: cars.getByMonthAndYear(месяц, год) .

6. Образование имени.

Имя метода — это своего рода предложение, которое обязательно состоит из предиката ( ввод.фокус() ), но может содержать дополнения ( элемент.appendChild() ), определения ( окно.

slowlyShow() ) и их комбинации ( todo.getNewTask() ).

Но правило часто нарушается.

Например, user.next().

Да.

были ли подобные ситуации? Эта проблема присуща языкам программирования, не имеющим свойств.

Да, с такими названиями придется мириться.

Хорошо это или плохо – решать вам.



Общий

Надеюсь, эта статья была вам полезна.

Хочу больше? Затем сходите в книжный магазин и купите книгу Стива МакКоннелла «Идеальный код».

Теги: #программирование #методы #функции #разработка сайтов

Вместе с данным постом часто просматривают: