Skip to content

3. Рудаков Андрей Вячеславович. 614 - #107

Open
rudikkkk wants to merge 7 commits into
python-department:mainfrom
rudikkkk:3
Open

rudikkkk wants to merge 7 commits into
python-department:mainfrom
rudikkkk:3

Conversation

@rudikkkk

@rudikkkk rudikkkk commented Oct 8, 2026

Copy link
Copy Markdown

No description provided.

@github-actions github-actions Bot added the 614 label Oct 8, 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.

В целом, аккуратное решение. Единственное замечание - неправильное использование match-case. Не раскрыли весь потенциал конструкции

Comment thread src/part3/crud.py
return None


def update_product(

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/run_admin.py
command = words[0]

match command:
case "help" if len(words) == 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.

При таком подходе вы не получаете никакого преимущества от использования конструкции match-case. Суть match-case как раз в том, что вы можете проверять не только значения, но и структуру данных. Например, проверка того, что на вход передана коллекция, состоящая из одного элемента "help", выглядит так:

case ["help"]:
    ...

А проверка того, что на вход передана команда "create" с нужным числом аргументов, будет выглядеть так:

case ["create", *name_parts, price, quantity]:
    ...

А вы используете match-case, как if-elif. Отсюда очень много дублирующейся логики проверок (проверка размера len(words) == 1).

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

Comment thread src/part3/run_admin.py
case "create" if len(words) >= 4:
name = " ".join(words[1:-2])
price = Decimal(words[-2])
quantity = int(words[-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. Минус балл

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