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 sur 13

Recommandé

Backbone js par
Backbone jsBackbone js
Backbone jsEugene Solovyov
1.1K vues10 diapositives
Tapestry it is simple par
Tapestry it is simpleTapestry it is simple
Tapestry it is simpleAnna Shymchenko
546 vues17 diapositives
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011 par
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 vues14 diapositives
Введение в Spring par
Введение в SpringВведение в Spring
Введение в SpringUnguryan Vitaliy
3.1K vues67 diapositives
JSP par
JSPJSP
JSPUnguryan Vitaliy
2.6K vues46 diapositives
Cookies, session и другое в JSP par
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSPUnguryan Vitaliy
1.7K vues12 diapositives

Contenu connexe

Tendances

Backbone.js par
Backbone.jsBackbone.js
Backbone.jsEduard Antsupov
1.8K vues18 diapositives
C# Web. Занятие 01. par
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.Igor Shkulipa
1.1K vues75 diapositives
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре... par
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...Andrey Taritsyn
2.1K vues37 diapositives
Шаблоны проектирования в Magento par
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
2.3K vues25 diapositives
лабораторная работа №4 uml par
лабораторная работа №4 umlлабораторная работа №4 uml
лабораторная работа №4 umlNatasha Lysakova
1.2K vues21 diapositives
Rambler.iOS #5: Подмодули в VIPER par
Rambler.iOS #5: Подмодули в VIPERRambler.iOS #5: Подмодули в VIPER
Rambler.iOS #5: Подмодули в VIPERRAMBLER&Co
1.4K vues15 diapositives

Tendances(20)

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

Similaire à Backbone lesson 1

Паттерны проектирования par
Паттерны проектированияПаттерны проектирования
Паттерны проектированияITCP Community
127 vues26 diapositives
Web application framework par
Web application frameworkWeb application framework
Web application frameworkViktor Chukhantsev
311 vues7 diapositives
C# Web. Занятие 09. par
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.Igor Shkulipa
1.6K vues60 diapositives
ASP.NET MVC: new era? par
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?Alexander Konduforov
1.6K vues20 diapositives
ASP.NET, MVC, ASP.NET MVC par
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
2.6K vues29 diapositives
Сложные социальные приложения с помощью JS MVC фреймворков par
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворковz-tech
751 vues32 diapositives

Similaire à Backbone lesson 1(20)

Паттерны проектирования par ITCP Community
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
ITCP Community127 vues
C# Web. Занятие 09. par Igor Shkulipa
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
Igor Shkulipa1.6K vues
ASP.NET, MVC, ASP.NET MVC par GetDev.NET
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
GetDev.NET2.6K vues
Сложные социальные приложения с помощью JS MVC фреймворков par z-tech
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворков
z-tech751 vues
Backbone.js Профилактика сколиоза par MitinPavel
Backbone.js Профилактика сколиоза Backbone.js Профилактика сколиоза
Backbone.js Профилактика сколиоза
MitinPavel976 vues
Frontend: Путешествие в мир модульных загрузчиков par CodeFest
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest957 vues
Joomla (Админка) www.hotwebstudio.ru par hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
hotwebstudio.ru 520 vues
Mvc, mvp and mvvm: A comparison of architectural patterns par 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 vues
JavaScript Базовый. Занятие 09. par Igor Shkulipa
JavaScript Базовый. Занятие 09.JavaScript Базовый. Занятие 09.
JavaScript Базовый. Занятие 09.
Igor Shkulipa413 vues
Введение в веб каркас Struts2 par Evgeniy Krivosheev
Введение в веб каркас Struts2Введение в веб каркас Struts2
Введение в веб каркас Struts2
Evgeniy Krivosheev3.5K vues
JavaScript-модули "из прошлого в будущее" par oelifantiev
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
oelifantiev1.7K vues
Деплоймент и распространение обновлений для веб-приложений par Magecom Ukraine
Деплоймент и распространение обновлений для веб-приложенийДеплоймент и распространение обновлений для веб-приложений
Деплоймент и распространение обновлений для веб-приложений
Magecom Ukraine638 vues

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 создать собственное простое приложение. Я проверю и обсудим.