Skip to content

MLebedeva00/lab6_tp_2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

lab6_tp_2025

Лаба 6 - Рефакторинг и code smells

Цель работы - научиться: находить smells в реальном коде, применять рефакторинг, чтобы код лучше читался, сохранять поведение при изменении структуры.

Проблемы, обнаруженные в order_processing.py:

  • Функция process_checkout слишком длинная и выполняет слишком много задач: Валидация, расчет скидок, налогов, генерация order_id и формирование ответа

  • Дублирование кода

  • Вложенный условный оператор в блоке для расчета скидок тяжело читается

  • Повторяющиеся магические числа (константы без однозначной идентификации): 0.21, 0.10, 200, 50 ...

  • Смешение уровней абстракции (низкоуровневые операции с выосокоуровневыми)

Рефакторинг:

  1. Разделение длинной функции на специализированные Исходная функция была разделена на несколько логических блоков, что улучшило читаемость:

parse_request() — для извлечения данных из запроса.

validate_request() — для валидации входных данных и элементов заказа.

calculate_subtotal() — для расчета промежуточной суммы заказа.

calculate_discount() — для вынесения логики расчета скидок.

calculate_tax() — для расчета налога.

generate_order_id() — для генерации уникального ID заказа.

  1. Вынесение констант Вынесены все магические числа в именованные константы.

  2. Улучшение условной логики Условные выражения, отвечающие за применение скидок, были упрощены и сделаны более наглядными.

  3. Упорядочивание кода После рефакторинга код организован как четкий сценарий: функции вызываются в логическом порядке.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages