Django: инструкция по    применению                    PyCon Ukraine                  22 октября 2011                Колод...
Существует 2 способаиспользовать Django       PyCon Ukraine 2011   2 из 22
Алгоритм работы с DjangoПункт #1. Берем DjangoПункт #2. Берем напильник                 PyCon Ukraine 2011   3 из 22
Алгоритм работы с DjangoПункт #1. Берем DjangoПункт #2. Берем напильникПункт #n. Пользуемcя и радуемся жизни              ...
Алгоритм работы с Django (ver.2)Пункт #1. Берем DjangoПункт #2. Берем напильник…                 PyCon Ukraine 2011   4 из...
Алгоритм работы с Django (ver.2)Пункт #1. Берем DjangoПункт #2. Берем напильник…Пункт #n. Выбрасываем Django.             ...
Алгоритм работы с Django (ver.2)Пункт #1. Берем DjangoПункт #2. Берем напильник…Пункт #n. Выбрасываем Django.…Пункт #m-1. ...
Алгоритм работы с Django (ver.2.1)Пункт #1. Помним о DjangoПункт #2. Понимаем что он нам не подходитПункт #3. Находим подх...
Когда нам подходит Django• Нужен опыт с Django• Нужно быстро сделать сайт с админкой• Есть хорошее готовое приложение/моду...
Когда нам подходит Django• Создание CMS• Создать приложение на основе готового                  PyCon Ukraine 2011      7 ...
Создание CMS•   Admin site                     •    Site map•   Authentication                 •    Static files•   Commen...
Когда нам не подходит Django• Нет взаимодействия с базой данных• Отсутствует presentation layer• Замена большей части стан...
Веб приложение без доступа к БД            PyCon Ukraine 2011   10 из 22
Веб приложение без доступа к БД• Удаляем models.py• Реализовываем доступ к данным  (REST, чтение из файлов и т.д)• Забывае...
Веб приложение без доступа к БД• Стандартная  аутентификация/авториз  ация не подходит• Вслед за этим пишем  свою админку ...
Веб приложение без доступа к БД• Стандартная  аутентификация/авториз  ация не подходит• Вслед за этим пишем  свою админку ...
Веб приложение без доступа к БД• Выбрасываем django• Берем небольшой веб-фреймворк  (например, flask)• Пишем нужную нам ло...
Веб приложение без доступа к БД• Нет ненужно когда• Размер приложение, как  правило, становится меньше                 PyC...
Веб приложение без доступа к БД• Нет ненужно когда• Размер приложение, как  правило, становится меньше                 PyC...
Отсутствует GUI (REST-       сервис, COMET-сервер)• Шаблоны не нужны• «Тяжелые» запросы плохо подходят для  COMET• Многопо...
Отсутствует GUI (REST-       сервис, COMET-сервер)• Использование  инструментов, предназначенных для таких  задач         ...
Отсутствует GUI (REST-       сервис, COMET-сервер)• Использование  инструментов, предназначенных для таких  задач         ...
Замена большей части стандартных          компонентов                        • Выбросить                          стандарт...
Замена большей части стандартных          компонентов                        • Выбросить                          стандарт...
Замена большей части стандартных          компонентов• Принцип Паретто 20/80  – 80% времени переписывается стандартный    ...
Замена большей части стандартных          компонентов• Принцип Паретто 20/80  – 80% времени переписывается стандартный    ...
Замена большей части стандартных          компонентов• Принцип Паретто 20/80  – 80% времени переписывается стандартный    ...
Замена большей части стандартных          компонентов• Принцип Паретто 20/80  – 80% пишем сами  – 20% есть в Django       ...
Замена большей части стандартных          компонентов• Принцип Паретто 20/80  – 80% пишем сами  – 20% есть в Django• Зачем...
Использование NoSQL• Используем стандартный API для ORM• Используем django nonrel• Используем почти всю django инфраструкт...
Использование NoSQL• Используем модуль для работы с нужной NoSQL БД• Отказываемся от всей Django инфраструктуры• Задумывае...
PyCon Ukraine 2011   21 из 22
СпасибоE-mail: e0ne@e0ne.info          Skype: e0ne-userTwitter: @e0ne                  Blog: http://blog.e0ne.info/       ...
Upcoming SlideShare
Loading in...5
×

Django: инструкция по применению

