marvellik
1)
Функцию надо называть императивно. Название должно отвечать на вопрос “что сделать?”.
2)
А ещё при назывании функции нужно задать себе вопрос “а можно ли ещё что-нибудь назвать этим именем?”. Если можно что-то ещё назвать, то надо специфицировать имя, пока им ничего другого не назовёшь.
У Юлия Цезаря кроме шифра ещё много чего было, поэтому функция с таким названием может возвращать что угодно, связанное с ним (возраст, дату рождения, историческую справку). Поэтому надо специфицировать.
cipher_of_gai_ylii_cezar
Дальше надо сделать название императивным, чтобы функции можно было приказывать. Приказываю сделать что?
encrypt_by_cipher_of_gai_ylii_cezar
Есть и ещё один способ создания имени функции - с использованием предусловия и постусловия функции. Берутся предусловие и постусловие (утверждение до входа в функцию и утверждение после выхода из функции), объединяются в одно длинное название (в нём ясно, что предусловие переводит данные в постусловие), а потом это укорачивается до короткой фразы. Фраза должна легко отвечать на вопрос “что делает эта функция?”. Получается имя функции в декларативной форме. Потом имя функции из декларативной формы превращается в императивную и уже отвечает на вопрос “что сделать?”.
Например:
1)
предусловие: на входе - исходная строка символов
постусловие: в результате - строка символов, зашифрованная шифром Цезаря
2)
Объединяем их в одну фразу:
исходная строка символов переводится в строку символов, зашифрованную шифром Цезаря
3)
a) Укорачиваем:
переводит строку в зашифрованную строку шифром Цезаря
b) Укорачиваем ещё:
шифрует строку шифром Цезаря
5)
Переводим из декларативной формы в императивную:
шифровать строку шифром Цезаря
6)
Переводим на английский:
encrypt_string_by_cezar_cipher
tags: naming