Разработка Backbone.js приложений

Для возможности скачивать книги Вам необходимо пройти

Регистрацию

Разработка Backbone.js приложений


Автор: Османи Э.

Год: 2014

Backbone — это javascript-библиотека для тяжелых фронтэнд javascript-приложений, таких, например, как gmail или twitter. В таких приложениях вся логика интерфейса ложится на браузер, что дает очень значительное преимущество в скорости интерфейса.

Цель этой книги — стать удобным источником информации в помощь тем, кто разрабатывает реальные приложения с использованием Backbone.

Издание охватывает теорию MVC и методы создания приложений с помощью моделей, представлений, коллекций и маршрутов библиотеки Backbone; модульную разработку ПО с помощью Backbone.

Js и AMD (посредством библиотеки RequireJS), решение таких типовых задач, как использование вложенных представлений, устранение проблем с маршрутизацией средствами Backbone и jQuery Mobile, а также многие другие вопросы.

Backbone — это javascript-библиотека для тяжелых фронтэнд javascript-приложений, таких, например, как gmail или twitter. В таких приложениях вся логика интерфейса ложится на браузер, что дает очень значительное преимущество в скорости интерфейса.

Цель этой книги — стать удобным источником информации в помощь тем, кто разрабатывает реальные приложения с использованием Backbone.

Издание охватывает теорию MVC и методы создания приложений с помощью моделей, представлений, коллекций и маршрутов библиотеки Backbone; модульную разработку ПО с помощью Backbone.

Js и AMD (посредством библиотеки RequireJS), решение таких типовых задач, как использование вложенных представлений, устранение проблем с маршрутизацией средствами Backbone и jQuery Mobile, а также многие другие вопросы.

Кол-во страниц:352 Язык:Русский Издательство:Питер

