Backbone lesson 1

Mihail Skida
Mihail SkidaW3 Ukraine
Курс «Backbone.js +
                  Underscore.js»




Подготовил: Михаил Скида
Занятие 1
Знакомство с Backbone.js
Введение в MVC
MVC (model-view-controller) – один из шаблонов проектирования
(MVVM, MVP и др.) приложения. Применяется как в front-end, так в back-
end разработке. Используется для построения архитектурного каркаса
приложения.

MVC позволяет разделить данные, представление и обработку действий
пользователя на три отдельных компонента:

-   Модель (Model)
-   Вид или Представление (View)
-   Контроллер (Controller)

Основная цель применения паттерна состоит в разделении бизнес-
логики (model) от её визуализации (view). За счет такого разделения
повышается возможность повторного использования кода.
Введение в MVC
Графически, это можно представить след. образом:




Пользователь через интерфейс управляет контроллером, который
изменяет состояние модели и уведомляет представление.
Представление, используя текущее состояние модели, строит
пользовательский интерфейс.
Введение в MVC
Подробнее о компонентах паттерна:

Модель - используется для управления данными: преимущественно
записью и чтением данных с сервера и их обработкой. Модель содержит
логическую составляющую приложения.

Вью - отображает данные, полученные от модели в нужном формате,
информирует модель о действиях пользователя, собирает данные из
DOM’a. По сути - это I/O компонент.

Контроллер - первым получает запрос, обрабатывает его, запускает
модель, принимая от нее ответ, который направляет в уровень
представления (вью). Маршрутизатор приложения.
Backbone MVC
Фреймворк Backbone.js основан на MVC-паттерне, но с некоторыми
отличиями от классической реализации:

1. Добавляется 4й компонент – Коллекция (Collection)

Коллекция - это сортированный набор моделей, который умеет
обращаться с этими моделями, фильтровать или сортировать их. Также
коллекции могут работать с сервисами по REST интерфейсу (CRUD, мы к
нему вернёмся позже).

