Skip to content

1. Кабанов Дмитрий Константинович 614 - #31

Open
Dmitrii89-svg wants to merge 10 commits into
python-department:mainfrom
Dmitrii89-svg:main
Open

Dmitrii89-svg wants to merge 10 commits into
python-department:mainfrom
Dmitrii89-svg:main

Conversation

@Dmitrii89-svg

Copy link
Copy Markdown

No description provided.

@EvgrafovMichail EvgrafovMichail left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Старайтесь давать понятные имена переменным, а также избегать использования магических констант. Это сильно улучшит качество вашего кода.

С учетом упавших тестов оценка: 9.6
Штраф за оформление: 1.5
Итог с учетом округления: 8

Comment thread src/part1/snowflake.py

Args:
epoch_ms: The custom epoch expressed as Unix milliseconds.
a = int(time.time() * 1000)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Неинформативное имя переменной. Невозможно понять, какой физический смысл заложен в переменную с именем a. От этого код тяжелее читать.

Минус 0.5 балла

Comment thread src/part1/snowflake.py
snowflake_id: An identifier produced against the same epoch.
epoch_ms: The epoch the identifier was generated against. Defaults to
the original Twitter epoch (2010-11-04 01:42:54.657 UTC).
a = snowflake_id >> 22

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

  • Аналогично этому комментарию
  • Использование магической константы 22. Если в будущем длина полей в идентификаторе изменится, придется вручную искать места, где встречается эта константа, и исправлять все самостоятельно. Также непонятна природа константы: при чтении кода неясно, почему именно 22 и что это значит.

Минус 1 балл за использование магических констант

Comment thread src/part1/snowflake.py

def decode_node_id(snowflake_id: int) -> int:
"""Read the node identifier field out of a Snowflake identifier.
a = (snowflake_id >> 12) & 0b1111111111

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Comment thread src/part1/snowflake.py

Args:
snowflake_id: An identifier produced by :func:`generate_snowflake_id`.
a = snowflake_id & 0b111111111111

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Comment thread src/part1/snowflake.py
m = f"sequence_id must be in [0,{SEQUENCE_ID_MAX}]"
print(m)
return None
if epoch_ms > TIMESTAMP_MS_MAX and epoch_ms < 0:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Корректнее проверять не epoch_ms, а результат выполнения read_current_millis. Сам по себе epoch_ms может ничего не переполнять, а вот актуальный таймстеп, рассчитанный с его помощью, может выходить за диапазон. В итоге у вас на этом один тест и упал.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants