Вы находитесь на странице: 1из 13

Advanced Python.

IT Education
Beyond core python. Academy

WWW.ITEA.UA
www.itea.ua

SDLC

■ Analysis
■ Design
■ Implementation
■ Distribution/Deployment
■ Maintenance/Operation
www.itea.ua

Анализ
■ ЧТО система должна делать
■ Цели
■ Ограничения
www.itea.ua

Проектирование
■ КАК достичь целей
■ .. соблюдая ограничения
www.itea.ua

Проектирование
■ Интерфейсы
■ Сокрытие информации
■ Управление ресурсами
■ Обработка ошибок и
исключительных ситуаций
www.itea.ua

Интерфейсы
■ Скрывайте детали реализации
■ Избегайте монолитных решений, предпочитайте
наборы независимых примитивов
■ Избегайте неявных манипуляций
■ One way to do the same things. Одинаковые вещи
должны делаться одинаково.
www.itea.ua

Управление ресурсами
■ Освобождайте на том же уровне, где выделяете
www.itea.ua

Обработка ошибок
■ Обнаруживайте на самом низком доступном
уровне
■ Обрабатывайте на высоком
■ Исключения - для исключительных ситуаций
www.itea.ua

Отладка
import pdb
pdb.set_trace()

# PEP-553, Python 3.7+


breakpoint()
www.itea.ua

Производительность
■ Меряйте, не стройте догадок!
■ timeit.timeit
■ 80/20 rule, узкие места
www.itea.ua

Оптимизация - стратегия
1. Алгоритмы и структуры данных
2. Оптимизация
компилятора/интерпретатора
3. Настройка кода
www.itea.ua

Оптимизация - код
■ Типы данных
■ Стоимость операций
■ Кеширование/мемоизация
■ Буферизация
www.itea.ua

Оптимизация
■ Cython
■ PyPy

Вам также может понравиться