Pull to refresh

Comments 27

# ----- Обработка чисел -----

Можно просто в отдельную функцию вынести.

import data_base.databases as db

Алиасы нужны для решения конфликта имён и только для этого. Добавление промежуточных имён редко делает код чище. Практики принятые в датасаенсе часто не являются примерам хорошего дизайна.

Мои инструменты это автоматизация. Форматер + линтер + статический анализ задают нижнюю планку качества кода на хорошем уровне. Мой личный шаблон https://github.com/Cjkjvfnby/project_template, давно не обновлялся, но всё еще актуальный.

def save_game(période: int):

Что за перьёд? Товаришь Chat J'ai peté постарался?

Что за англоцентризм?

нет, просто я пользуюсь как английской раскладкой, так и французской

Как писать красивый и чистый код питонистам?

А никак, бгггг

Шучу, серьёзный ответ будет: "а так же, как и всем остальным"

И про комментарии в корне не согласен. Если человек не может перевести "save_period", то пусть идёт в дворники. Тот, кто пишет комментарий "период сохранения" тоже пусть в дворники идёт. Комментарий должен быть "Период сохранения в секундах после последнего действия пользователя".

те кто не поймут про какой период сохранения - тоже в дворники

Ну вообще-то это переводится примерно так: "Сохрани период". С именами все очень и очень непросто.

Я в курсе. И назвал бы переменную SaveDelayAfterLastActionSec, ой, простите, тут питоний, значит save_delay_after_last_action_sec

И вообще бы вынес нахер в константы в начало файла. Соответственно, капсом.

Вопрос: а нужен ли мне после этого вообще комментарий?

Может лучше saving_delay?

нет, у saving другая семантика. Это слово обозначает экономию

In the computer context, saving refers to the process of writing data to a storage device so it can be accessed and used later, even after the computer is turned off.

Для этого нужно, чтобы saving был отглагольным существительным. Нужно указать, что именно оно сейвит. Как существительное само по себе - это экономия.

. Если человек не может перевести "save_period", то пусть идёт в дворники

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

Зачем? Медтермины обычно на латыни, пусть в латыни и остаются. Это общепризнанный общемировой формат

Издеваешься

Состояние (шаг) бизнес процесса:

Проведено медицинское обследование после производственной травмы.

Возможно 10 вариантов перевода на английский. А с английского неоднозначности в понимании на русском

Вот тебе в панамку от LLM

1. MedicalExamCompleted

2. PostInjuryAssessmentDone

3. InjuryMedicalReviewCompleted

4. OccupationalExamConducted

5. WorkInjuryDiagnosisDone

6. PostTraumaMedicalEvaluation

7. InjuryAssessmentFinalized

8. MedicalReviewConcluded

9. WorkTraumaEvaluationComplete

10. PostInjuryCheckupFinished

Какой-то один реализован в коде, но ты не знаешь какой. Теперь найди его, зная только русское название, которое и употребляет бизнес, а значит в ТЗ тоже русское

И это я названия заболеваний ещё не приводил

Я не понимаю, почему я издеваюсь.

Есть английский язык как стандарт для айти. Что это вообще за вопрос такой был: переведи медицинский термин туда и обратно? Зачем? Как это связано с темой разговора?

Если у вас есть предметная область и вы пишете исходный код для системы, работающей в ней, у вас УЖЕ ЕСТЬ термины, от которых можно отталкиваться. У вас уже есть медицинское обследование. У вас есть производственная травма. Вам рассказать, как перевести на английский термин "после"?

И, пожалуйста, не надо мне тыкать. Может оказаться, что я старше вас лет на 10.

О. Вспомнил, кто вы такой. Отрицатель ООП. Тогда ладно. Мои аргументы бессильны. Сдаюсь.

Бизнес говорит: нужно сделать выгрузку всех обследований в состоянии "Проведено медицинское обследование после производственной травмы", а таких состояний штук 30. Ладно, если они в явном виде перечислены в каком-то enum с комментариями и в одном месте программы. А если это просто тупой ключ в словаре / хешмэпе?

Ну ладно состояние

А если это поле? И нет карты однозначного соответствия бизнес термина (что я слышу от заказчика) и того что в коде или БД

карты однозначного соответствия бизнес термина

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

Но не хотите - не делайте. Кто я такой, чтобы вам указывать, что делать?

Это ваши проблемы будут дальше, когда (или если) вы попадёте в другую компанию, а там будет всё незнакомо. Думаете почему люди стремятся стандартизировать что-то? Вот именно поэтому. Чтобы на одном языке шёл разговор.

Как я уже сказал - международный язык для разработки - английский. Если вы пишете переменные по-русски, то я не имею права вас осуждать. Но осуждаю.

Мои аргументы бессильны. Сдаюсь.

Слабак! )))

В случаи, если вы пытаетесь делить на ноль, чего нельзя делать в математике, то данная функция возвращает значение None. Это не самый правильный вариант, лучше использовать raise и "вызывать" конкретную ошибку

лучше подбирать примеры не настолько странно, ведь всё красиво, по математике верно

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

тут вероятно правильным выходом переименовать divide в правильное название или более конкретно рассматривать поставленную задачу вместе с контекстом

Сюда же можно отнести использование PyCharm, потому что иначе смысла от аннотаций нет.

А также использование виртуальных окружений под каждый отдельный проект.

потому что иначе смысла от аннотаций нет.

mypy, pyright, pylsp

Да, согласен. Но это уже не настолько базовые вещи.

Давайте своим переменным понятные и очередные названия, например, если переменная содержит период сохранения каких-то данных, так и назовите её save_period, а не как-нибудь

Вам бы сначала в английский, а ещё ранее, в следование тому, что сами советуете...

Есть же замечательное исключение ZeroDivisionError. Зачем всюду пихать ValueError?

У вас с исключениями беда. Вот представьте себе, что вашу библиотеку кто-то вызывает и получает то ValeError, то TypeError, а где вы забыли проверить на 0 - ZeroDivisionError. И при этом ещё летят исключения, которые возникают в местах, где вы допустили ошибку. В этом случае будет проще обернуть вызов вашей фунции в общий Exception, но тогда будет совершенно не ясно: является ли исключение запланированным, или код библиотеки словил баг, а может это вообще клинтский код отработал с ошибкой и всё смешалось в кашу. Поэтому лучше делать хотябы общее исключение, например, MyLibException, и выбрасывать его. А если из вашего кода полетят стандартные исключения, то уже можно принимать меры и писать багрепорты.

Поэтому лучше делать хотябы общее исключение, например, MyLibException, и выбрасывать его.

Выкидывать только свои исключения это очень хорошая практика.

Sign up to leave a comment.

Articles