Академический Документы
Профессиональный Документы
Культура Документы
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()
Производительность
■ Меряйте, не стройте догадок!
■ timeit.timeit
■ 80/20 rule, узкие места
www.itea.ua
Оптимизация - стратегия
1. Алгоритмы и структуры данных
2. Оптимизация
компилятора/интерпретатора
3. Настройка кода
www.itea.ua
Оптимизация - код
■ Типы данных
■ Стоимость операций
■ Кеширование/мемоизация
■ Буферизация
www.itea.ua
Оптимизация
■ Cython
■ PyPy