Skip to content

[TASK] Python #1 (https://github.com/SENATOROVAI/python/issues/1)#505

Closed
nigmatullin244 wants to merge 39 commits intoSENATOROVAI:mainfrom
nigmatullin244:main
Closed

[TASK] Python #1 (https://github.com/SENATOROVAI/python/issues/1)#505
nigmatullin244 wants to merge 39 commits intoSENATOROVAI:mainfrom
nigmatullin244:main

Conversation

@nigmatullin244
Copy link
Copy Markdown

Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
temp
temp
Signed-off-by: Raushan Nigmatullin <nigmatullin244@gmail.com>
@nigmatullin244 nigmatullin244 changed the title Имя ишюьса (https://github.com/SENATOROVAI/python/issues/1) [TASK] Python #1 (https://github.com/SENATOROVAI/python/issues/1) Dec 20, 2025
Copy link
Copy Markdown
Author

@nigmatullin244 nigmatullin244 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sumbit

Comment on lines +1 to +131
"""Глава 4.

Выбор понятных имен.
"""

# ### Схемы регистра имен
#
# Змеиный регистр (snake_case) - разделяет слова символом подчеркивания. Константы часто записываются
# в верхнем змеином регистре (UPPER_SNAKE_CASE).
#
# Верблюжий регистр (camelCase) — слова записываются в нижнем регистре,
# но второе и следующие слова начинаются с заглавной.
#
# Схема Pascal (PascalCase) — названа так, потому что применяется в языке
# программирования Pascal; аналогична схеме верблюжьего регистра, но первое
# слово в ней тоже начинается с заглавной.
#
# На практике чаще всего встречаются змеиный и верблюжий регистры.

# ### Соглашения об именах PEP 8
#
# - Все буквы должны быть буквами ASCII — то есть латинскими буквами
# верхнего и нижнего регистров без диакритических знаков.
#
# - Имена модулей должны быть короткими и состоять только из букв нижнего
# регистра.
#
# - Имена классов необходимо записывать в схеме Pascal.
#
# - Имена констант следует записывать в верхнем змеином регистре.
#
# - Имена функций, методов и переменных записывают в нижнем змеином
# регистре.
#
# - Первый аргумент методов всегда должен называться self в нижнем регистре.
#
# - Первый аргумент методов классов всегда должен называться cls в нижнем
# регистре.
#
# - Приватные атрибуты классов всегда начинают с символа подчеркивания ( _ ).
#
# - Публичные атрибуты классов никогда не начинают с символа подчеркивания ( _ ).

# ### Длина имен
#
# Очевидно, имена не должны быть слишком короткими или слишком длинными.
# Но так как код читают чаще, чем пишут, лучше все-таки задавать более длинные имена переменных.
#
# 1. Слишком короткие имена:
# - Вы можете забыть их точный смысл через несколько дней или недель.
#
# - Сокращения и одно-двухбуквенные имена легко записать, но они плохо читаются.
#
# - Сокращенные имена вида mon — могут означать monitor, month, monster и множество других слов.
#
# - Имя из одного слова — например, start (начало) — может трактоваться поразному: начало чего? При отсутствии уточнения другие люди вас вряд ли
# поймут.
#
# - В отдельных случаях короткие имена переменных вполне допустимы. Например, имя i часто используется с переменными циклов for, перебирающих диапазоны чисел или индексов списка, а j и k (следующие за i в алфавитном порядке) используются с вложенными циклами.
#
# - Еще одно исключение — использование x и y для декартовых координат.
#
#
# 2. Слишком длинные имена:
# - Как правило, чем больше область видимости имени, тем более содержательным оно должно быть.
#
# - Лучше использовать более содержательное имя, например, salesClientMonthlyPayment или annual_electric_bill_payment. Дополнительные слова в имени уточняют смысл и устраняют неоднозначность.
#
# - Не пропускайте буквы в своем коде.
#
# - Кроме того, старайтесь использовать короткие фразы, с которыми ваш код читается как обычный текст. Например, имя number_of_trials читается лучше, чем number_trials.
#
#
# 3. Префиксы в именах:
# - Префиксы в именах иногда избыточны. Например, если у вас есть класс Cat с атрибутом weight, очевидно, что weight (вес) относится к кошке (cat). Таким образом, имя catWeight будет слишком подробным и длинным.
#
# - С другой стороны, префиксы is и has у переменных, содержащих логические значения, или функций и методов, возвращающих логические значения, делают эти имена более понятными.
#
# - Также включение единиц измерения в имена может предоставить полезную информацию.
#
# 4. Последовательные числовые суффиксы в именах:
# - Последовательные числовые суффиксы в именах указывают на то, что вам, возможно, стоит изменить тип данных переменной или включить дополнительную информацию в имя.
#
# - Числа сами по себе, как правило, не предоставляют достаточной информации, чтобы имена можно было отличить друг от друга.
#
# - Имена переменных вида payment1, payment2 и payment3 не сообщают читателю кода, чем они различаются. Возможно, программисту стоит преобразовать эти три переменные в один список или переменную-кортеж с именем payments, в которой хранятся три значения.
#

# ### Выбирайте имена, пригодные для поиска
#
# - Во всех программах, кроме самых коротких, вам, вероятно, придется воспользоваться редактором или функцией поиска (Ctrl-F) в IDE, чтобы найти упоминания переменных и функций.
#
# - Если вы будете выбирать короткие, обобщенные имена переменных (например, num или a), вы наверняка получите ряд ложных совпадений.
#
# - Чтобы имя было найдено немедленно, создавайте уникальные имена с более длинными именами переменных, которые содержат конкретную информацию.
#
# - Имя email слишком многозначно, поэтому лучше выбрать более содержательное имя: emailAddress, downloadEmailAttachment, emailMessage, replyToAddress и т. д. Такое имя не только более точное, но его проще найти в исходном коде.

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

# ### Не заменяйте встроенные имена
#
# - Никогда не используйте встроенные имена Python для своих переменных. Например, присвоив переменной имя list или set, вы заместите функции Python list() и set(), что позднее может привести к появлению ошибок.
#
# - Другая распространенная проблема — присваивание файлам .py имен, совпадающих с именами сторонних модулей.

# ### Худшие из возможных имен
#
# - Имя data — ужасное и абсолютно бессодержательное, потому что буквально любая переменная содержит данные (data).
#
# - То же можно сказать об имени var — все равно что выбрать для собаки кличку Собака.

# ### Итоги
#
# - Имена не должны быть слишком короткими или слишком длинными.
#
# - Однако часто лучше сделать имя избыточным, чем недостаточно содержательным.
#
# - Имя должно быть лаконичным, но информативным.
#
# - Оно должно легко находиться функцией поиска Ctrl-F.
#
# - Выбирайте имена прямолинейные, традиционные и без отсылок к хохмам.
#
# - Избегайте имен, уже используемых стандартной библиотекой Python
#
# - Использование понятных имен — основополагающий фактор разработки качественного программного обеспечения.
Copy link
Copy Markdown
Author

@nigmatullin244 nigmatullin244 Dec 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do a review in python folder (clean-code, makarov, oop_molchanov.py)

https://www.kaggle.com/nigmatullinraushan/code - kaggle notebook

Copy link
Copy Markdown
Member

@ViktorVinogradov89 ViktorVinogradov89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

review done and closed

@lessWronger
Copy link
Copy Markdown
Member

review done. Goode work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants