Repository navigation
3. Рустаев Самир Рустамович. 614 - #111
samirhappy wants to merge 5 commits into
Conversation
| return None | ||
| flag = False | ||
| index_of_needed_id = 0 | ||
| for i in range(len(storage)): |
There was a problem hiding this comment.
Нарушение критерия T5. Минус 0.25 балла
| if not name: | ||
| print("product name must not be blank") | ||
| return None | ||
| flag = False |
There was a problem hiding this comment.
Нет необходимости заводить флаг. Вы можете выйти из функции сразу, как найдете данные, нарушающие инварианты. Здесь нет необходимости заводить флаг, и ждать, пока цикл по данным полностью завершится.
|
|
||
| command = words[0] | ||
|
|
||
| if command == "exit" and len(words) == 1: |
There was a problem hiding this comment.
Здесь правильнее было бы использовать match-case, вместо ветвления. Из-за ветвления очень большая часть логики проверки дублируется (проверка количества слов). Это нарушает критерий S1. Минус балл
| if command == "create" and len(words) >= 4: | ||
| name = " ".join(words[1:-2]) | ||
| price = Decimal(words[-2]) | ||
| quantity = int(words[-1]) |
There was a problem hiding this comment.
Нарушение критерия S3. Минус балл
| mxlen2 = max(mxlen2, len(name)) | ||
| mxlen3 = max(mxlen3, len(price)) | ||
| mxlen4 = max(mxlen4, len(quantity)) | ||
| s1 = f"| {TABLE_HEADERS[0].ljust(mxlen1)} | {TABLE_HEADERS[1].ljust(mxlen2)} | {TABLE_HEADERS[2].ljust(mxlen3)} | {TABLE_HEADERS[3].ljust(mxlen4)} |" |
There was a problem hiding this comment.
Нарушение критерия M2. Минус 0.5 балла
| """ | ||
| # TODO: реализуйте функцию | ||
| return "" | ||
| mxlen1 = len(TABLE_HEADERS[0]) |
There was a problem hiding this comment.
Эта функция нарушает принцип единой ответственности, т.к. и вычисляет максимальные длины колонок, и форматирует строки. Нарушение критерия S2. Минус балл
| # TODO: реализуйте функцию | ||
| return "" | ||
| mxlen1 = len(TABLE_HEADERS[0]) | ||
| mxlen2 = len(TABLE_HEADERS[1]) |
There was a problem hiding this comment.
Всю дублирующуюся логику следует выносить в отдельные функции и переиспользовать их
No description provided.