Skip to content

3. Банад Михаил Вячеславович. 614 - #129

Open
phantom686 wants to merge 26 commits into
python-department:mainfrom
phantom686:task3
Open

phantom686 wants to merge 26 commits into
python-department:mainfrom
phantom686:task3

Conversation

@phantom686

Copy link
Copy Markdown

No description provided.

@github-actions github-actions Bot added the 614 label Oct 12, 2026
@phantom686 phantom686 changed the title 2. Банад Михаил Вячеславович. 614 3. Банад Михаил Вячеславович. 614 Oct 12, 2026

@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.

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

Comment thread src/part3/crud.py
if p[PRODUCT_ID_INDEX] == product_id:
storage.pop(i)
return product_id
return None

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.

При отсутствии товара с переданным ID вы просто возвращаете None. По условию необходимо было также вывести сообщение о том, что товара с таким ID найдено не было. Из-за этого некоторые тесты этой функции не пройдены.

Comment thread src/part3/crud.py
if not name:
print("product name must not be blank")
return None
for p in storage:

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.

p - неинформативное имя. В языке нет никакого устоявшегося соглашения о физическом смысле данного имени. Другим разработчикам будет тяжело считать, назначение этой переменной.

Нарушение критерия M2. Минус 0.5 балла

Comment thread src/part3/run_admin.py
if cmd == "help" and len(parts) == 1:
show_help()
return True
elif cmd == "exit" and len(parts) == 1:

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.

Нарушение критерия T1. Минус 0.25 балла

Comment thread src/part3/run_admin.py
return True
cmd = parts[0]

if cmd == "help" and len(parts) == 1:

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.

Из-за использование if-elif блока для разбора команд у вас большая часть логики дублируется. Для реализации данной функции лучше подошел бы механизма сопоставления шаблонов match-case. Тогда код вышел бы лаконичнее, а логика не дублировалась бы.

Нарушение критерия S1. Минус балл

Comment thread src/part3/run_admin.py
print_result(res)
return True
elif cmd == "delete" and len(parts) == 2:
pid = int(parts[1])

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.

Магические константы делают код менее поддерживаемым и читаемым. Новым разработчикам будет непонятно, что значат константы и почему выбраны именно такие значения. А если логика разбора команд изменится, вам придется вручную во всех местах менять одно значение на другое

Нарушение критерия S3. Минус балл

Comment thread src/part3/utils.py
w_price = max(w_price, len(price_str))
w_qty = max(w_qty, len(qty_str))

def format_row(c1: str, c2: str, c3: str, c4: str) -> str:

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/part3/utils.py
"""
# TODO: реализуйте функцию
return ""
w_id = len(TABLE_HEADERS[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.

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

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