2,493

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,493
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Test notes
  • Есть только 2 способа. Когда он нам подходит, и когда не подходит. Остальное – их комбинации.Сразу отказываетесь от джанго – это способ №2Намеренно не буду говорить о других веб-фреймворках (pyramid, pylons), но многое сказанное будет актуальным и для них
  • В качестве напильника: свой код, готовые модули/приложения и т.д.
  • Понимаем что что-то не так
  • Для тех, кто не использует джанго
  • Описание 5+1 случаев, когда djangoхорошо подходит.Субъективно. Хорошо что есть выбор фреймворков.Написал эти 6 пунктов я тогда, когда в одной части нашего проекта мы отказались от джанго в пользу другого, более компактного фреймворка.Итого получилось 6 пунктов. Если не выполняются хотя бы 3, то нужно задуматься о целесобразности использования Django. IMHO.
  • Описание случаев, когда djangoхорошо подходит.Разбор полетов
  • Описание кейса, когда джанго подходит очень хорошо на примере контентного проекта.Для cms/контентного проекта из коробки есть почти все готовоеhttps://docs.djangoproject.com/en/1.3/На слайде вынесены компоненты из django.core & django.contribдля примера того, что уже почти все реализовано за нас, остается только использовать готовое. Ну и напилиник…
  • Описание кейсов, когда от джанко стоит отказаться.Нет модели или шаблонов? Заменяем стандартный движок, орм, пишем свою админку для пользователей? Что тогда остаются от джанго? Стоит ли оно чтобы продолжать использовать его? Я думаю что нет..Далее идет описание случаев, когда без джанго задача решается проще/быстрее
  • В качестве модели – что угодно, кроме БД (веб-серсисы, файлова система, сокеты..)
  • В качестве модели – что угодно, кроме БД (веб-серсисы, файлова система, сокеты..)
  • В результате – выкинули частьфреймворка, программисты злые: функциональнсть есть, знакома, но пользоваться нельзя.
  • В результате – выкинули частьфреймворка, программисты злые: функциональнсть есть, (авторизация, молел-формс, орм) знакома, но пользоваться нельзя.
  • Все хорошо и радуемся жизни
  • Все хорошо и радуемся жизни
  • Нетгуи – нет template engine.Запросы в джанго – не самые легкие, реализация комета – тормоза и много памятиВсю работу с многопоточностью пишем руками, используя стандартные модулиНет поддержки неблокирующего ввода/вывода
  • Есть много готовых решений для таких задач. Работают быстрее.Eventlet, gevent, NodeJS
  • Есть много готовых решений для таких задач. Работают быстрее.Eventlet, gevent, NodeJSTodo: что юзаеттвистед и торнадо
  • Большую часть времени – создаем велосипедПотом столько же дорабатываем велосипед напильником
  • Большую часть времени – создаем велосипедПотом столько же дорабатываем велосипед напильником
  • Большую часть времени – создаем велосипедПотом столько же дорабатываем велосипед напильником
  • Пишем 80% функциональности сами? Повод задуматься о выборе другого фреймворка
  • Пишем 80% функциональности сами? Повод задуматься о выборе другого фреймворка
  • Надеемся что никто не залезет на продакшн и не напишет join!Вожможные ошибки в рантайме при использовании стандартного апи, которое «всегда работало» с реляционными бд. Пару слов о gaeTODO: версия djangononrel
  • Невозможность использование всего, что связано с модельюRedis, memcacheDB
  • жданго – не швейцарский нож! Насколько бы он ни был хорош, не стоит его использовать везде.Иногда разработчики принимают решение написать свой мини-фреймворк для решение текущей задачи
  • «всем спасибо, все свободны» (с) 
  • Django: инструкция по применению

    1. 1. Django: инструкция по применению PyCon Ukraine 22 октября 2011 Колодяжный Иван 1 из 21
    2. 2. Существует 2 способаиспользовать Django PyCon Ukraine 2011 2 из 22
    3. 3. Алгоритм работы с DjangoПункт #1. Берем DjangoПункт #2. Берем напильник PyCon Ukraine 2011 3 из 22
    4. 4. Алгоритм работы с DjangoПункт #1. Берем DjangoПункт #2. Берем напильникПункт #n. Пользуемcя и радуемся жизни PyCon Ukraine 2011 3 из 22
    5. 5. Алгоритм работы с Django (ver.2)Пункт #1. Берем DjangoПункт #2. Берем напильник… PyCon Ukraine 2011 4 из 22
    6. 6. Алгоритм работы с Django (ver.2)Пункт #1. Берем DjangoПункт #2. Берем напильник…Пункт #n. Выбрасываем Django. PyCon Ukraine 2011 4 из 22
    7. 7. Алгоритм работы с Django (ver.2)Пункт #1. Берем DjangoПункт #2. Берем напильник…Пункт #n. Выбрасываем Django.…Пункт #m-1. Находим подходящее решениеПункт #m. Пользуемcя и радуемся жизни PyCon Ukraine 2011 4 из 22
    8. 8. Алгоритм работы с Django (ver.2.1)Пункт #1. Помним о DjangoПункт #2. Понимаем что он нам не подходитПункт #3. Находим подходящее решениеПункт #3. Пользуемcя и радуемся жизни PyCon Ukraine 2011 5 из 22
    9. 9. Когда нам подходит Django• Нужен опыт с Django• Нужно быстро сделать сайт с админкой• Есть хорошее готовое приложение/модуль для Django• Стандартного ORM вполне достаточно• Какие-то из модулей Django очень хорошо подходят для текущей задачи• Нужно сделать что-то очень быстро и нет опыта с другими фреймворками. PyCon Ukraine 2011 6 из 22
    10. 10. Когда нам подходит Django• Создание CMS• Создать приложение на основе готового PyCon Ukraine 2011 7 из 22
    11. 11. Создание CMS• Admin site • Site map• Authentication • Static files• Comments • Syndication feeds• E-mail • Validators• Flat pages• Pagination• Redirects PyCon Ukraine 2011 8 из 22
    12. 12. Когда нам не подходит Django• Нет взаимодействия с базой данных• Отсутствует presentation layer• Замена большей части стандартных компонентов• Использование NoSQL, GAE PyCon Ukraine 2011 9 из 22
    13. 13. Веб приложение без доступа к БД PyCon Ukraine 2011 10 из 22
    14. 14. Веб приложение без доступа к БД• Удаляем models.py• Реализовываем доступ к данным (REST, чтение из файлов и т.д)• Забываем про ModelForms PyCon Ukraine 2011 10 из 22
    15. 15. Веб приложение без доступа к БД• Стандартная аутентификация/авториз ация не подходит• Вслед за этим пишем свою админку PyCon Ukraine 2011 11 из 22
    16. 16. Веб приложение без доступа к БД• Стандартная аутентификация/авториз ация не подходит• Вслед за этим пишем свою админку PyCon Ukraine 2011 11 из 22
    17. 17. Веб приложение без доступа к БД• Выбрасываем django• Берем небольшой веб-фреймворк (например, flask)• Пишем нужную нам логику• Не думаем о том, что что-либо в используемом фреймворке нам нельзя использовать PyCon Ukraine 2011 12 из 22
    18. 18. Веб приложение без доступа к БД• Нет ненужно когда• Размер приложение, как правило, становится меньше PyCon Ukraine 2011 13 из 22
    19. 19. Веб приложение без доступа к БД• Нет ненужно когда• Размер приложение, как правило, становится меньше PyCon Ukraine 2011 13 из 22
    20. 20. Отсутствует GUI (REST- сервис, COMET-сервер)• Шаблоны не нужны• «Тяжелые» запросы плохо подходят для COMET• Многопоточность «из коробки» - использование threading• Non-blocking I/O? PyCon Ukraine 2011 14 из 22
    21. 21. Отсутствует GUI (REST- сервис, COMET-сервер)• Использование инструментов, предназначенных для таких задач PyCon Ukraine 2011 15 из 22
    22. 22. Отсутствует GUI (REST- сервис, COMET-сервер)• Использование инструментов, предназначенных для таких задач PyCon Ukraine 2011 15 из 22
    23. 23. Замена большей части стандартных компонентов • Выбросить стандартный ORM • Использовать другой template engine • Попытаться это все интегрировать и родную инфраструктуры (form views, admin site) PyCon Ukraine 2011 16 из 22
    24. 24. Замена большей части стандартных компонентов • Выбросить стандартный ORM • Использовать другой template engine • Попытаться это все интегрировать и родную инфраструктуры (form views, admin site) PyCon Ukraine 2011 16 из 22
    25. 25. Замена большей части стандартных компонентов• Принцип Паретто 20/80 – 80% времени переписывается стандартный функционал PyCon Ukraine 2011 17 из 22
    26. 26. Замена большей части стандартных компонентов• Принцип Паретто 20/80 – 80% времени переписывается стандартный функционал PyCon Ukraine 2011 17 из 22
    27. 27. Замена большей части стандартных компонентов• Принцип Паретто 20/80 – 80% времени переписывается стандартный функционал – Еще 80% времени - исправление багов PyCon Ukraine 2011 17 из 22
    28. 28. Замена большей части стандартных компонентов• Принцип Паретто 20/80 – 80% пишем сами – 20% есть в Django PyCon Ukraine 2011 18 из 22
    29. 29. Замена большей части стандартных компонентов• Принцип Паретто 20/80 – 80% пишем сами – 20% есть в Django• Зачем нам Django? PyCon Ukraine 2011 18 из 22
    30. 30. Использование NoSQL• Используем стандартный API для ORM• Используем django nonrel• Используем почти всю django инфраструктуру но: - помним про join - готовимся делать патчи для django nonrel PyCon Ukraine 2011 19 из 22
    31. 31. Использование NoSQL• Используем модуль для работы с нужной NoSQL БД• Отказываемся от всей Django инфраструктуры• Задумываемся о целесообразности использования Django PyCon Ukraine 2011 20 из 22
    32. 32. PyCon Ukraine 2011 21 из 22
    33. 33. СпасибоE-mail: e0ne@e0ne.info Skype: e0ne-userTwitter: @e0ne Blog: http://blog.e0ne.info/ PyCon Ukraine 2011 22 из 22
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×