SlideShare a Scribd company logo
Курс «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 создать
собственное простое приложение. Я проверю и обсудим.
Спасибо за внимание

More Related Content

PDF
Backbone js
PPT
Tapestry it is simple
PDF
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
PPT
Введение в Spring
PPT
Cookies, session и другое в JSP
PDF
Лекция #7. Django ORM
PDF
Первые шаги после установки WordPress
Backbone js
Tapestry it is simple
Yury Glushkov.What should we build a website.Drupal Camp Kyiv 2011
Введение в Spring
Cookies, session и другое в JSP
Лекция #7. Django ORM
Первые шаги после установки WordPress

What's hot (20)

PDF
Backbone.js
PDF
C# Web. Занятие 01.
PDF
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
PDF
Шаблоны проектирования в Magento
PPTX
лабораторная работа №4 uml
PDF
Rambler.iOS #5: Подмодули в VIPER
PPT
Drupal организация разработки
PPTX
Лабораторная работа № 4. МАПО - диаграммы uml
PPT
Drupal -organizaciya_razrabotki
PDF
Внутреннее устройство и оптимизация бандла webpack
PDF
Zend Framework и Doctrine
PDF
Grails & Groovy
PDF
Разработка и deploy Drupal сайтов с помощью Features.
PDF
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
PPT
Контент ориентированное программирование
PDF
Ограничение доступа в ruby on rails
PPT
идеология Drupal 8 уже в drupal 7 вячеслав касихин
PDF
Презентация Игоря Сазонова на IT Global Meetup #5
Backbone.js
C# Web. Занятие 01.
Презентация «Bundle Transformer – инструмент для клиентской оптимизации в сре...
Шаблоны проектирования в Magento
лабораторная работа №4 uml
Rambler.iOS #5: Подмодули в VIPER
Drupal организация разработки
Лабораторная работа № 4. МАПО - диаграммы uml
Drupal -organizaciya_razrabotki
Внутреннее устройство и оптимизация бандла webpack
Zend Framework и Doctrine
Grails & Groovy
Разработка и deploy Drupal сайтов с помощью Features.
CSS-в-JS, HTML-в-JS, ВСЁ-в-JS. Все гораздо проще, когда всё вокруг JavaScript
Контент ориентированное программирование
Ограничение доступа в ruby on rails
идеология Drupal 8 уже в drupal 7 вячеслав касихин
Презентация Игоря Сазонова на IT Global Meetup #5
Ad

Similar to Backbone lesson 1 (20)

PDF
Backbone.js Профилактика сколиоза
PPT
Арсений Заречнев и Федор Шумов - Одностраничные приложения
PDF
Арсений Заречнев и Федор Шумов - Одностраничные приложения
PDF
C# Web. Занятие 16.
PDF
qweqwe
PPT
Rich-client, или Как я перестал боятся и полюбил велосипеды / Владимир Дупелев
PPTX
Backbone js for expert fridays.pptx
PPTX
Backbone Javascript Application
PDF
Опыт разработки эффективного SPA
PPTX
Node JS проблемы надежности, и пути их решения
PPTX
Full Stack разработка на JavaScript
PDF
Backbonejs Full Stack
PPTX
Сложные социальные приложения с помощью JS MVC фреймворков
PDF
Павел Юрийчук - Разработка приложений под мобильные браузеры
PDF
Mobile Web Apps development essentials
PDF
MarionetteJS. Shall we dance?
PDF
MVC in JavaScript
PDF
Современный фронтенд -- как не утонуть в море хайпа?
PDF
От заката до рассвета | Максим Безуглый | Zlit Tech
Backbone.js Профилактика сколиоза
Арсений Заречнев и Федор Шумов - Одностраничные приложения
Арсений Заречнев и Федор Шумов - Одностраничные приложения
C# Web. Занятие 16.
qweqwe
Rich-client, или Как я перестал боятся и полюбил велосипеды / Владимир Дупелев
Backbone js for expert fridays.pptx
Backbone Javascript Application
Опыт разработки эффективного SPA
Node JS проблемы надежности, и пути их решения
Full Stack разработка на JavaScript
Backbonejs Full Stack
Сложные социальные приложения с помощью JS MVC фреймворков
Павел Юрийчук - Разработка приложений под мобильные браузеры
Mobile Web Apps development essentials
MarionetteJS. Shall we dance?
MVC in JavaScript
Современный фронтенд -- как не утонуть в море хайпа?
От заката до рассвета | Максим Безуглый | Zlit Tech
Ad

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