2. В Backbone роль контроллера выполняет компонент Router, и он
используются, в первую очередь, для маршрутизации приложений c
использованием хэш-тегов (#).
Backbone.js
Backbone.js – лёгкий и гибкий JS-фреймворк, предоставляющий
собственный широкий набор методов для каждого из компонентов MVC
и имеющий жесткую зависимость только на Underscore.js (jQuery –
опционально ).

Основан на принципах ООП (классы и объекты), наследования
(прототипы и наследники), и, ко всему, поддерживает расширение
(extend) классов и объектов.

Является мощным инструментом в руках разработчика, позволяющим
использовать структурированный подход к разработке приложения,
минимизировать работу с DOM, проектировать архитектуру приложения
в собственных сущностях.
Вопрос


         Зачем эти сложности?
Зачем использовать Backbone.js если у нас есть прекрасный jQuery и
      разработка на нём (чего уж там) порой быстрее в разы?
Плюшки
Да, это справедливо для одно страничкой хоум-пейджи. Но если вы
собираетесь разработать мало-мальски сложное приложение, особенно
с кучей AJAX-коллов - Backbone незаменим.


1. Разработка архитектуры приложения ДО написания бизнес-кода.
2. Нет лапше-кода.
3. Нет завязки на данные из DOM.
4. Легко масштабировать, рефакторить, саппортить.
5. Куча прекрасных методов «из коробки».
6. Высокая ре-юзабельность кода.




Резюмирую постом «Why would you use Backbone.js?.» (перевод).
Вопросы
Что почитать
http://backbonejs.com – оф. сайт. Описание методов, примеры, инсталл.
http://backbonejs.ru – перевод. Давно не обновляется.
http://backbonetutorials.com/ - туториалы и посты
http://habrahabr.ru/post/127049/ - пример написания простого
приложения
Что поделать
Попробуйте по примеру http://habrahabr.ru/post/127049 создать
собственное простое приложение. Я проверю и обсудим.
Спасибо за внимание
1 de 13

Recomendados

Backbone js por
Backbone jsBackbone js
Backbone jsEugene Solovyov
1.1K visualizações10 slides
Tapestry it is simple por
Tapestry it is simpleTapestry it is simple
Tapestry it is simpleAnna Shymchenko
546 visualizações17 slides
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011 por
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011camp_drupal_ua
312 visualizações14 slides
Введение в Spring por
Введение в SpringВведение в Spring
Введение в SpringUnguryan Vitaliy
3.1K visualizações67 slides
JSP por
JSPJSP
JSPUnguryan Vitaliy
2.6K visualizações46 slides
Cookies, session и другое в JSP por
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSPUnguryan Vitaliy
1.7K visualizações12 slides

Mais conteúdo relacionado

Mais procurados

Backbone.js por
Backbone.jsBackbone.js
Backbone.jsEduard Antsupov
1.8K visualizações18 slides
C# Web. Занятие 01. por
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.Igor Shkulipa
1.1K visualizações75 slides
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре... por
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Andrey Taritsyn
2.1K visualizações37 slides
Шаблоны проектирования в Magento por
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
2.3K visualizações25 slides
лабораторная работа №4 uml por
лабораторная работа №4 umlлабораторная работа №4 uml
лабораторная работа №4 umlNatasha Lysakova
1.2K visualizações21 slides
Rambler.iOS #5: Подмодули в VIPER por
Rambler.iOS #5: Подмодули в VIPERRambler.iOS #5: Подмодули в VIPER
Rambler.iOS #5: Подмодули в VIPERRAMBLER&Co
1.4K visualizações15 slides

Mais procurados(20)

Backbone.js por Eduard Antsupov
Backbone.jsBackbone.js
Backbone.js
Eduard Antsupov1.8K visualizações
C# Web. Занятие 01. por Igor Shkulipa
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
Igor Shkulipa1.1K visualizações
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре... por Andrey Taritsyn
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Andrey Taritsyn2.1K visualizações
Шаблоны проектирования в Magento por Pavel Usachev
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
Pavel Usachev2.3K visualizações
лабораторная работа №4 uml por Natasha Lysakova
лабораторная работа №4 umlлабораторная работа №4 uml
лабораторная работа №4 uml
Natasha Lysakova1.2K visualizações
Rambler.iOS #5: Подмодули в VIPER por RAMBLER&Co
Rambler.iOS #5: Подмодули в VIPERRambler.iOS #5: Подмодули в VIPER
Rambler.iOS #5: Подмодули в VIPER
RAMBLER&Co1.4K visualizações
Drupal организация разработки por Anna Fedoruk
Drupal   организация разработкиDrupal   организация разработки
Drupal организация разработки
Anna Fedoruk2.3K visualizações
Лабораторная работа № 4. МАПО - диаграммы uml por PresentationCreater
Лабораторная работа № 4. МАПО - диаграммы umlЛабораторная работа № 4. МАПО - диаграммы uml
Лабораторная работа № 4. МАПО - диаграммы uml
PresentationCreater1.9K visualizações
Drupal -organizaciya_razrabotki por drupalconf
Drupal  -organizaciya_razrabotkiDrupal  -organizaciya_razrabotki
Drupal -organizaciya_razrabotki
drupalconf257 visualizações
Внутреннее устройство и оптимизация бандла webpack por Alexey Ivanov
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpack
Alexey Ivanov811 visualizações
Zend Framework и Doctrine por Stepan Tanasiychuk
Zend Framework и DoctrineZend Framework и Doctrine
Zend Framework и Doctrine
Stepan Tanasiychuk3K visualizações
Grails & Groovy por Denys Sosuliev
Grails & GroovyGrails & Groovy
Grails & Groovy
Denys Sosuliev368 visualizações
Разработка и deploy Drupal сайтов с помощью Features. por Eugene Fidelin
Разработка и deploy Drupal сайтов с помощью Features.Разработка и deploy Drupal сайтов с помощью Features.
Разработка и deploy Drupal сайтов с помощью Features.
Eugene Fidelin2.1K visualizações
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript por Alexey Ivanov
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScriptCSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
Alexey Ivanov1.3K visualizações
Контент ориентированное программирование por ksmster
Контент ориентированное программированиеКонтент ориентированное программирование
Контент ориентированное программирование
ksmster515 visualizações
идеология Drupal 8 уже в drupal 7 вячеслав касихин por drupalconf
идеология Drupal 8 уже в drupal 7 вячеслав касихинидеология Drupal 8 уже в drupal 7 вячеслав касихин
идеология Drupal 8 уже в drupal 7 вячеслав касихин
drupalconf1.2K visualizações
Презентация Игоря Сазонова на IT Global Meetup #5 por Lilia Smirnova
Презентация Игоря Сазонова на IT Global Meetup #5Презентация Игоря Сазонова на IT Global Meetup #5
Презентация Игоря Сазонова на IT Global Meetup #5
Lilia Smirnova329 visualizações

Similar a Backbone lesson 1

Паттерны проектирования por
Паттерны проектированияПаттерны проектирования
Паттерны проектированияITCP Community
131 visualizações26 slides
Web application framework por
Web application frameworkWeb application framework
Web application frameworkViktor Chukhantsev
311 visualizações7 slides
C# Web. Занятие 09. por
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.Igor Shkulipa
1.6K visualizações60 slides
ASP.NET MVC: new era? por
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?Alexander Konduforov
1.6K visualizações20 slides
ASP.NET, MVC, ASP.NET MVC por
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
2.6K visualizações29 slides
Сложные социальные приложения с помощью JS MVC фреймворков por
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворковz-tech
751 visualizações32 slides

Similar a Backbone lesson 1(20)

Паттерны проектирования por ITCP Community
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
ITCP Community131 visualizações
Web application framework por Viktor Chukhantsev
Web application frameworkWeb application framework
Web application framework
Viktor Chukhantsev311 visualizações
C# Web. Занятие 09. por Igor Shkulipa
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
Igor Shkulipa1.6K visualizações
ASP.NET MVC: new era? por Alexander Konduforov
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
Alexander Konduforov1.6K visualizações
ASP.NET, MVC, ASP.NET MVC por GetDev.NET
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
GetDev.NET2.6K visualizações
Сложные социальные приложения с помощью JS MVC фреймворков por z-tech
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворков
z-tech751 visualizações
Backbone.js Профилактика сколиоза por MitinPavel
Backbone.js Профилактика сколиоза Backbone.js Профилактика сколиоза
Backbone.js Профилактика сколиоза
MitinPavel976 visualizações
Frontend: Путешествие в мир модульных загрузчиков por CodeFest
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest957 visualizações
Joomla (Админка) www.hotwebstudio.ru por hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
hotwebstudio.ru 520 visualizações
ASP.NET MVC por GetDev.NET
ASP.NET MVCASP.NET MVC
ASP.NET MVC
GetDev.NET784 visualizações
Mvc, mvp and mvvm: A comparison of architectural patterns por Ivan Dyachenko
Mvc, mvp and mvvm: A comparison of architectural patternsMvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patterns
Ivan Dyachenko2.6K visualizações
Java 2 - Java Intro por Alexander Babich
Java 2 - Java IntroJava 2 - Java Intro
Java 2 - Java Intro
Alexander Babich557 visualizações
JavaScript Базовый. Занятие 09. por Igor Shkulipa
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
Igor Shkulipa413 visualizações
Введение в веб каркас Struts2 por Evgeniy Krivosheev
Введение в веб каркас Struts2Введение в веб каркас Struts2
Введение в веб каркас Struts2
Evgeniy Krivosheev3.5K visualizações
JavaScript-модули "из прошлого в будущее" por oelifantiev
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
oelifantiev1.7K visualizações
Деплоймент и распространение обновлений для веб-приложений por Magecom Ukraine
Деплоймент и распространение обновлений для веб-приложенийДеплоймент и распространение обновлений для веб-приложений
Деплоймент и распространение обновлений для веб-приложений
Magecom Ukraine638 visualizações

Backbone lesson 1

  • 1. Курс «Backbone.js + Underscore.js» Подготовил: Михаил Скида
  • 3. Введение в MVC MVC (model-view-controller) – один из шаблонов проектирования (MVVM, MVP и др.) приложения. Применяется как в front-end, так в back- end разработке. Используется для построения архитектурного каркаса приложения. MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента: - Модель (Model) - Вид или Представление (View) - Контроллер (Controller) Основная цель применения паттерна состоит в разделении бизнес- логики (model) от её визуализации (view). За счет такого разделения повышается возможность повторного использования кода.
  • 4. Введение в MVC Графически, это можно представить след. образом: Пользователь через интерфейс управляет контроллером, который изменяет состояние модели и уведомляет представление. Представление, используя текущее состояние модели, строит пользовательский интерфейс.
  • 5. Введение в MVC Подробнее о компонентах паттерна: Модель - используется для управления данными: преимущественно записью и чтением данных с сервера и их обработкой. Модель содержит логическую составляющую приложения. Вью - отображает данные, полученные от модели в нужном формате, информирует модель о действиях пользователя, собирает данные из DOM’a. По сути - это I/O компонент. Контроллер - первым получает запрос, обрабатывает его, запускает модель, принимая от нее ответ, который направляет в уровень представления (вью). Маршрутизатор приложения.
  • 6. Backbone MVC Фреймворк Backbone.js основан на MVC-паттерне, но с некоторыми отличиями от классической реализации: 1. Добавляется 4й компонент – Коллекция (Collection) Коллекция - это сортированный набор моделей, который умеет обращаться с этими моделями, фильтровать или сортировать их. Также коллекции могут работать с сервисами по REST интерфейсу (CRUD, мы к нему вернёмся позже). 2. В Backbone роль контроллера выполняет компонент Router, и он используются, в первую очередь, для маршрутизации приложений c использованием хэш-тегов (#).
  • 7. Backbone.js Backbone.js – лёгкий и гибкий JS-фреймворк, предоставляющий собственный широкий набор методов для каждого из компонентов MVC и имеющий жесткую зависимость только на Underscore.js (jQuery – опционально ). Основан на принципах ООП (классы и объекты), наследования (прототипы и наследники), и, ко всему, поддерживает расширение (extend) классов и объектов. Является мощным инструментом в руках разработчика, позволяющим использовать структурированный подход к разработке приложения, минимизировать работу с DOM, проектировать архитектуру приложения в собственных сущностях.
  • 8. Вопрос Зачем эти сложности? Зачем использовать Backbone.js если у нас есть прекрасный jQuery и разработка на нём (чего уж там) порой быстрее в разы?
  • 9. Плюшки Да, это справедливо для одно страничкой хоум-пейджи. Но если вы собираетесь разработать мало-мальски сложное приложение, особенно с кучей AJAX-коллов - Backbone незаменим. 1. Разработка архитектуры приложения ДО написания бизнес-кода. 2. Нет лапше-кода. 3. Нет завязки на данные из DOM. 4. Легко масштабировать, рефакторить, саппортить. 5. Куча прекрасных методов «из коробки». 6. Высокая ре-юзабельность кода. Резюмирую постом «Why would you use Backbone.js?.» (перевод).
  • 11. Что почитать http://backbonejs.com – оф. сайт. Описание методов, примеры, инсталл. http://backbonejs.ru – перевод. Давно не обновляется. http://backbonetutorials.com/ - туториалы и посты http://habrahabr.ru/post/127049/ - пример написания простого приложения
  • 12. Что поделать Попробуйте по примеру http://habrahabr.ru/post/127049 создать собственное простое приложение. Я проверю и обсудим.