Веб-разработка
и инструментарий
в Python
Тесты
• long-term lasting эффект
• здоровый сон
• бесконечный рефакторинг
• быстрый и качественный процесс
разработки
Тесты
• Unit тесты
• Mock тесты/патчи
• Функциональные тесты
– Selenuim Python Web Driver
• pytest
– plugins (i.e. pytest-cov)
Не убедил?
• The Mythical Man-Month (~25% testing)
• Peopleware
CVS
• git
• mercurial (written in python)
Стандартная архитектура
Плюсы
• просто и быстро
Минусы
• общие ресурсы
• сложно масштабировать
Раздельная архитектура
Плюсы
• быстродействие
• масштабируемость
• безопасность (PCI-DSS)
Минусы
• сложность в настройке
• дороже
• задержка сети
Горизонтальная масштабируемость
12 Factor App
http://12factor.net/
• манифест создания веб-приложений
– единая кодовая база
– ортогональность приложений
– безопасность (ключи, пароли, доступы)
– единая среда разработки и развертывания
Окружение
• Virtualenv + pip (включен в py3)
• Docker
• Vagrant + VirtualBox
• Fabric
Веб-фреймворки
• Django (батарейки в комплекте)
• Pyramid
• Flask
• Bottle
• Bobo
• Falcon
• Tornado, Twisted
PostgreSQL vs. MySQL
• JSON(B)
• Async, more data types, table inheritance
• Scalability
• Full text search
NoSQL
• MongoDB
• Redis
• Memcached
Очереди задач
• Celery
• django-tasks
• py-rq
WSGI серверы
• Gunicorn (pure Python)
• uWSGI
• Apache + mod_python
• Apache + mod_wsgi
Процесс менеджер
Supervisord
pure Python implementation
Мониторинг
• Munin + plugins
• Sentry + raven
Внешние веб-сервисы
ПАДАЕТ ВСЁ!!1
• Toxy
• Mozilla Vaurien
IDE
• JetBrains PyCharm
– CVS tools
– Vagrant
– Deployment
– Debugger
– Virtualenv
• SublimeText + plugins
• Emacs/Vim
Вопросы?
Книги
• Two Scoops of Django 1.8
• Learning Python
• Fluent Python (July 2015)
• Code Complete
• Pragmatic Programmer
• Building Microservices

Python tools for web development (Python meetup Almaty #ALAPY)