Ложный глагол в функции
Анти-паттерн
Иногда встречаются особо хитрые случаи, когда вроде бы и глагол в начале функции, но нет...
Пример 1¶
В данном случае была попытка сделать функцию, играющую роль флага, но от функции с глаголом close в начале названия будет ожидаться, что она что-то закроет.
Плохо:
def close_state(self, obj):
return bool(obj.closed_at)
Хорошо:
def define_close_state(self, obj):
return bool(obj.closed_at)
Пример 2¶
Если функция с названием is_draft_deal будет передана в качестве аргумента, не получиться сразу понять, что это не переменная, а именно функция. Вспомогательные глаголы вроде is, has и прочие рекомендуются для наименования переменных-флагов, но не функций или методов.
Плохо:
def is_draft_deal(self, obj):
...
Хорошо:
def check_deal_is_draft(self, obj):
...