Предисловие 11
Целевая аудитория 12
Авторы книги 12
Как читать эту книгу 12
Использование примеров кода 13
Благодарности 13
Глава 1. Введение 15
Что такое MVC 16
Что такое Backbone.js 16
В каких случаях необходим MVC-фреймворк на JavaScript 18
Чем хороша библиотека Backbone.js 19
О чем эта книга 20
Глава 2. Ключевые понятия 23
Паттерн MVC 23
MVC в Smalltalk-80 24
MVC во Всемирной паутине 25
MVC на клиентской стороне и одностраничные приложения 28
MVC на клиентской стороне: стиль Backbone 29
Особенности реализации 32
Модели 33
Представления 34
Что нам дает MVC 37
Углубленное изучение MVC 37
Выводы 38
Дополнительная информация 38
Коротко о главном 38
Библиотека Backbone.js 38
Примеры использования 39
Глава 3. Основы Backbone 43
Подготовительные действия 43
Модели 44
Инициализация 45
Значения по умолчанию 45
Считывание и присваивание значений 46
Прослушивание изменений модели 48
Валидация 50
Представления 51
Создание новых представлений 52
Что такое El 52
Коллекции 58
Добавление и удаление моделей 58
Считывание моделей 59
Прослушивание событий 60
Перезапись и обновление коллекций 62
Вспомогательные функции Underscore 64
API цепочек команд 68
Сохранение моделей с помощью RESTful API 69
Считывание моделей с сервера 69
Сохранение моделей на сервер 69
Удаление моделей с сервера 70
Параметры 71
События 71
on(), off() и trigger() 72
listenTo() и stopListening() 75
События и представления 76
Маршрутизаторы 77
Backbone.history 79
API синхронизации библиотеки Backbone 82
Переопределение Backbone.sync 83
Зависимости 85
Выводы 86
Глава 4. Упражнение 1: управление задачами — ваше первое приложение на Backbone.js. 87
Статический HTML 88
Заголовок и сценарии 88
HTML-код приложения 89
Шаблоны 90
Модель задачи 91
Коллекция задач 92
Представление приложения 93
Представления отдельных задач 98
Запуск приложения 100
Приложение в действии 101
Завершение и удаление задач 103
Маршрутизация задач 106
Выводы 107
Глава 5. Упражнение 2: книжная библиотека — ваше первое RESTful-приложение на Backbone.js 108
Подготовительные действия 108
Создание модели, коллекции, представлений и объекта приложения 113
Создание интерфейса 115
Добавление моделей 116
Удаление моделей 117
Создание сервера базы данных 117
Установка Node.js, npm и MongoDB 118
Установка модулей узлов 118
Создание простого веб-сервера 119
Подключение к базе данных 122
Взаимодействие с сервером 129
Выводы 136
Глава 6. Расширения Backbone 137
MarionetteJS (Backbone.Marionette) 137
Вспомогательный код отображения 139
Сокращение вспомогательного кода с помощью класса Marionette.ItemView 141
Управление памятью 141
Управление регионами 144
Приложение для управления задачами на основе Marionette 146
TodoMVC.js 146
Контроллеры 151
CompositeView 151
TodoMVC.TodoList.Views.js 152
Удобнее ли поддерживать приложения на Marionette 155
Marionette и гибкость 156
Простая версия, автор — Джеррод Оверсон ( Jarrod Overson) 156
RequireJS-версия, автор тот же 156
Версия с Marionette-модулями, автор — Дерик Бейли 156
Дополнительная информация 157
Thorax 157
Простейшее приложение 158
Встраивание дочерних представлений 158
Помощники представлений 159
Помощник collection 160
Настраиваемые атрибуты HTML-данных 161
Ресурсы, посвященные Thorax 163
Выводы 164
Глава 7. Типичные проблемы и пути их решения 165
Работа с вложенными представлениями 165
Проблема 165
Решение 1 165
Решение 2 166
Решение 3 167
Решение 4 167
Управление моделями во вложенных представлениях 169
Проблема 169
Решение 169
Отображение родительского представления из дочернего представления 171
Проблема 171
Решение 171
Удаление иерархий представлений 172
Проблема 172
Решение 172
Отображение иерархий представлений 173
Проблема 173
Решение 173
Работа с вложенными моделями и коллекциями 174
Проблема 174
Решение 174
Улучшенная валидация свойств моделей 175
Проблема 175
Решение 175
Backbone.validateAll 177
Backbone.Validation 179
Классы для валидации отдельных форм 179
Предотвращение конфликтов при использовании нескольких версий Backbone 180
Проблема 180
Решение 180
Создание иерархий моделей и представлений 180
Проблема 180
Решение 181
Вызов переопределенных методов 182
Backbone-Super 184
Агрегаторы событий и посредники 184
Проблема 184
Решение 184
Агрегатор событий 185
Посредник 186
Сходства и различия 187
Когда и какие отношения использовать 188
Совместное использование агрегатора событий и посредника 190
Язык паттернов: семантика 191
Глава 8. Модульная разработка 192
Организация модулей с помощью RequireJS и AMD 193
Проблемы поддержки множества файлов сценариев 193
Для чего требуется улучшать управление зависимостями 194
Асинхронное определение модулей (AMD) 194
Создание AMD-модулей с помощью RequireJS 195
Начало работы с RequireJS 196
Пример совместного использования Require.js и Backbone 199
Внешнее хранение шаблонов с помощью библиотеки RequireJS и плагина Text 203
Оптимизация Backbone-приложений для рабочей среды с помощью оптимизатора RequireJS 204
Заключение 207
Глава 9. Упражнение 3: ваше первое модульное приложение на Backbone и RequireJS 209
Введение 209
Разметка 210
Конфигурационные параметры 211
Создание модулей из моделей, представлений и коллекций 212
Загрузка модулей с использованием маршрутов 217
Конфигурация модуля в формате JSON 217
Маршрутизатор загрузчика модулей 218
Обработка pushState с использованием NodeJS 219
Пакеты активов — альтернатива управлению зависимостями 220
Глава 10. Пагинация запросов и коллекций Backbone.js 222
Backbone.Paginator 223
Реальные примеры 224
Paginator.requestPager 225
Вспомогательные методы 228
Paginator.clientPager 229
Вспомогательные методы 231
Замечания о реализации 234
Плагины 235
Инициализация 236
Стили 237
Заключение 239
Глава 11. Backbone Boilerplate и Grunt-BBB 240
Начало работы 242
Создание нового проекта 242
index.html 243
config.js 244
main.js 246
app.js 247
Создание модулей Backbone Boilerplate 249
router.js 251
Другие полезные инструменты и проекты 252
Yeoman 252
Backbone DevTools 254
Заключение 254
Глава 12. Backbone и jQuery Mobile 256
Разработка мобильных приложений с помощью jQuery Mobile 256
Принцип прогрессивного улучшения виджетов в jQMobile 257
Система навигации jQuery Mobile 258
Настройка Backbone-приложения для работы с jQuery Mobile 260
Рабочий цикл приложения на основе Backbone и jQueryMobile 263
Переход на страницу с фиксированным представлением, наследование класса BasicView 265
Управление шаблонами мобильных страниц 265
Управление DOM и методом $.mobile.changePage 268
Использование сложных методов jQM в Backbone 271
Динамическое изменение DOM 271
Перехват сообщений jQuery Mobile 273
Производительность 274
Эффективная поддержка многоплатформенности 275
Глава 13. Jasmine 281
Разработка через реализацию поведения 281
Тестовые наборы, спецификации и агенты 283
beforeEach() и afterEach() 287
Общая область видимости 289
Подготовка к тестированию 290
Разработка через тестирование с использованием Backbone 291
Модели 291
Коллекции 293
Представления 295
Тестирование представлений 296
Упражнение 304
Дополнительная литература 304
Заключение 304
Глава 14. QUnit. 305
Настройка 305
Пример HTML-кода с QUnit-совместимой разметкой 305
Операторы контроля 308
Простой тестовый вариант с использованием функции test 308
Сравнение фактического и ожидаемого результата функции 309
Структурирование операторов контроля 310
Простейшие модули QUnit 310
Использование методов setup() и teardown() 310
Создание и очистка объектов с помощью методов setup() и teardown() 311
Примеры использования операторов контроля 311
Фикстуры 313
Пример с фикстурами 314
Асинхронный код 316
Глава 15. SinonJS 318
Что такое SinonJS? 318
Базовые агенты 319
Наблюдение за существующими функциями 319
Тестовый интерфейс 319
Заглушки и мок-объекты 320
Заглушки 321
Мок-объекты 322
Упражнение 323
Модели 323
Коллекции 324
Представления 325
Приложение 326
Дополнительные источники информации 327
Глава 16. Заключение 328
Приложение А. Темы для дальнейшего изучения 331
Приложение Б. Источники 351