Skip to content

bloode11/lab-6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

lab-6

Найденные проблемы (code smells):

process_checkout слишком длинная (Long Method)

Нарушение принципа единственной ответственности (одна функция одновременно выполняет валидацию, бизнес-логику и формирование результата)

Магические числа ( в коде используются числовые значения без поясняющих имён)

Сложные условные конструкции (логика расчёта скидок реализована через цепочку if / elif / else с вложенными условиями, что усложняет понимание и расширение)

Примененные рефакторинги

process_checkout стала короткой и читается сверху вниз как сценарий

Выделены функции: validate_order_items, calculate_subtotal, calculate_discount_amount,calculate_amount_after_discount, calculate_tax_amount, generate_order_id

Вынесение констант (все магические числа и строки были вынесены в именованные константы, что повысило читаемость и упростило изменение бизнес-логики)

Сохранение поведения: все тесты продолжили успешно проходит

Упрощение

Чтение кода: каждая функция выполняет одну понятную задачу

Тестировка: можно тестировать каждую часть логики отдельно

Изменение бизнес-правил: -для изменения ставки налога, нужно поменять одну константу -для добавления нового купона, нужно добавить одну запись в словарь

Нахождение ошибок: стек вызовов показывает, в какой именно части логики произошла ошибка Изменять бизнес-правила: · Чтобы изменить ставку налога, нужно поменять одну константу · Чтобы добавить новый купон, нужно добавить одну запись в словарь · Чтобы изменить правила валидации, это делается в одном месте Находить ошибки - стек вызовов показывает, в какой именно части логики произошла ошибка

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages