Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading content…
Loading…
Transcript

Пока все в порядке

Что-то пошло не так

Разброд и шатания

Проблемы проектирования СУБД

Это не решит ваших проблем, но поможет их найти

Если вы только начинаете

Почти сразу

Еще немного погодя

Когда M-V-T не хватает

dev server

mod_python

JSON API

Уровень экшенов

SOAP

RESTful

Бизнес-логика

Уровень сервисов

View

Обо мне

Уровень репозиториев

Работа с БД

Рост сложности

JSON API

Уровень экшенов

SOAP

RESTful

Бизнес-логика

Уровень сервисов

View

Уровень репозиториев

Работа с БД

опыт в python'e более 4-х лет

опыт в разработке ПО более 7 лет

по совместительству ведущий архитектор в БАРС Груп

  • Увеличение кодовой базы
  • Увеличение функционала
  • Увеличение пользователей
  • Сложная бизнес-логика

Борьба со сложностью

Сверхвысокие нагрузки

  • Templates смешивают данные и код
  • API
  • Слоистая архитектура
  • Слабая связность
  • Разделяй и властвуй (клиент - сервер)
  • Тесты, тесты, тесты

Python & Enterprise

Трудности перевода

Типичное django приложение

Телепенин Николай

Piter Py 2014

Основная задача разработки ПО

Управление сложностью

sentry

(с) Стив Макконнел, Совершенный Код

Continius Integration

Тестирование

  • Jenkins
  • travis-ci
  • UI (selenium)
  • Business logic (Gherkin, behave)
  • Unit (nose, unittest)
  • Интеграционные (webtest)

Deployment on production

План обновления

  • ftp
  • ssh/scp
  • clone repository
  • fabric
  • pip-пакеты
  • deb/rpm/msi-пакеты
  • docker-контейнеры
  • salt stack/puppet/chef

Вопросы?

The Zen of Python

mailto: telepenin.nikolay@gmail.com

twitter: @_prefer

skype: aka_prefer

  • Красивое лучше, чем уродливое.
  • Явное лучше, чем неявное.
  • Простое лучше, чем сложное.

  • Ошибки никогда не должны замалчиваться.

  • Должен существовать один — и, желательно, только один — очевидный способ сделать это.

DjangoGraphviz

Использование слабой связности

  • сигналы
  • observer (наблюдатель)
  • amqp-сообщения
  • IoC, DI
  • service bus (интеграционная шина)
Learn more about creating dynamic, engaging presentations with Prezi