SlideShare a Scribd company logo
1 of 76
Web Project  Full Circle Rostislav Bryzgunov E-Mail: rostislav.bryzgunov@webriders.com.ua Skype:     rostislav.brizgunov LinkedIn:  rbrizgunov Habrahabr: kottenator Olexiy Strashko E-Mail: olexiy.strashko@webriders.com.ua Skype:    strashko.olexiy LinkedIn: olexiystrashko
Вступление ,[object Object],Леха
Вступление ,[object Object],[object Object]
Вступление ,[object Object],[object Object],[object Object]
Вступление ,[object Object],[object Object],[object Object],[object Object]
Вступление ,[object Object],[object Object],[object Object],[object Object],[object Object]
Вступление ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Вступление ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Ростик
Наш доклад
Структура проекта Об этом мало информации, как будто всё просто и понятно. Мы искали и почти ничего не нашли
1. Структура проекта Старт проекта # новый чистенький проект $ django-admin.py startproject Zakzak
1. Структура проекта Первые приложения # наши первые приложения $ manage.py startapp myapp # и начали плодиться папки в корне...
1. Структура проекта Дальше - больше # медиа, шаблоны, сторонние приложения - всё сюда же
1. Структура проекта Выделяем приложения # изолируем django apps # ... и библиотеки Леха
1. Структура проекта media, static & source # Медиа и статика - отдельно, исходный код - отдельно! # ... и мы говорим "НЕТ!" директории "templates/"
1. Структура проекта settings.py - теперь в пакете! # Проект растёт, settings.py "загрязняются", # что затрудняет создание новых проектов... Поэтому:
1. Структура проекта Результат Результат -  небольшой open-source проект  -  Django Template   Project : http://bitbucket.org/webriders/django-template-project/ Пришло время для вопросов  (по первой части)
Джентльменский набор приложений Рост
2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое, а не выдумывать велосипед
2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое, а не выдумывать велосипед   1. Читать сайт на родном языке  (I18N, L10n)
2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое а не выдумывать велосипед   1. Читать сайт на родном языке  (I18N, L10n) 2. Быстро и просто наполнять контент  (Admin)
2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое а не выдумывать велосипед   1. Читать сайт на родном языке  (I18N, L10n) 2. Быстро и просто наполнять контент  (Admin)   3. Найти нужную информацию  (поиск, теги)
2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое а не выдумывать велосипед   1. Читать сайт на родном языке  (I18N, L10n) 2. Быстро и просто наполнять контент  (Admin)   3. Найти нужную информацию  (поиск, теги)   4. Еще много чего  (Twitter, RSS, регистрация, ...)  
2. Джентльменский набор приложений 1. Читать сайт на родном языке  (I18N, L10n)
2. Джентльменский набор приложений 1. Читать сайт на родном языке  (I18N, L10n)
2. Джентльменский набор приложений 1. Читать сайт на родном языке  (I18N, L10n) django-multilingual django-modeltranslation VS   Леха
2. Джентльменский набор приложений 1. Читать сайт на родном языке  (I18N, L10n) django-multilingual Хранение:  - дополнительная таблица переводов   Оценка:  + переводы в отдельных таблицах   + {{ title_any }} - быстродействие - сложность поддержки - поддержка South - изменение models.py django-modeltranslation VS
2. Джентльменский набор приложений 1. Читать сайт на родном языке  (I18N, L10n) django-multilingual Хранение:  - дополнительная таблица переводов   Оценка:  + переводы в отдельных таблицах   + {{ title_any }} - быстродействие - сложность поддержки - поддержка South - изменение models.py django-modeltranslation Хранение:  - добавление полей: title_en, title_ru... Оценка :   + скорость  + простота + models.py - не меняется  + поддержка South + развитие проекта    VS
2. Джентльменский набор приложений 1. Читать сайт на родном языке  (I18N, L10n) django-multilingual Хранение:  - дополнительная таблица переводов   Оценка:  + переводы в отдельных таблицах   + {{ title_any }} - быстродействие - сложность поддержки - поддержка South - изменение models.py django-modeltranslation Хранение:  - добавление полей: title_en, title_ru... Оценка :   + скорость  + простота + models.py - не меняется  + поддержка South + развитие проекта                     Советуем !    VS
2. Джентльменский набор приложений 1. Читать сайт на родном языке  (I18N, L10n) gettext Стандартная, проверенная временем  библиотека .   Django одобряет, поддержка встроена rosetta   Редактирование констант через админку + localeurl   Переключаем языки через URL path: http://example.com/en/
2. Джентльменский набор приложений 1. Читать сайт на родном языке  (I18N, L10n)
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) Рост
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) TinyMCE   Кроссбраузерный RTE редактор, который все  знают     Подходит для простых людей  Markitup     OR  
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) TinyMCE   Кроссбраузерный RTE редактор, который все  знают     Подходит для простых людей  Markitup     Создание Rich Text при помощи языка разметки: Html, Textile, Wiki Syntax, Markdown, BBcode   Лучше для нас, IT- шников, блоггеров  OR  
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) FileBrowser  
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) FileBrowser   + полноценная медиа - библиотека + интеграция с TinyMCE + работа с изображениями  (thumbnails, ...)
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) FileBrowser   + полноценная медиа-библиотека + интеграция с TinyMCE + работа с изображениями  (thumbnails, ...)
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) admin-tools   Как выглядит Django admin без admin-tools     Леха
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) admin-tools   Как выглядит Django admin без admin-tools    
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) admin-tools   Включаем!    
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) admin-tools   Включаем! Что мы получили: + стиль заказчика + расположение элементов  + работы на час      
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) admin-tools   + стиль заказчика + расположение элементов  + работа на час   grappelli   + упор на доп. ф-ции      для apps - больше нет dashboard - путаница с TinyMCE VS   Рост
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) admin-tools   + стиль заказчика + расположение элементов  + работа на час         Советуем! grappelli   + упор на доп. ф-ции      для apps - больше нет dashboard - путаница с TinyMCE VS
2. Джентльменский набор приложений 3.Найти нужную информацию  (поиск, теги)
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) django-haystack    Haystack - унифицированное API для различных full-search провайдеров  (Solr, Whoosh, Xapian)  
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) django-haystack    Haystack - унифицированное API для различных full-search провайдеров  (Solr, Whoosh, Xapian)    whoosh   Whoosh - pure-python search engine +
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) django-haystack    Haystack - унифицированное API для различных full-search провайдеров (Solr, Whoosh, Xapian    whoosh   Whoosh - pure-python search engine Советуем ! +
2. Джентльменский набор приложений 2. Быстро и просто наполнять контент  (Admin) django-haystack    Haystack - унифицированное API для различных full-search провайдеров (Solr, Whoosh, Xapian    django-tagging     Добавление тагов к любым моделям  whoosh   Whoosh - pure-python search engine Советуем ! +
2. Джентльменский набор приложений 4. Еще много чего  (twitter, RSS, регистрация, ...) Леха
2. Джентльменский набор приложений Вывод Гибкость + экономия времени Проверено на нашем опыте.  Полезный ресурс!  http://djangopackages.com/    
Развертывание и поддержка Рост
3. Развертывание и поддержка Что нам нужно для полного счастья? 1. Производительность  (само собой)   2. Надежность  (чтоб клиенты по ночам не звонили) 3. Легкость развертывания новых проектов  (желательно одним движением)   4. Легкость поддержки и обновления  (а что если у нас будет не 3 проекта, а 50??)
Развертывание мультипроектного окружения  (хостинг)   Леха
3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 1. С чего мы начинали
3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 1. С чего мы начинали
3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 2. Уже лучше....
3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 2. Уже лучше....
3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 2. Уже лучше.... + производительность   + надежность   + легкость обновления
Поддержка
3. Поддержка Обновления БД Начинали  django-evolution
3. Поддержка Обновления БД Начинали  django-evolution + простота    - нет конроля за версиями - не работает в сложных случаях  - поддержка third party apps
3. Поддержка Обновления БД Начинали  django-evolution + простота    - нет конроля за версиями - не работает в сложных случаях  - поддержка third party apps  Пришли к south
3. Поддержка Обновления БД Начинали  django-evolution + простота    - нет конроля за версиями - не работает в сложных случаях  - поддержка third party apps  Пришли к south + версионирование изменений + возможность сложных миграций + де-факто стандарт   - больше времени на изучение
3. Поддержка Обновления БД Начинали  django-evolution + простота    - нет конроля за версиями - не работает в сложных случаях  - поддержка third party apps  Пришли к south + версионирование изменений + возможность сложных миграций + де-факто стандарт   - больше времени на изучение Советуем !
3. Развертывание и поддержка Окружение проекта virtualenv  +  pip Рост
3. Развертывание и поддержка Окружение проекта virtualenv  +  pip Кстати,  "pip require"  - re-usable список приложений к установке - очень удобно! Рост
3. Развертывание и поддержка Окружение проекта
3. Поддержка Что если вышел новый Django? ...а раньше мы копировали новый Django в корень проекта
3. Поддержка Что если вышло новое приложение? Пока-что мы храним все приложения  внутри каждого проекта  (через svn:externals) со всеми вытекающими радостями!
3. Поддержка Что если стороннее приложение повреждено? ,[object Object]
3. Поддержка Что если стороннее приложение повреждено? ,[object Object],[object Object]
3. Поддержка Что если стороннее приложение повреждено? ,[object Object],[object Object],[object Object]
3. Поддержка Что если стороннее приложение повреждено? ,[object Object],[object Object],[object Object]
Доклад завершён! Леха + Рост
Время вопросов Мы надеемся, что это была полезная пища для мозга
Спасибо за внимание!         Rostislav Bryzgunov E-Mail:    rostislav.bryzgunov@webriders.com.ua Skype:     rostislav.brizgunov LinkedIn:  rbrizgunov Habrahabr: kottenator    Olexiy Strashko E-Mail:   olexiy.strashko@webriders.com.ua Skype:    strashko.olexiy LinkedIn: olexiystrashko

More Related Content

Similar to Py con 2010_django_project_dev_full_circle

Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circlewebriders
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest
 
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнКоктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнKonstantin Likhter
 
Python-технология которую легко продавать!
Python-технология которую легко продавать!Python-технология которую легко продавать!
Python-технология которую легко продавать!Aleksey Nakorenko
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Andrey Listochkin
 
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Mail.ru Group
 
Рациональный подход в СЕО: высокая конкуренция, большие списки, мультирегиона...
Рациональный подход в СЕО: высокая конкуренция, большие списки, мультирегиона...Рациональный подход в СЕО: высокая конкуренция, большие списки, мультирегиона...
Рациональный подход в СЕО: высокая конкуренция, большие списки, мультирегиона...Александр Алаев
 
Продвижение по низкочастотным запросам - теория и практика
Продвижение по низкочастотным запросам - теория и практикаПродвижение по низкочастотным запросам - теория и практика
Продвижение по низкочастотным запросам - теория и практикаweb2win
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkGeorgy Turevich
 
Солянка seo хитростей для работы в арбитраже
Солянка seo хитростей для работы в арбитражеСолянка seo хитростей для работы в арбитраже
Солянка seo хитростей для работы в арбитражеNaZapad
 
Как обновить сайт и не забыть про SEO
Как обновить сайт и не забыть про SEOКак обновить сайт и не забыть про SEO
Как обновить сайт и не забыть про SEOJelena Khaliavka
 
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29Sergey Tihon
 
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Fwdays
 
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)Ontico
 
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...Омские ИТ-субботники
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрsportgid
 
Сергей Белов
Сергей БеловСергей Белов
Сергей БеловCodeFest
 
Python Meetup
Python Meetup Python Meetup
Python Meetup iQSpace
 

Similar to Py con 2010_django_project_dev_full_circle (20)

Django. Web project full circle
Django. Web project full circleDjango. Web project full circle
Django. Web project full circle
 
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
CodeFest 2012. Лихтер К, Таратухин И. — Коктейль «Skydive» или как мы делали ...
 
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-ОнлайнКоктейль Skydive или как мы мы делали 2ГИС-Онлайн
Коктейль Skydive или как мы мы делали 2ГИС-Онлайн
 
Python-технология которую легко продавать!
Python-технология которую легко продавать!Python-технология которую легко продавать!
Python-технология которую легко продавать!
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013
 
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
 
Рациональный подход в СЕО: высокая конкуренция, большие списки, мультирегиона...
Рациональный подход в СЕО: высокая конкуренция, большие списки, мультирегиона...Рациональный подход в СЕО: высокая конкуренция, большие списки, мультирегиона...
Рациональный подход в СЕО: высокая конкуренция, большие списки, мультирегиона...
 
Продвижение по низкочастотным запросам - теория и практика
Продвижение по низкочастотным запросам - теория и практикаПродвижение по низкочастотным запросам - теория и практика
Продвижение по низкочастотным запросам - теория и практика
 
Rich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend FrameworkRich UI on Dojo Toolkit and Zend Framework
Rich UI on Dojo Toolkit and Zend Framework
 
5 urok
5 urok5 urok
5 urok
 
Солянка seo хитростей для работы в арбитраже
Солянка seo хитростей для работы в арбитражеСолянка seo хитростей для работы в арбитраже
Солянка seo хитростей для работы в арбитраже
 
Как обновить сайт и не забыть про SEO. Вебинар WebPromoExperts #198
Как обновить сайт и не забыть про SEO. Вебинар WebPromoExperts #198Как обновить сайт и не забыть про SEO. Вебинар WebPromoExperts #198
Как обновить сайт и не забыть про SEO. Вебинар WebPromoExperts #198
 
Как обновить сайт и не забыть про SEO
Как обновить сайт и не забыть про SEOКак обновить сайт и не забыть про SEO
Как обновить сайт и не забыть про SEO
 
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
Natural Language Processing (NLP) with .NET for #dotnetby meetup-29
 
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
 
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
 
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
Сергей Белов
Сергей БеловСергей Белов
Сергей Белов
 
Python Meetup
Python Meetup Python Meetup
Python Meetup
 

Py con 2010_django_project_dev_full_circle

  • 1. Web Project  Full Circle Rostislav Bryzgunov E-Mail: rostislav.bryzgunov@webriders.com.ua Skype:     rostislav.brizgunov LinkedIn:  rbrizgunov Habrahabr: kottenator Olexiy Strashko E-Mail: olexiy.strashko@webriders.com.ua Skype:    strashko.olexiy LinkedIn: olexiystrashko
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 10. Структура проекта Об этом мало информации, как будто всё просто и понятно. Мы искали и почти ничего не нашли
  • 11. 1. Структура проекта Старт проекта # новый чистенький проект $ django-admin.py startproject Zakzak
  • 12. 1. Структура проекта Первые приложения # наши первые приложения $ manage.py startapp myapp # и начали плодиться папки в корне...
  • 13. 1. Структура проекта Дальше - больше # медиа, шаблоны, сторонние приложения - всё сюда же
  • 14. 1. Структура проекта Выделяем приложения # изолируем django apps # ... и библиотеки Леха
  • 15. 1. Структура проекта media, static & source # Медиа и статика - отдельно, исходный код - отдельно! # ... и мы говорим "НЕТ!" директории "templates/"
  • 16. 1. Структура проекта settings.py - теперь в пакете! # Проект растёт, settings.py "загрязняются", # что затрудняет создание новых проектов... Поэтому:
  • 17. 1. Структура проекта Результат Результат - небольшой open-source проект -  Django Template   Project : http://bitbucket.org/webriders/django-template-project/ Пришло время для вопросов (по первой части)
  • 19. 2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое, а не выдумывать велосипед
  • 20. 2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое, а не выдумывать велосипед 1. Читать сайт на родном языке (I18N, L10n)
  • 21. 2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое а не выдумывать велосипед 1. Читать сайт на родном языке (I18N, L10n) 2. Быстро и просто наполнять контент (Admin)
  • 22. 2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое а не выдумывать велосипед 1. Читать сайт на родном языке (I18N, L10n) 2. Быстро и просто наполнять контент (Admin)   3. Найти нужную информацию (поиск, теги)
  • 23. 2. Джентльменский набор приложений Что обычно нужно посетителям наших сайтов? и что хорошо бы использовать готовое а не выдумывать велосипед 1. Читать сайт на родном языке (I18N, L10n) 2. Быстро и просто наполнять контент (Admin)   3. Найти нужную информацию (поиск, теги)   4. Еще много чего (Twitter, RSS, регистрация, ...)  
  • 24. 2. Джентльменский набор приложений 1. Читать сайт на родном языке (I18N, L10n)
  • 25. 2. Джентльменский набор приложений 1. Читать сайт на родном языке (I18N, L10n)
  • 26. 2. Джентльменский набор приложений 1. Читать сайт на родном языке (I18N, L10n) django-multilingual django-modeltranslation VS Леха
  • 27. 2. Джентльменский набор приложений 1. Читать сайт на родном языке (I18N, L10n) django-multilingual Хранение:  - дополнительная таблица переводов   Оценка: + переводы в отдельных таблицах + {{ title_any }} - быстродействие - сложность поддержки - поддержка South - изменение models.py django-modeltranslation VS
  • 28. 2. Джентльменский набор приложений 1. Читать сайт на родном языке (I18N, L10n) django-multilingual Хранение:  - дополнительная таблица переводов   Оценка: + переводы в отдельных таблицах + {{ title_any }} - быстродействие - сложность поддержки - поддержка South - изменение models.py django-modeltranslation Хранение:  - добавление полей: title_en, title_ru... Оценка :   + скорость + простота + models.py - не меняется + поддержка South + развитие проекта  VS
  • 29. 2. Джентльменский набор приложений 1. Читать сайт на родном языке (I18N, L10n) django-multilingual Хранение:  - дополнительная таблица переводов   Оценка: + переводы в отдельных таблицах + {{ title_any }} - быстродействие - сложность поддержки - поддержка South - изменение models.py django-modeltranslation Хранение:  - добавление полей: title_en, title_ru... Оценка :   + скорость + простота + models.py - не меняется + поддержка South + развитие проекта                 Советуем !   VS
  • 30. 2. Джентльменский набор приложений 1. Читать сайт на родном языке (I18N, L10n) gettext Стандартная, проверенная временем библиотека .   Django одобряет, поддержка встроена rosetta   Редактирование констант через админку + localeurl   Переключаем языки через URL path: http://example.com/en/
  • 31. 2. Джентльменский набор приложений 1. Читать сайт на родном языке (I18N, L10n)
  • 32. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) Рост
  • 33. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) TinyMCE   Кроссбраузерный RTE редактор, который все  знают     Подходит для простых людей Markitup     OR  
  • 34. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) TinyMCE   Кроссбраузерный RTE редактор, который все  знают     Подходит для простых людей Markitup     Создание Rich Text при помощи языка разметки: Html, Textile, Wiki Syntax, Markdown, BBcode   Лучше для нас, IT- шников, блоггеров OR  
  • 35. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) FileBrowser  
  • 36. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) FileBrowser   + полноценная медиа - библиотека + интеграция с TinyMCE + работа с изображениями (thumbnails, ...)
  • 37. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) FileBrowser   + полноценная медиа-библиотека + интеграция с TinyMCE + работа с изображениями (thumbnails, ...)
  • 38. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) admin-tools   Как выглядит Django admin без admin-tools     Леха
  • 39. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) admin-tools   Как выглядит Django admin без admin-tools    
  • 40. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) admin-tools   Включаем!    
  • 41. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) admin-tools   Включаем! Что мы получили: + стиль заказчика + расположение элементов + работы на час    
  • 42. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) admin-tools   + стиль заказчика + расположение элементов + работа на час   grappelli   + упор на доп. ф-ции     для apps - больше нет dashboard - путаница с TinyMCE VS Рост
  • 43. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) admin-tools   + стиль заказчика + расположение элементов + работа на час        Советуем! grappelli   + упор на доп. ф-ции     для apps - больше нет dashboard - путаница с TinyMCE VS
  • 44. 2. Джентльменский набор приложений 3.Найти нужную информацию (поиск, теги)
  • 45. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) django-haystack   Haystack - унифицированное API для различных full-search провайдеров  (Solr, Whoosh, Xapian)  
  • 46. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) django-haystack   Haystack - унифицированное API для различных full-search провайдеров  (Solr, Whoosh, Xapian)    whoosh   Whoosh - pure-python search engine +
  • 47. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) django-haystack   Haystack - унифицированное API для различных full-search провайдеров (Solr, Whoosh, Xapian   whoosh   Whoosh - pure-python search engine Советуем ! +
  • 48. 2. Джентльменский набор приложений 2. Быстро и просто наполнять контент (Admin) django-haystack   Haystack - унифицированное API для различных full-search провайдеров (Solr, Whoosh, Xapian   django-tagging     Добавление тагов к любым моделям whoosh   Whoosh - pure-python search engine Советуем ! +
  • 49. 2. Джентльменский набор приложений 4. Еще много чего (twitter, RSS, регистрация, ...) Леха
  • 50. 2. Джентльменский набор приложений Вывод Гибкость + экономия времени Проверено на нашем опыте.  Полезный ресурс!  http://djangopackages.com/    
  • 52. 3. Развертывание и поддержка Что нам нужно для полного счастья? 1. Производительность (само собой)   2. Надежность (чтоб клиенты по ночам не звонили) 3. Легкость развертывания новых проектов (желательно одним движением) 4. Легкость поддержки и обновления (а что если у нас будет не 3 проекта, а 50??)
  • 54. 3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 1. С чего мы начинали
  • 55. 3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 1. С чего мы начинали
  • 56. 3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 2. Уже лучше....
  • 57. 3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 2. Уже лучше....
  • 58. 3. Развертывание и поддержка Развертывание мультипроектного окружения Версия 2. Уже лучше.... + производительность   + надежность   + легкость обновления
  • 60. 3. Поддержка Обновления БД Начинали django-evolution
  • 61. 3. Поддержка Обновления БД Начинали django-evolution + простота   - нет конроля за версиями - не работает в сложных случаях - поддержка third party apps
  • 62. 3. Поддержка Обновления БД Начинали django-evolution + простота   - нет конроля за версиями - не работает в сложных случаях - поддержка third party apps Пришли к south
  • 63. 3. Поддержка Обновления БД Начинали django-evolution + простота   - нет конроля за версиями - не работает в сложных случаях - поддержка third party apps Пришли к south + версионирование изменений + возможность сложных миграций + де-факто стандарт   - больше времени на изучение
  • 64. 3. Поддержка Обновления БД Начинали django-evolution + простота   - нет конроля за версиями - не работает в сложных случаях - поддержка third party apps Пришли к south + версионирование изменений + возможность сложных миграций + де-факто стандарт   - больше времени на изучение Советуем !
  • 65. 3. Развертывание и поддержка Окружение проекта virtualenv + pip Рост
  • 66. 3. Развертывание и поддержка Окружение проекта virtualenv + pip Кстати, "pip require"  - re-usable список приложений к установке - очень удобно! Рост
  • 67. 3. Развертывание и поддержка Окружение проекта
  • 68. 3. Поддержка Что если вышел новый Django? ...а раньше мы копировали новый Django в корень проекта
  • 69. 3. Поддержка Что если вышло новое приложение? Пока-что мы храним все приложения внутри каждого проекта  (через svn:externals) со всеми вытекающими радостями!
  • 70.
  • 71.
  • 72.
  • 73.
  • 75. Время вопросов Мы надеемся, что это была полезная пища для мозга
  • 76. Спасибо за внимание!        Rostislav Bryzgunov E-Mail:    rostislav.bryzgunov@webriders.com.ua Skype:     rostislav.brizgunov LinkedIn:  rbrizgunov Habrahabr: kottenator    Olexiy Strashko E-Mail:   olexiy.strashko@webriders.com.ua Skype:    strashko.olexiy LinkedIn: olexiystrashko