Python: Декларативное программирование

Теория: Введение

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

При работе с данными в Python очень легко уйти в одну из крайностей. Либо код превращается в длинную цепочку шагов, где приходится держать в голове каждое промежуточное состояние. Либо, наоборот, все собирается в слишком хитрое выражение, которое выглядит компактно, но читается уже с усилием. В этом и состоит основная проблема: декларативный стиль полезен не сам по себе, а только тогда, когда действительно упрощает решение.

В Python такой подход встречается постоянно. Генераторы списков, генераторные выражения, map(), filter(), set() и dict() помогают собирать обработку данных в понятные цепочки. Такой код часто короче и читается быстрее. Но у этого стиля есть границы: иногда явный цикл, изменяемое состояние или yield дают более честное и удобное решение.

В курсе мы начнем с разговора о разнице между императивным и декларативным подходами, а затем разберем функциональный стиль в Python на реальных конструкциях языка. Посмотрим, как работают генераторы списков, словарей и множеств, где полезны генераторные выражения, зачем нужны ленивые вычисления и в каких случаях стоит писать генераторные функции.

По ходу курса будем сравнивать компактные декларативные решения с более привычным пошаговым кодом. Это важная часть материала: в Python редко побеждает одна крайность. Обычно хороший вариант находится посередине, когда код и читается нормально, и не тратит лишние ресурсы.

Для кого этот курс

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

Рекомендуемые программы

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845