1. Построение веб-сайтов на Django.
    Технические нюансы

    Игорь Кононученко

    технический директор

  2. Кратко о Python

    • На нем пишут даже экспертные системы!
    • Google и Яндекс используют Python!
    • Тысячи разработчиков, проектов, фреймворков
    • Отсутствие строгой типизации
    • Кроссплатформенность
    • Десктоп, Веб
  3. Гвидо говорит

    Python — скриптовый язык номер один в Google, без сомнений.

    Пробелы или табы? — пробелы

    Django — любимый фреймворк.

    Постоянно использует CPython. Она также встроенна в Google App Engine.

  4. Google и Python

    Python один из 3 официальных языков, которые попадают в финальные продукты (еще C++ и Java)

    Код соответствует стандарту PEP8

    Очень редко код Python является узким местом (БД, например, более «узкое место»)

    Проекты Google Code, Google App Engine и сотни других за 10 лет использования

  5. Балуемся — Python, Ruby, PHP, Perl

    Подбное сравнение — последнее на что нужно смотреть при выборе языка.

  6. Django

    • Создан для новостных сайтов и выпущен в 2005 году
    • Открытый исходный код и разработчики по всему миру
    • Жесткие правила контрибуции и команда, принимающая решения
    • Стремительное развите
    • Большое количество значимых сайтов
    • Сайт можно сделать очень быстро
  7. Фишки

    • Удобнейший ORM
    • Кеширование
    • Аутентификация
    • Удобная работа с формами
    • Админка
    • Всегда стабильный trunk
    • Масштабируемость
    • и много другого
  8. Feelgood.com.ua. Большой проект

    • Много разделов и функционала
    • Архитектура MySQL, Sphinx, nginx + fastcgi, memcached
  9. Выбор технологии

    • Минут 20 думали о Drupal, PHP, ASP.NET
    • Выбрали Django
  10. Гибкие методики, контроль качества

    • SVN
    • JetBrains TeamCity (CI-сервер)
    • PEP8 — качество кода
    • 2 тестовых сьюта (модульные и интеграционные тесты)
    • Ревю кода каждую пятницу. Постоянный рефакторинг.
  11. {{MEDIA_URL}}

    • Статика в любой директории на диске
    • Поключение картинок, скриптов, стилей
    • Сборка и сжатие статики
  12. Производительность

    • Apache JMeter — инструмент для тестирования.
    • Было медленно
    • Профайлеры prof и dbprof
    • Оптимизацизация запросов ОRM-ма
    • Кешировать в шаблонах
    • Менее 5 запросов к бд на странице, в среднем 1−2
    • Статику на субдомен. Скрипты и стили сжать и включить gzip
  13. Трудности

    Неудобный шаблонизатор. Время показало, что Jinja2 гораздо удобнее.

    Не стоит заниматься кастамайзом стандартной админки. Мы создали свой интерфейс.

    Неудобный фреймворк для тестирования. Пришлось сделать свои костыли.

  14. Спасибо за внимание!

    Эти слайды были созданы с использованием
    Django, Jinja2, jQuery.

  15. Игорь Кононученко
    Студия «Веджо»