Python для новичковФункцииДекомпозиция программы на функции

Декомпозиция программы на функции

Уроки курсаДекомпозиция программы на функции

К этому моменту вы умеете писать функции, передавать в них параметры и получать результат через return. Теперь задача другая: взять реальную программу и решить, как именно её разбить на функции — и зачем вообще это делать.

Что такое декомпозиция и зачем она нужна

Декомпозиция — это разбиение программы на части, каждая из которых отвечает ровно за одно действие. Не «программа, которая работает», а «программа, которую можно читать и менять без страха».

Представьте: вы написали 60 строк кода подряд — запрос ввода, расчёт скидки, формирование итоговой строки, вывод на экран. Всё работает. Но через неделю нужно изменить формулу скидки. Вы открываете файл и тратите несколько минут только на то, чтобы найти нужное место среди остального кода. А если похожий расчёт встречается в трёх местах программы — менять нужно в трёх местах, и легко пропустить одно.

Декомпозиция решает оба этих случая. Когда логика разбита на функции с говорящими именами, код читается почти как список действий:

price = get_price()
discounted = apply_discount(price, rate=0.1)
print_receipt(discounted)

Даже не заглядывая внутрь каждой функции, понятно, что происходит. Это и есть читаемость: назначение кода понятно по именам, а не по деталям реализации.

Второй выигрыш — устранение дублирования. Если расчёт скидки оформлен как функция apply_discount(), он существует в одном месте. Нужно изменить формулу — меняете один раз, и это автоматически работает везде, где функция вызывается.

Декомпозиция не меняет то, что делает программа. Она меняет то, как эта программа выглядит и насколько легко с ней работать дальше.